All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
PASN_Stream Class Referenceabstract

Base class for ASN decoder/encoder stream. More...

`#include <asner.h>`

Inheritance diagram for PASN_Stream:

## Public Member Functions

| PASN_Stream ()
| PASN_Stream (const PBYTEArray &bytes)
| PASN_Stream (const BYTE *buf, PINDEX size)
void | PrintOn (ostream &strm) const
| Output the contents of the object to the stream. More...
PINDEX | GetPosition () const
void | SetPosition (PINDEX newPos)
PBoolean | IsAtEnd ()
void | ResetDecoder ()
void | BeginEncoding ()
void | CompleteEncoding ()
virtual PBoolean | Read (PChannel &chan)=0
virtual PBoolean | Write (PChannel &chan)=0
virtual PBoolean | NullDecode (PASN_Null &)=0
virtual void | NullEncode (const PASN_Null &)=0
virtual PBoolean | BooleanDecode (PASN_Boolean &)=0
virtual void | BooleanEncode (const PASN_Boolean &)=0
virtual PBoolean | IntegerDecode (PASN_Integer &)=0
virtual void | IntegerEncode (const PASN_Integer &)=0
virtual PBoolean | EnumerationDecode (PASN_Enumeration &)=0
virtual void | EnumerationEncode (const PASN_Enumeration &)=0
virtual PBoolean | RealDecode (PASN_Real &)=0
virtual void | RealEncode (const PASN_Real &)=0
virtual PBoolean | ObjectIdDecode (PASN_ObjectId &)=0
virtual void | ObjectIdEncode (const PASN_ObjectId &)=0
virtual PBoolean | BitStringDecode (PASN_BitString &)=0
virtual void | BitStringEncode (const PASN_BitString &)=0
virtual PBoolean | OctetStringDecode (PASN_OctetString &)=0
virtual void | OctetStringEncode (const PASN_OctetString &)=0
virtual PBoolean | ConstrainedStringDecode (PASN_ConstrainedString &)=0
virtual void | ConstrainedStringEncode (const PASN_ConstrainedString &)=0
virtual PBoolean | BMPStringDecode (PASN_BMPString &)=0
virtual void | BMPStringEncode (const PASN_BMPString &)=0
virtual PBoolean | ChoiceDecode (PASN_Choice &)=0
virtual void | ChoiceEncode (const PASN_Choice &)=0
virtual PBoolean | ArrayDecode (PASN_Array &)=0
virtual void | ArrayEncode (const PASN_Array &)=0
virtual PBoolean | SequencePreambleDecode (PASN_Sequence &)=0
virtual void | SequencePreambleEncode (const PASN_Sequence &)=0
virtual PBoolean | SequenceKnownDecode (PASN_Sequence &, PINDEX, PASN_Object &)=0
virtual void | SequenceKnownEncode (const PASN_Sequence &, PINDEX, const PASN_Object &)=0
virtual PBoolean | SequenceUnknownDecode (PASN_Sequence &)=0
virtual void | SequenceUnknownEncode (const PASN_Sequence &)=0
BYTE | ByteDecode ()
void | ByteEncode (unsigned value)
unsigned | BlockDecode (BYTE *bufptr, unsigned nBytes)
void | BlockEncode (const BYTE *bufptr, PINDEX nBytes)
void | ByteAlign ()
Public Member Functions inherited from PBYTEArray
| PBYTEArray (PINDEX initialSize=0)
| Construct a new dynamic array of unsigned chars. More...
| PBYTEArray (BYTE const *buffer, PINDEX length, PBoolean dynamic=true)
| Construct a new dynamic array of unsigned chars. More...
Public Member Functions inherited from PBaseArray< T >
| PBaseArray (PINDEX initialSize=0)
| Construct a new dynamic array of elements of the specified type. More...
| PBaseArray (T const *buffer, PINDEX length, PBoolean dynamic=true)
| Construct a new dynamic array of elements of the specified type. More...
virtual PObject * | Clone () const
| Clone the object. More...
PBoolean | SetAt (PINDEX index, T val)
| Set the specific element in the array. More...
T | GetAt (PINDEX index) const
| Get a value from the array. More...
void | Attach (const T *buffer, PINDEX bufferSize)
| Attach a pointer to a static block to the base array type. More...
T * | GetPointer (PINDEX minSize=0)
| Get a pointer to the internal array and assure that it is of at least the specified size. More...
T | operator[] (PINDEX index) const
| Get a value from the array. More...
T & | operator[] (PINDEX index)
| Get a reference to value from the array. More...
| operator T const * () const
| Get a pointer to the internal array. More...
PBoolean | Concatenate (const PBaseArray &array)
| Concatenate one array to the end of this array. More...
Public Member Functions inherited from PAbstractArray
| PAbstractArray (PINDEX elementSizeInBytes, PINDEX initialSize=0)
| Create a new dynamic array of `initalSize` elements of `elementSizeInBytes` bytes each. More...
| PAbstractArray (PINDEX elementSizeInBytes, const void *buffer, PINDEX bufferSizeInElements, PBoolean dynamicAllocation)
| Create a new dynamic array of `bufferSizeInElements` elements of `elementSizeInBytes` bytes each. More...
virtual void | ReadFrom (istream &strm)
| Input the contents of the object from the stream. More...
virtual Comparison | Compare (const PObject &obj) const
| Get the relative rank of the two arrays. More...
virtual PBoolean | SetSize (PINDEX newSize)
| Set the size of the array in elements. More...
void | Attach (const void *buffer, PINDEX bufferSize)
| Attach a pointer to a static block to the base array type. More...
void * | GetPointer (PINDEX minSize=1)
| Get a pointer to the internal array and assure that it is of at least the specified size. More...
PBoolean | Concatenate (const PAbstractArray &array)
| Concatenate one array to the end of this array. More...
Public Member Functions inherited from PContainer
| PContainer (PINDEX initialSize=0)
| Create a new unique container. More...
| PContainer (const PContainer &cont)
| Create a new refernce to container. More...
PContainer & | operator= (const PContainer &cont)
| Assign one container reference to another. More...
virtual | ~PContainer ()
| Destroy the container class. More...
virtual PINDEX | GetSize () const
| Get the current size of the container. More...
PBoolean | SetMinSize (PINDEX minSize)
| Set the minimum size of container. More...
virtual PBoolean | IsEmpty () const
| Determine if the container is empty. More...
PBoolean | IsUnique () const
| Determine if container is unique reference. More...
virtual PBoolean | MakeUnique ()
| Make this instance to be the one and only reference to the container contents. More...
Public Member Functions inherited from PObject
virtual | ~PObject ()
virtual PINDEX | HashFunction () const
| This function yields a hash value required by the `PDictionary` class. More...
virtual Comparison | CompareObjectMemoryDirect (const PObject &obj) const
| Determine the byte wise comparison of two objects. More...
bool | operator== (const PObject &obj) const
| Compare the two objects. More...
bool | operator!= (const PObject &obj) const
| Compare the two objects. More...
bool | operator< (const PObject &obj) const
| Compare the two objects. More...
bool | operator> (const PObject &obj) const
| Compare the two objects. More...
bool | operator<= (const PObject &obj) const
| Compare the two objects. More...
bool | operator>= (const PObject &obj) const
| Compare the two objects. More...
virtual const char * | GetClass (unsigned ancestor=0) const
| Get the current dynamic type of the object instance. More...
PBoolean | IsClass (const char *cls) const
virtual PBoolean | InternalIsDescendant (const char *clsName) const
| Determine if the dynamic type of the current instance is a descendent of the specified class. More...

## Protected Attributes

PINDEX | byteOffset
unsigned | bitOffset
Protected Attributes inherited from PAbstractArray
PINDEX | elementSize
| Size of an element in bytes. More...
char * | theArray
| Pointer to the allocated block of memory. More...
PBoolean | allocatedDynamically
| Flag indicating the array was allocated on the heap. More...
Protected Attributes inherited from PContainer
PContainerReference * | reference

## Additional Inherited Members

Public Types inherited from PObject
enum | Comparison { LessThan = -1, EqualTo = 0, GreaterThan = 1 }
| Result of the comparison operation performed by the `Compare()` function. More...
Static Public Member Functions inherited from PObject
static Comparison | InternalCompareObjectMemoryDirect (const PObject *obj1, const PObject *obj2, PINDEX size)
| Internal function caled from CompareObjectMemoryDirect() More...
static const char * | Class ()
| Get the name of the class as a C string. More...
Protected Member Functions inherited from PBaseArray< T >
virtual void | PrintElementOn (ostream &stream, PINDEX index) const
| PBaseArray (PContainerReference &reference)
Protected Member Functions inherited from PAbstractArray
PBoolean | InternalSetSize (PINDEX newSize, PBoolean force)
virtual void | ReadElementFrom (istream &stream, PINDEX index)
| PAbstractArray (PContainerReference &reference, PINDEX elementSizeInBytes)
Protected Member Functions inherited from PContainer
| PContainer (int dummy, const PContainer *cont)
| Constructor used in support of the Clone() function. More...
| PContainer (PContainerReference &reference)
| Construct using static PContainerReference. More...
virtual void | DestroyContents ()=0
| Destroy the container contents. More...
virtual void | AssignContents (const PContainer &c)
| Copy the container contents. More...
void | CopyContents (const PContainer &c)
| Copy the container contents. More...
void | CloneContents (const PContainer *src)
| Create a duplicate of the container contents. More...
void | Destruct ()
| Internal function called from container destructors. More...
virtual void | DestroyReference ()
| Destroy the PContainerReference instance. More...
Protected Member Functions inherited from PObject
| PObject ()
| Constructor for PObject, made protected so cannot ever create one on its own. More...

## Detailed Description

Base class for ASN decoder/encoder stream.

## Constructor & Destructor Documentation

PASN_Stream::PASN_Stream | ( |  | ) |

PASN_Stream::PASN_Stream | ( | const PBYTEArray & | bytes | ) |

PASN_Stream::PASN_Stream | ( | const BYTE * | buf,
|  | PINDEX | size
| ) |  |

## Member Function Documentation

virtual PBoolean PASN_Stream::ArrayDecode | ( | PASN_Array & |  | ) |

pure virtual

virtual void PASN_Stream::ArrayEncode | ( | const PASN_Array & |  | ) |

pure virtual

void PASN_Stream::BeginEncoding | ( |  | ) |

virtual PBoolean PASN_Stream::BitStringDecode | ( | PASN_BitString & |  | ) |

pure virtual

virtual void PASN_Stream::BitStringEncode | ( | const PASN_BitString & |  | ) |

pure virtual

unsigned PASN_Stream::BlockDecode | ( | BYTE * | bufptr,
|  | unsigned | nBytes
| ) |  |

void PASN_Stream::BlockEncode | ( | const BYTE * | bufptr,
|  | PINDEX | nBytes
| ) |  |

virtual PBoolean PASN_Stream::BMPStringDecode | ( | PASN_BMPString & |  | ) |

pure virtual

virtual void PASN_Stream::BMPStringEncode | ( | const PASN_BMPString & |  | ) |

pure virtual

virtual PBoolean PASN_Stream::BooleanDecode | ( | PASN_Boolean & |  | ) |

pure virtual

virtual void PASN_Stream::BooleanEncode | ( | const PASN_Boolean & |  | ) |

pure virtual

void PASN_Stream::ByteAlign | ( |  | ) |

BYTE PASN_Stream::ByteDecode | ( |  | ) |

void PASN_Stream::ByteEncode | ( | unsigned | value | ) |

virtual PBoolean PASN_Stream::ChoiceDecode | ( | PASN_Choice & |  | ) |

pure virtual

virtual void PASN_Stream::ChoiceEncode | ( | const PASN_Choice & |  | ) |

pure virtual

void PASN_Stream::CompleteEncoding | ( |  | ) |

virtual PBoolean PASN_Stream::ConstrainedStringDecode | ( | PASN_ConstrainedString & |  | ) |

pure virtual

virtual void PASN_Stream::ConstrainedStringEncode | ( | const PASN_ConstrainedString & |  | ) |

pure virtual

virtual PBoolean PASN_Stream::EnumerationDecode | ( | PASN_Enumeration & |  | ) |

pure virtual

virtual void PASN_Stream::EnumerationEncode | ( | const PASN_Enumeration & |  | ) |

pure virtual

PINDEX PASN_Stream::GetPosition | ( |  | ) | const

inline

References byteOffset.

virtual PBoolean PASN_Stream::IntegerDecode | ( | PASN_Integer & |  | ) |

pure virtual

virtual void PASN_Stream::IntegerEncode | ( | const PASN_Integer & |  | ) |

pure virtual

PBoolean PASN_Stream::IsAtEnd | ( |  | ) |

inline

References byteOffset, and PContainer::GetSize().

virtual PBoolean PASN_Stream::NullDecode | ( | PASN_Null & |  | ) |

pure virtual

virtual void PASN_Stream::NullEncode | ( | const PASN_Null & |  | ) |

pure virtual

virtual PBoolean PASN_Stream::ObjectIdDecode | ( | PASN_ObjectId & |  | ) |

pure virtual

virtual void PASN_Stream::ObjectIdEncode | ( | const PASN_ObjectId & |  | ) |

pure virtual

virtual PBoolean PASN_Stream::OctetStringDecode | ( | PASN_OctetString & |  | ) |

pure virtual

virtual void PASN_Stream::OctetStringEncode | ( | const PASN_OctetString & |  | ) |

pure virtual

void PASN_Stream::PrintOn | ( | ostream & | strm | ) | const

virtual

Output the contents of the object to the stream.

The exact output is dependent on the exact semantics of the descendent class. This is primarily used by the standard `operator<<` function.

The default behaviour is to print the class name.

Reimplemented from PAbstractArray.

virtual PBoolean PASN_Stream::Read | ( | PChannel & | chan | ) |

pure virtual

virtual PBoolean PASN_Stream::RealDecode | ( | PASN_Real & |  | ) |

pure virtual

virtual void PASN_Stream::RealEncode | ( | const PASN_Real & |  | ) |

pure virtual

void PASN_Stream::ResetDecoder | ( |  | ) |

virtual PBoolean PASN_Stream::SequenceKnownDecode | ( | PASN_Sequence & | ,
|  | PINDEX | ,
|  | PASN_Object & |
| ) |  |

pure virtual

virtual void PASN_Stream::SequenceKnownEncode | ( | const PASN_Sequence & | ,
|  | PINDEX | ,
|  | const PASN_Object & |
| ) |  |

pure virtual

virtual PBoolean PASN_Stream::SequencePreambleDecode | ( | PASN_Sequence & |  | ) |

pure virtual

virtual void PASN_Stream::SequencePreambleEncode | ( | const PASN_Sequence & |  | ) |

pure virtual

virtual PBoolean PASN_Stream::SequenceUnknownDecode | ( | PASN_Sequence & |  | ) |

pure virtual

virtual void PASN_Stream::SequenceUnknownEncode | ( | const PASN_Sequence & |  | ) |

pure virtual

void PASN_Stream::SetPosition | ( | PINDEX | newPos | ) |

virtual PBoolean PASN_Stream::Write | ( | PChannel & | chan | ) |

pure virtual

## Member Data Documentation

unsigned PASN_Stream::bitOffset

protected

PINDEX PASN_Stream::byteOffset

protected

Referenced by GetPosition(), and IsAtEnd().

The documentation for this class was generated from the following file:

- asner.h