PWLib  1.10.10
Public Member Functions | Protected Member Functions | Protected Attributes
PASN_Sequence Class Reference

#include <asner.h>

Inheritance diagram for PASN_Sequence:
PASN_Object PObject PASN_Set

List of all members.

Public Member Functions

 PASN_Sequence (unsigned tag=UniversalSequence, TagClass tagClass=UniversalTagClass, unsigned nOpts=0, BOOL extend=FALSE, unsigned nExtend=0)
 PASN_Sequence (const PASN_Sequence &other)
PASN_Sequenceoperator= (const PASN_Sequence &other)
PINDEX GetSize () const
BOOL SetSize (PINDEX newSize)
PASN_Objectoperator[] (PINDEX i) const
BOOL HasOptionalField (PINDEX opt) const
void IncludeOptionalField (PINDEX opt)
void RemoveOptionalField (PINDEX opt)
virtual Comparison Compare (const PObject &obj) const
virtual PObjectClone () const
virtual void PrintOn (ostream &strm) const
virtual PString GetTypeAsString () const
virtual PINDEX GetDataLength () const
virtual BOOL IsPrimitive () const
virtual BOOL Decode (PASN_Stream &)
virtual void Encode (PASN_Stream &) const
BOOL PreambleDecode (PASN_Stream &strm)
void PreambleEncode (PASN_Stream &strm) const
BOOL KnownExtensionDecode (PASN_Stream &strm, PINDEX fld, PASN_Object &field)
void KnownExtensionEncode (PASN_Stream &strm, PINDEX fld, const PASN_Object &field) const
BOOL UnknownExtensionsDecode (PASN_Stream &strm)
void UnknownExtensionsEncode (PASN_Stream &strm) const
BOOL PreambleDecodeBER (PBER_Stream &strm)
void PreambleEncodeBER (PBER_Stream &strm) const
BOOL KnownExtensionDecodeBER (PBER_Stream &strm, PINDEX fld, PASN_Object &field)
void KnownExtensionEncodeBER (PBER_Stream &strm, PINDEX fld, const PASN_Object &field) const
BOOL UnknownExtensionsDecodeBER (PBER_Stream &strm)
void UnknownExtensionsEncodeBER (PBER_Stream &strm) const
BOOL PreambleDecodePER (PPER_Stream &strm)
void PreambleEncodePER (PPER_Stream &strm) const
BOOL KnownExtensionDecodePER (PPER_Stream &strm, PINDEX fld, PASN_Object &field)
void KnownExtensionEncodePER (PPER_Stream &strm, PINDEX fld, const PASN_Object &field) const
BOOL UnknownExtensionsDecodePER (PPER_Stream &strm)
void UnknownExtensionsEncodePER (PPER_Stream &strm) const
virtual BOOL PreambleDecodeXER (PXER_Stream &strm)
virtual void PreambleEncodeXER (PXER_Stream &strm) const
virtual BOOL KnownExtensionDecodeXER (PXER_Stream &strm, PINDEX fld, PASN_Object &field)
virtual void KnownExtensionEncodeXER (PXER_Stream &strm, PINDEX fld, const PASN_Object &field) const
virtual BOOL UnknownExtensionsDecodeXER (PXER_Stream &strm)
virtual void UnknownExtensionsEncodeXER (PXER_Stream &strm) const

Protected Member Functions

BOOL NoExtensionsToDecode (PPER_Stream &strm)
BOOL NoExtensionsToEncode (PPER_Stream &strm)

Protected Attributes

PASN_ObjectArray fields
PASN_BitString optionMap
int knownExtensions
int totalExtensions
PASN_BitString extensionMap
PINDEX endBasicEncoding

Detailed Description

Class for ASN Sequence type.


Constructor & Destructor Documentation

PASN_Sequence::PASN_Sequence ( unsigned  tag = UniversalSequence,
TagClass  tagClass = UniversalTagClass,
unsigned  nOpts = 0,
BOOL  extend = FALSE,
unsigned  nExtend = 0 
)

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.

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.

virtual BOOL PASN_Sequence::Decode ( PASN_Stream ) [virtual]

Implements PASN_Object.

virtual void PASN_Sequence::Encode ( PASN_Stream ) const [virtual]

Implements PASN_Object.

virtual PINDEX PASN_Sequence::GetDataLength ( ) const [virtual]

Implements PASN_Object.

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.

BOOL PASN_Sequence::HasOptionalField ( PINDEX  opt) const
virtual BOOL PASN_Sequence::IsPrimitive ( ) const [virtual]

Reimplemented from PASN_Object.

BOOL PASN_Sequence::KnownExtensionDecode ( PASN_Stream strm,
PINDEX  fld,
PASN_Object field 
)
BOOL PASN_Sequence::KnownExtensionDecodeBER ( PBER_Stream &  strm,
PINDEX  fld,
PASN_Object field 
)
BOOL PASN_Sequence::KnownExtensionDecodePER ( PPER_Stream &  strm,
PINDEX  fld,
PASN_Object field 
)
virtual BOOL 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]
BOOL PASN_Sequence::NoExtensionsToDecode ( PPER_Stream &  strm) [protected]
BOOL 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.

BOOL PASN_Sequence::PreambleDecodeBER ( PBER_Stream &  strm)
BOOL PASN_Sequence::PreambleDecodePER ( PPER_Stream &  strm)
virtual BOOL PASN_Sequence::PreambleDecodeXER ( PXER_Stream &  strm) [virtual]
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.

void PASN_Sequence::RemoveOptionalField ( PINDEX  opt)
BOOL PASN_Sequence::SetSize ( PINDEX  newSize)
BOOL PASN_Sequence::UnknownExtensionsDecodeBER ( PBER_Stream &  strm)
BOOL PASN_Sequence::UnknownExtensionsDecodePER ( PPER_Stream &  strm)
virtual BOOL PASN_Sequence::UnknownExtensionsDecodeXER ( PXER_Stream &  strm) [virtual]
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_ObjectArray PASN_Sequence::fields [protected]

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


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