PTLib  Version 2.10.11
PASN_Sequence Class Reference

Class for ASN Sequence type. More...

#include <asner.h>

Inheritance diagram for PASN_Sequence:
PASN_Object PObject PASN_Set PSNMP_Message PSNMP_PDU PSNMP_Trap_PDU PSNMP_VarBind PSNMP_GetNextRequest_PDU PSNMP_GetRequest_PDU PSNMP_GetResponse_PDU PSNMP_SetRequest_PDU

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_Sequenceoperator= (const PASN_Sequence &other)
 
PINDEX GetSize () const
 
PBoolean SetSize (PINDEX newSize)
 
PASN_Objectoperator[] (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 PObjectClone () 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
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)
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
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: