PTLib  Version 2.10.11
PASN_Stream Class Referenceabstract

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

#include <asner.h>

Inheritance diagram for PASN_Stream:
PBYTEArray PBaseArray< T > PAbstractArray PContainer PObject

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 PObjectClone () const
 Clone the object. More...
 
PBoolean SetAt (PINDEX index, T val)
 Set the specific element in the array. More...
 
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...
 
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...
 
PContaineroperator= (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
PContainerReferencereference
 

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
virtual PBoolean PASN_Stream::IntegerDecode ( PASN_Integer )
pure virtual
virtual void PASN_Stream::IntegerEncode ( const PASN_Integer )
pure virtual
PBoolean PASN_Stream::IsAtEnd ( )
inline
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

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