PASN_Choice Class Referenceabstract

Class for ASN Choice type. More...

`#include <asner.h>`

Inheritance diagram for PASN_Choice:

## Public Member Functions

| ~PASN_Choice ()
virtual void | SetTag (unsigned newTag, TagClass tagClass=DefaultTagClass)
PString | GetTagName () const
PASN_Object & | GetObject () 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_Choice & | operator= (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 PObject * | Clone () 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_Object * | choice
const PASN_Names * | names
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() [1/4]

PASN_Choice::PASN_Choice | ( | unsigned | nChoices = `0`,
|  | PBoolean | extend = `false`
| ) |  |

protected

## PASN_Choice() [2/4]

PASN_Choice::PASN_Choice | ( | unsigned | tag,
|  | TagClass | tagClass,
|  | unsigned | nChoices,
|  | PBoolean | extend
| ) |  |

protected

## PASN_Choice() [3/4]

PASN_Choice::PASN_Choice | ( | unsigned | tag,
|  | TagClass | tagClass,
|  | unsigned | nChoices,
|  | PBoolean | extend,
|  | const PASN_Names * | nameSpec,
|  | unsigned | namesCnt
| ) |  |

protected

## PASN_Choice() [4/4]

PASN_Choice::PASN_Choice | ( | const PASN_Choice & | other | ) |

protected

## Member Function Documentation

## CheckCreate()

PBoolean PASN_Choice::CheckCreate | ( |  | ) | const

protected

## Compare()

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.

## CreateObject()

virtual PBoolean PASN_Choice::CreateObject | ( |  | ) |

pure virtual

Implemented in PRFC1155_NetworkAddress, PRFC1155_ApplicationSyntax, PRFC1155_SimpleSyntax, PSNMP_PDUs, and PRFC1155_ObjectSyntax.

## Decode()

virtual PBoolean PASN_Choice::Decode | ( | PASN_Stream & |  | ) |

virtual

Implements PASN_Object.

Reimplemented in PSNMP_PDUs.

## DecodePER()

virtual PBoolean PASN_Choice::DecodePER | ( | PPER_Stream & |  | ) |

virtual

## DecodeXER()

PBoolean PASN_Choice::DecodeXER | ( | PXER_Stream & |  | ) |

## Encode()

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

virtual

Implements PASN_Object.

Reimplemented in PSNMP_PDUs.

## EncodePER()

virtual void PASN_Choice::EncodePER | ( | PPER_Stream & |  | ) | const

virtual

## EncodeXER()

void PASN_Choice::EncodeXER | ( | PXER_Stream & |  | ) | const

## GetDataLength()

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

virtual

Implements PASN_Object.

## GetObject()

PASN_Object& PASN_Choice::GetObject | ( |  | ) | const

## GetTagName()

PString PASN_Choice::GetTagName | ( |  | ) | const

## GetTypeAsString()

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

virtual

Return a string giving the type of the object.

Implements PASN_Object.

## GetValueByName()

PINDEX PASN_Choice::GetValueByName | ( | PString | name | ) | const

## IsPrimitive()

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

virtual

Reimplemented from PASN_Object.

## IsValid()

PBoolean PASN_Choice::IsValid | ( |  | ) | const

inline

References PObject::Compare(), PASN_Object::Decode(), PASN_Object::Encode(), PASN_Object::GetDataLength(), PASN_Object::GetTypeAsString(), PASN_Object::IsPrimitive(), PObject::PrintOn(), PASN_Object::tag, and PASN_Object::tagClass.

## operator const PASN_BitString &()

PASN_Choice::operator const PASN_BitString & | ( |  | ) | const

## operator const PASN_BMPString &()

PASN_Choice::operator const PASN_BMPString & | ( |  | ) | const

## operator const PASN_Boolean &()

PASN_Choice::operator const PASN_Boolean & | ( |  | ) | const

## operator const PASN_Enumeration &()

PASN_Choice::operator const PASN_Enumeration & | ( |  | ) | const

## operator const PASN_GeneralString &()

PASN_Choice::operator const PASN_GeneralString & | ( |  | ) | const

## operator const PASN_IA5String &()

PASN_Choice::operator const PASN_IA5String & | ( |  | ) | const

## operator const PASN_Integer &()

PASN_Choice::operator const PASN_Integer & | ( |  | ) | const

## operator const PASN_Null &()

PASN_Choice::operator const PASN_Null & | ( |  | ) | const

## operator const PASN_NumericString &()

PASN_Choice::operator const PASN_NumericString & | ( |  | ) | const

## operator const PASN_ObjectId &()

PASN_Choice::operator const PASN_ObjectId & | ( |  | ) | const

## operator const PASN_OctetString &()

PASN_Choice::operator const PASN_OctetString & | ( |  | ) | const

## operator const PASN_PrintableString &()

PASN_Choice::operator const PASN_PrintableString & | ( |  | ) | const

## operator const PASN_Real &()

PASN_Choice::operator const PASN_Real & | ( |  | ) | const

## operator const PASN_Sequence &()

PASN_Choice::operator const PASN_Sequence & | ( |  | ) | const

## operator const PASN_VisibleString &()

PASN_Choice::operator const PASN_VisibleString & | ( |  | ) | const

## operator PASN_BitString &()

PASN_Choice::operator PASN_BitString & | ( |  | ) |

## operator PASN_BMPString &()

PASN_Choice::operator PASN_BMPString & | ( |  | ) |

## operator PASN_Boolean &()

PASN_Choice::operator PASN_Boolean & | ( |  | ) |

## operator PASN_Enumeration &()

PASN_Choice::operator PASN_Enumeration & | ( |  | ) |

## operator PASN_GeneralString &()

PASN_Choice::operator PASN_GeneralString & | ( |  | ) |

## operator PASN_IA5String &()

PASN_Choice::operator PASN_IA5String & | ( |  | ) |

## operator PASN_Integer &()

PASN_Choice::operator PASN_Integer & | ( |  | ) |

## operator PASN_Null &()

PASN_Choice::operator PASN_Null & | ( |  | ) |

## operator PASN_NumericString &()

PASN_Choice::operator PASN_NumericString & | ( |  | ) |

## operator PASN_ObjectId &()

PASN_Choice::operator PASN_ObjectId & | ( |  | ) |

## operator PASN_OctetString &()

PASN_Choice::operator PASN_OctetString & | ( |  | ) |

## operator PASN_PrintableString &()

PASN_Choice::operator PASN_PrintableString & | ( |  | ) |

## operator PASN_Real &()

PASN_Choice::operator PASN_Real & | ( |  | ) |

## operator PASN_Sequence &()

PASN_Choice::operator PASN_Sequence & | ( |  | ) |

## operator PASN_VisibleString &()

PASN_Choice::operator PASN_VisibleString & | ( |  | ) |

## operator=()

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

## PrintOn()

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.

## SetTag()

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

virtual

Reimplemented from PASN_Object.

## Member Data Documentation

## choice

PASN_Object* PASN_Choice::choice

protected

## names

const PASN_Names* PASN_Choice::names

protected

## namesCount

unsigned PASN_Choice::namesCount

protected

## numChoices

unsigned PASN_Choice::numChoices

protected

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

- asner.h