PTLib
Version 2.10.10
|
Class for ASN Sequence type. More...
#include <asner.h>
Public Member Functions | |
PASN_Sequence (unsigned tag=UniversalSequence, TagClass tagClass=UniversalTagClass, unsigned nOpts=0, PBoolean extend=false, unsigned nExtend=0) | |
PASN_Sequence (const PASN_Sequence &other) | |
PASN_Sequence & | operator= (const PASN_Sequence &other) |
PINDEX | GetSize () const |
PBoolean | SetSize (PINDEX newSize) |
PASN_Object & | operator[] (PINDEX i) const |
PBoolean | HasOptionalField (PINDEX opt) const |
void | IncludeOptionalField (PINDEX opt) |
void | RemoveOptionalField (PINDEX opt) |
virtual Comparison | Compare (const PObject &obj) const |
Compare the two objects and return their relative rank. More... | |
virtual PObject * | Clone () const |
Create a copy of the class on the heap. More... | |
virtual void | PrintOn (ostream &strm) const |
Output the contents of the object to the stream. More... | |
virtual PString | GetTypeAsString () const |
Return a string giving the type of the object. More... | |
virtual PINDEX | GetDataLength () const |
virtual PBoolean | IsPrimitive () const |
virtual PBoolean | Decode (PASN_Stream &) |
virtual void | Encode (PASN_Stream &) const |
PBoolean | PreambleDecode (PASN_Stream &strm) |
void | PreambleEncode (PASN_Stream &strm) const |
PBoolean | KnownExtensionDecode (PASN_Stream &strm, PINDEX fld, PASN_Object &field) |
void | KnownExtensionEncode (PASN_Stream &strm, PINDEX fld, const PASN_Object &field) const |
PBoolean | UnknownExtensionsDecode (PASN_Stream &strm) |
void | UnknownExtensionsEncode (PASN_Stream &strm) const |
PBoolean | PreambleDecodeBER (PBER_Stream &strm) |
void | PreambleEncodeBER (PBER_Stream &strm) const |
PBoolean | KnownExtensionDecodeBER (PBER_Stream &strm, PINDEX fld, PASN_Object &field) |
void | KnownExtensionEncodeBER (PBER_Stream &strm, PINDEX fld, const PASN_Object &field) const |
PBoolean | UnknownExtensionsDecodeBER (PBER_Stream &strm) |
void | UnknownExtensionsEncodeBER (PBER_Stream &strm) const |
PBoolean | PreambleDecodePER (PPER_Stream &strm) |
void | PreambleEncodePER (PPER_Stream &strm) const |
PBoolean | KnownExtensionDecodePER (PPER_Stream &strm, PINDEX fld, PASN_Object &field) |
void | KnownExtensionEncodePER (PPER_Stream &strm, PINDEX fld, const PASN_Object &field) const |
PBoolean | UnknownExtensionsDecodePER (PPER_Stream &strm) |
void | UnknownExtensionsEncodePER (PPER_Stream &strm) const |
virtual PBoolean | PreambleDecodeXER (PXER_Stream &strm) |
virtual void | PreambleEncodeXER (PXER_Stream &strm) const |
virtual PBoolean | KnownExtensionDecodeXER (PXER_Stream &strm, PINDEX fld, PASN_Object &field) |
virtual void | KnownExtensionEncodeXER (PXER_Stream &strm, PINDEX fld, const PASN_Object &field) const |
virtual PBoolean | UnknownExtensionsDecodeXER (PXER_Stream &strm) |
virtual void | UnknownExtensionsEncodeXER (PXER_Stream &strm) const |
![]() | |
PINDEX | GetObjectLength () const |
PBoolean | IsExtendable () const |
void | SetExtendable (PBoolean ext=true) |
TagClass | GetTagClass () const |
unsigned | GetTag () const |
virtual void | SetTag (unsigned newTag, TagClass tagClass=DefaultTagClass) |
void | SetConstraints (ConstraintType type, int value) |
void | SetConstraints (ConstraintType, int lower, MaximumValueTag) |
void | SetConstraints (ConstraintType, MinimumValueTag lower, unsigned upper) |
void | SetConstraints (ConstraintType, MinimumValueTag lower, MaximumValueTag upper) |
void | SetConstraints (ConstraintType type, int lower, unsigned upper) |
virtual void | SetConstraintBounds (ConstraintType type, int lower, unsigned upper) |
virtual void | SetCharacterSet (ConstraintType ctype, const char *charSet) |
virtual void | SetCharacterSet (ConstraintType ctype, unsigned firstChar, unsigned lastChar) |
![]() | |
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... | |
virtual void | ReadFrom (istream &strm) |
Input the contents of the object from the stream. More... | |
Protected Member Functions | |
PBoolean | NoExtensionsToDecode (PPER_Stream &strm) |
PBoolean | NoExtensionsToEncode (PPER_Stream &strm) |
![]() | |
PASN_Object (unsigned tag, TagClass tagClass, PBoolean extend=false) | |
![]() | |
PObject () | |
Constructor for PObject, made protected so cannot ever create one on its own. More... | |
Protected Attributes | |
PASN_ObjectArray | fields |
PASN_BitString | optionMap |
int | knownExtensions |
int | totalExtensions |
PASN_BitString | extensionMap |
PINDEX | endBasicEncoding |
![]() | |
PBoolean | extendable |
PER extension capability. More... | |
TagClass | tagClass |
BER tag class. More... | |
unsigned | tag |
ASN object tag. More... | |
Class for ASN Sequence type.
PASN_Sequence::PASN_Sequence | ( | unsigned | tag = UniversalSequence , |
TagClass | tagClass = UniversalTagClass , |
||
unsigned | nOpts = 0 , |
||
PBoolean | extend = false , |
||
unsigned | nExtend = 0 |
||
) |
PASN_Sequence::PASN_Sequence | ( | const PASN_Sequence & | other | ) |
|
virtual |
Create a copy of the class on the heap.
The exact semantics of the descendent class determine what is required to make a duplicate of the instance. Not all classes can even do a clone operation.
The main user of the clone function is the PDictionary
class as it requires copies of the dictionary keys.
The default behaviour is for this function to assert.
Reimplemented from PObject.
Reimplemented in PASN_Set, PSNMP_Message, PSNMP_SetRequest_PDU, PSNMP_GetResponse_PDU, PSNMP_GetNextRequest_PDU, PSNMP_GetRequest_PDU, PSNMP_Trap_PDU, PSNMP_PDU, and PSNMP_VarBind.
|
virtual |
Compare the two objects and return their relative rank.
This function is usually overridden by descendent classes to yield the ranking according to the semantics of the object.
The default function is to use the CompareObjectMemoryDirect()
function to do a byte wise memory comparison of the two objects.
LessThan
, EqualTo
or GreaterThan
according to the relative rank of the objects. Reimplemented from PObject.
Reimplemented in PSNMP_Message, PSNMP_Trap_PDU, PSNMP_PDU, and PSNMP_VarBind.
|
virtual |
Implements PASN_Object.
Reimplemented in PSNMP_Message, PSNMP_Trap_PDU, PSNMP_PDU, and PSNMP_VarBind.
|
virtual |
Implements PASN_Object.
Reimplemented in PSNMP_Message, PSNMP_Trap_PDU, PSNMP_PDU, and PSNMP_VarBind.
|
virtual |
Implements PASN_Object.
Reimplemented in PSNMP_Message, PSNMP_Trap_PDU, PSNMP_PDU, and PSNMP_VarBind.
|
inline |
References fields.
|
virtual |
PBoolean PASN_Sequence::HasOptionalField | ( | PINDEX | opt | ) | const |
void PASN_Sequence::IncludeOptionalField | ( | PINDEX | opt | ) |
|
virtual |
Reimplemented from PASN_Object.
PBoolean PASN_Sequence::KnownExtensionDecode | ( | PASN_Stream & | strm, |
PINDEX | fld, | ||
PASN_Object & | field | ||
) |
PBoolean PASN_Sequence::KnownExtensionDecodeBER | ( | PBER_Stream & | strm, |
PINDEX | fld, | ||
PASN_Object & | field | ||
) |
PBoolean PASN_Sequence::KnownExtensionDecodePER | ( | PPER_Stream & | strm, |
PINDEX | fld, | ||
PASN_Object & | field | ||
) |
|
virtual |
void PASN_Sequence::KnownExtensionEncode | ( | PASN_Stream & | strm, |
PINDEX | fld, | ||
const PASN_Object & | field | ||
) | const |
void PASN_Sequence::KnownExtensionEncodeBER | ( | PBER_Stream & | strm, |
PINDEX | fld, | ||
const PASN_Object & | field | ||
) | const |
void PASN_Sequence::KnownExtensionEncodePER | ( | PPER_Stream & | strm, |
PINDEX | fld, | ||
const PASN_Object & | field | ||
) | const |
|
virtual |
|
protected |
|
protected |
PASN_Sequence& PASN_Sequence::operator= | ( | const PASN_Sequence & | other | ) |
|
inline |
References fields.
PBoolean PASN_Sequence::PreambleDecode | ( | PASN_Stream & | strm | ) |
PBoolean PASN_Sequence::PreambleDecodeBER | ( | PBER_Stream & | strm | ) |
PBoolean PASN_Sequence::PreambleDecodePER | ( | PPER_Stream & | strm | ) |
|
virtual |
void PASN_Sequence::PreambleEncode | ( | PASN_Stream & | strm | ) | const |
void PASN_Sequence::PreambleEncodeBER | ( | PBER_Stream & | strm | ) | const |
void PASN_Sequence::PreambleEncodePER | ( | PPER_Stream & | strm | ) | const |
|
virtual |
|
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 PObject.
Reimplemented in PSNMP_Message, PSNMP_Trap_PDU, PSNMP_PDU, and PSNMP_VarBind.
void PASN_Sequence::RemoveOptionalField | ( | PINDEX | opt | ) |
PBoolean PASN_Sequence::SetSize | ( | PINDEX | newSize | ) |
PBoolean PASN_Sequence::UnknownExtensionsDecode | ( | PASN_Stream & | strm | ) |
PBoolean PASN_Sequence::UnknownExtensionsDecodeBER | ( | PBER_Stream & | strm | ) |
PBoolean PASN_Sequence::UnknownExtensionsDecodePER | ( | PPER_Stream & | strm | ) |
|
virtual |
void PASN_Sequence::UnknownExtensionsEncode | ( | PASN_Stream & | strm | ) | const |
void PASN_Sequence::UnknownExtensionsEncodeBER | ( | PBER_Stream & | strm | ) | const |
void PASN_Sequence::UnknownExtensionsEncodePER | ( | PPER_Stream & | strm | ) | const |
|
virtual |
|
protected |
|
protected |
|
protected |
Referenced by GetSize(), and operator[]().
|
protected |
|
protected |
|
protected |