PASN_Sequence Class Reference

Class for ASN Sequence type. More...

`#include <asner.h>`

Inheritance diagram for PASN_Sequence:

## 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
Public Member Functions inherited from PASN_Object
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)
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...
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)
Protected Member Functions inherited from PASN_Object
| PASN_Object (unsigned tag, TagClass tagClass, PBoolean extend=false)
Protected Member Functions inherited from PObject
| 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
Protected Attributes inherited from PASN_Object
PBoolean | extendable
| PER extension capability. More...
TagClass | tagClass
| BER tag class. More...
unsigned | tag
| ASN object tag. More...

## Additional Inherited Members

Public Types inherited from PASN_Object
enum | TagClass { UniversalTagClass, ApplicationTagClass, ContextSpecificTagClass, PrivateTagClass, DefaultTagClass }

enum

UniversalTags {
InvalidUniversalTag, UniversalBoolean, UniversalInteger, UniversalBitString,
UniversalOctetString, UniversalNull, UniversalObjectId, UniversalObjectDescriptor,
UniversalExternalType, UniversalReal, UniversalEnumeration, UniversalEmbeddedPDV,
UniversalSequence = 16, UniversalSet, UniversalNumericString, UniversalPrintableString,
UniversalTeletexString, UniversalVideotexString, UniversalIA5String, UniversalUTCTime,
UniversalGeneralisedTime, UniversalGeneralizedTime = UniversalGeneralisedTime, UniversalGraphicString, UniversalVisibleString,
UniversalGeneralString, UniversalUniversalString, UniversalBMPString = 30
}

enum | ConstraintType { Unconstrained, PartiallyConstrained, FixedConstraint, ExtendableConstraint }
enum | MinimumValueTag { MinimumValue = INT_MIN }
enum | MaximumValueTag { MaximumValue = INT_MAX }
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 PASN_Object
static PINDEX | GetMaximumArraySize ()
static void | SetMaximumArraySize (PINDEX sz)
static PINDEX | GetMaximumStringSize ()
static void | SetMaximumStringSize (PINDEX sz)
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...

## Detailed Description

Class for ASN Sequence type.

## Constructor & Destructor Documentation

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 | ) |

## Member Function Documentation

virtual PObject* PASN_Sequence::Clone | ( |  | ) | const

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.

Returns
  pointer to new copy of the class instance.

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 Comparison PASN_Sequence::Compare | ( | const PObject & | obj | ) | const

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.

Returns
  `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 PBoolean PASN_Sequence::Decode | ( | PASN_Stream & |  | ) |

virtual

Implements PASN_Object.

Reimplemented in PSNMP_Message, PSNMP_Trap_PDU, PSNMP_PDU, and PSNMP_VarBind.

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

virtual

Implements PASN_Object.

Reimplemented in PSNMP_Message, PSNMP_Trap_PDU, PSNMP_PDU, and PSNMP_VarBind.

virtual PINDEX PASN_Sequence::GetDataLength | ( |  | ) | const

virtual

Implements PASN_Object.

Reimplemented in PSNMP_Message, PSNMP_Trap_PDU, PSNMP_PDU, and PSNMP_VarBind.

PINDEX PASN_Sequence::GetSize | ( |  | ) | const

inline

References fields.

virtual PString PASN_Sequence::GetTypeAsString | ( |  | ) | const

virtual

Return a string giving the type of the object.

Implements PASN_Object.

Reimplemented in PASN_Set.

PBoolean PASN_Sequence::HasOptionalField | ( | PINDEX | opt | ) | const

void PASN_Sequence::IncludeOptionalField | ( | PINDEX | opt | ) |

virtual PBoolean PASN_Sequence::IsPrimitive | ( |  | ) | const

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 PBoolean PASN_Sequence::KnownExtensionDecodeXER | ( | PXER_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 void PASN_Sequence::KnownExtensionEncodeXER | ( | PXER_Stream & | strm,
|  | PINDEX | fld,
|  | const PASN_Object & | field
| ) |  | const

virtual

PBoolean PASN_Sequence::NoExtensionsToDecode | ( | PPER_Stream & | strm | ) |

protected

PBoolean PASN_Sequence::NoExtensionsToEncode | ( | PPER_Stream & | strm | ) |

protected

PASN_Sequence& PASN_Sequence::operator= | ( | const PASN_Sequence & | other | ) |

PASN_Object& PASN_Sequence::operator[] | ( | PINDEX | i | ) | const

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 PBoolean PASN_Sequence::PreambleDecodeXER | ( | PXER_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 void PASN_Sequence::PreambleEncodeXER | ( | PXER_Stream & | strm | ) | const

virtual

virtual void PASN_Sequence::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 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 PBoolean PASN_Sequence::UnknownExtensionsDecodeXER | ( | PXER_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 void PASN_Sequence::UnknownExtensionsEncodeXER | ( | PXER_Stream & | strm | ) | const

virtual

## Member Data Documentation

PINDEX PASN_Sequence::endBasicEncoding

protected

PASN_BitString PASN_Sequence::extensionMap

protected

PASN_ObjectArray PASN_Sequence::fields

protected

Referenced by GetSize(), and operator[]().

int PASN_Sequence::knownExtensions

protected

PASN_BitString PASN_Sequence::optionMap

protected

int PASN_Sequence::totalExtensions

protected

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

- asner.h