PTLib  Version 2.10.11
PASN_Choice Class Referenceabstract

Class for ASN Choice type. More...

#include <asner.h>

Inheritance diagram for PASN_Choice:
PASN_Object PObject PRFC1155_ApplicationSyntax PRFC1155_NetworkAddress PRFC1155_ObjectSyntax PRFC1155_SimpleSyntax PSNMP_PDUs

Public Member Functions

 ~PASN_Choice ()
 
virtual void SetTag (unsigned newTag, TagClass tagClass=DefaultTagClass)
 
PString GetTagName () const
 
PASN_ObjectGetObject () const
 
PBoolean IsValid () const
 
 operator PASN_Null & ()
 
 operator PASN_Boolean & ()
 
 operator PASN_Integer & ()
 
 operator PASN_Enumeration & ()
 
 operator PASN_Real & ()
 
 operator PASN_ObjectId & ()
 
 operator PASN_BitString & ()
 
 operator PASN_OctetString & ()
 
 operator PASN_NumericString & ()
 
 operator PASN_PrintableString & ()
 
 operator PASN_VisibleString & ()
 
 operator PASN_IA5String & ()
 
 operator PASN_GeneralString & ()
 
 operator PASN_BMPString & ()
 
 operator PASN_Sequence & ()
 
 operator const PASN_Null & () const
 
 operator const PASN_Boolean & () const
 
 operator const PASN_Integer & () const
 
 operator const PASN_Enumeration & () const
 
 operator const PASN_Real & () const
 
 operator const PASN_ObjectId & () const
 
 operator const PASN_BitString & () const
 
 operator const PASN_OctetString & () const
 
 operator const PASN_NumericString & () const
 
 operator const PASN_PrintableString & () const
 
 operator const PASN_VisibleString & () const
 
 operator const PASN_IA5String & () const
 
 operator const PASN_GeneralString & () const
 
 operator const PASN_BMPString & () const
 
 operator const PASN_Sequence & () const
 
virtual PBoolean CreateObject ()=0
 
virtual Comparison Compare (const PObject &obj) const
 Compare the two objects and return their relative rank. 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
 
virtual PBoolean DecodePER (PPER_Stream &)
 
virtual void EncodePER (PPER_Stream &) const
 
PBoolean DecodeXER (PXER_Stream &)
 
void EncodeXER (PXER_Stream &) const
 
PASN_Choiceoperator= (const PASN_Choice &other)
 
PINDEX GetValueByName (PString name) 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
 
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 PObjectClone () const
 Create a copy of the class on the heap. More...
 
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

 PASN_Choice (unsigned nChoices=0, PBoolean extend=false)
 
 PASN_Choice (unsigned tag, TagClass tagClass, unsigned nChoices, PBoolean extend)
 
 PASN_Choice (unsigned tag, TagClass tagClass, unsigned nChoices, PBoolean extend, const PASN_Names *nameSpec, unsigned namesCnt)
 
 PASN_Choice (const PASN_Choice &other)
 
PBoolean CheckCreate () const
 
- 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

unsigned numChoices
 
PASN_Objectchoice
 
const PASN_Namesnames
 
unsigned namesCount
 
- 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 Choice type.

Constructor & Destructor Documentation

PASN_Choice::~PASN_Choice ( )
PASN_Choice::PASN_Choice ( unsigned  nChoices = 0,
PBoolean  extend = false 
)
protected
PASN_Choice::PASN_Choice ( unsigned  tag,
TagClass  tagClass,
unsigned  nChoices,
PBoolean  extend 
)
protected
PASN_Choice::PASN_Choice ( unsigned  tag,
TagClass  tagClass,
unsigned  nChoices,
PBoolean  extend,
const PASN_Names nameSpec,
unsigned  namesCnt 
)
protected
PASN_Choice::PASN_Choice ( const PASN_Choice other)
protected

Member Function Documentation

PBoolean PASN_Choice::CheckCreate ( ) const
protected
virtual Comparison PASN_Choice::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 PBoolean PASN_Choice::CreateObject ( )
pure virtual
virtual PBoolean PASN_Choice::Decode ( PASN_Stream )
virtual

Implements PASN_Object.

Reimplemented in PSNMP_PDUs.

virtual PBoolean PASN_Choice::DecodePER ( PPER_Stream &  )
virtual
PBoolean PASN_Choice::DecodeXER ( PXER_Stream &  )
virtual void PASN_Choice::Encode ( PASN_Stream ) const
virtual

Implements PASN_Object.

Reimplemented in PSNMP_PDUs.

virtual void PASN_Choice::EncodePER ( PPER_Stream &  ) const
virtual
void PASN_Choice::EncodeXER ( PXER_Stream &  ) const
virtual PINDEX PASN_Choice::GetDataLength ( ) const
virtual

Implements PASN_Object.

PASN_Object& PASN_Choice::GetObject ( ) const
PString PASN_Choice::GetTagName ( ) const
virtual PString PASN_Choice::GetTypeAsString ( ) const
virtual

Return a string giving the type of the object.

Implements PASN_Object.

PINDEX PASN_Choice::GetValueByName ( PString  name) const
virtual PBoolean PASN_Choice::IsPrimitive ( ) const
virtual

Reimplemented from PASN_Object.

PBoolean PASN_Choice::IsValid ( ) const
inline

References choice.

PASN_Choice::operator const PASN_BitString & ( ) const
PASN_Choice::operator const PASN_BMPString & ( ) const
PASN_Choice::operator const PASN_Boolean & ( ) const
PASN_Choice::operator const PASN_Enumeration & ( ) const
PASN_Choice::operator const PASN_GeneralString & ( ) const
PASN_Choice::operator const PASN_IA5String & ( ) const
PASN_Choice::operator const PASN_Integer & ( ) const
PASN_Choice::operator const PASN_Null & ( ) const
PASN_Choice::operator const PASN_NumericString & ( ) const
PASN_Choice::operator const PASN_ObjectId & ( ) const
PASN_Choice::operator const PASN_OctetString & ( ) const
PASN_Choice::operator const PASN_PrintableString & ( ) const
PASN_Choice::operator const PASN_Real & ( ) const
PASN_Choice::operator const PASN_Sequence & ( ) const
PASN_Choice::operator const PASN_VisibleString & ( ) const
PASN_Choice::operator PASN_BitString & ( )
PASN_Choice::operator PASN_BMPString & ( )
PASN_Choice::operator PASN_Boolean & ( )
PASN_Choice::operator PASN_Enumeration & ( )
PASN_Choice::operator PASN_GeneralString & ( )
PASN_Choice::operator PASN_IA5String & ( )
PASN_Choice::operator PASN_Integer & ( )
PASN_Choice::operator PASN_Null & ( )
PASN_Choice::operator PASN_NumericString & ( )
PASN_Choice::operator PASN_ObjectId & ( )
PASN_Choice::operator PASN_OctetString & ( )
PASN_Choice::operator PASN_PrintableString & ( )
PASN_Choice::operator PASN_Real & ( )
PASN_Choice::operator PASN_Sequence & ( )
PASN_Choice::operator PASN_VisibleString & ( )
PASN_Choice& PASN_Choice::operator= ( const PASN_Choice other)
virtual void PASN_Choice::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.

virtual void PASN_Choice::SetTag ( unsigned  newTag,
TagClass  tagClass = DefaultTagClass 
)
virtual

Reimplemented from PASN_Object.

Member Data Documentation

PASN_Object* PASN_Choice::choice
protected

Referenced by IsValid().

const PASN_Names* PASN_Choice::names
protected
unsigned PASN_Choice::namesCount
protected
unsigned PASN_Choice::numChoices
protected

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