# PASN_Enumeration Class Reference

Class for ASN Enumerated type. More...

`#include <asner.h>`

Inheritance diagram for PASN_Enumeration:

List of all members.

## Public Member Functions

| PASN_Enumeration (unsigned val=0)
| PASN_Enumeration (unsigned tag, TagClass tagClass, unsigned nEnums=P_MAX_INDEX, PBoolean extendable=false, unsigned val=0)
| PASN_Enumeration (unsigned tag, TagClass tagClass, unsigned nEnums, PBoolean extendable, const PASN_Names *nameSpec, unsigned namesCnt, unsigned val=0)
PASN_Enumeration & | operator= (unsigned v)
| operator unsigned () const
unsigned | GetValue () const
void | SetValue (unsigned v)
unsigned | GetMaximum () const
virtual Comparison | Compare (const PObject &obj) const
| Compare the two objects and return their relative rank.
virtual PObject * | Clone () const
| Create a copy of the class on the heap.
virtual void | PrintOn (ostream &strm) const
| Output the contents of the object to the stream.
virtual PString | GetTypeAsString () const
| Return a string giving the type of the object.
virtual PINDEX | GetDataLength () const
virtual PBoolean | Decode (PASN_Stream &)
virtual void | Encode (PASN_Stream &) const
PBoolean | DecodePER (PPER_Stream &strm)
void | EncodePER (PPER_Stream &strm) const
virtual PBoolean | DecodeXER (PXER_Stream &strm)
virtual void | EncodeXER (PXER_Stream &strm) const
PINDEX | GetValueByName (PString name) const

## Protected Attributes

unsigned | maxEnumValue
unsigned | value
const PASN_Names * | names
unsigned | namesCount

## Detailed Description

Class for ASN Enumerated type.

## Constructor & Destructor Documentation

PASN_Enumeration::PASN_Enumeration | ( | unsigned | val = `0` | ) |

PASN_Enumeration::PASN_Enumeration | ( | unsigned | tag,
|  | TagClass | tagClass,
|  | unsigned | nEnums = `P_MAX_INDEX`,
|  | PBoolean | extendable = `false`,
|  | unsigned | val = `0` |
| ) |  |  |

PASN_Enumeration::PASN_Enumeration | ( | unsigned | tag,
|  | TagClass | tagClass,
|  | unsigned | nEnums,
|  | PBoolean | extendable,
|  | const PASN_Names * | nameSpec,
|  | unsigned | namesCnt,
|  | unsigned | val = `0` |
| ) |  |  |

## Member Function Documentation

virtual PObject* PASN_Enumeration::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.

virtual Comparison PASN_Enumeration::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_Enumeration::Decode | ( | PASN_Stream & |  | ) | `[virtual]`

Implements PASN_Object.

PBoolean PASN_Enumeration::DecodePER | ( | PPER_Stream & | strm | ) |

virtual PBoolean PASN_Enumeration::DecodeXER | ( | PXER_Stream & | strm | ) | `[virtual]`

virtual void PASN_Enumeration::Encode | ( | PASN_Stream & |  | ) | const`[virtual]`

Implements PASN_Object.

void PASN_Enumeration::EncodePER | ( | PPER_Stream & | strm | ) | const

virtual void PASN_Enumeration::EncodeXER | ( | PXER_Stream & | strm | ) | const`[virtual]`

virtual PINDEX PASN_Enumeration::GetDataLength | ( |  | ) | const`[virtual]`

Implements PASN_Object.

unsigned PASN_Enumeration::GetMaximum | ( |  | ) | const`[inline]`

virtual PString PASN_Enumeration::GetTypeAsString | ( |  | ) | const`[virtual]`

Return a string giving the type of the object.

Implements PASN_Object.

unsigned PASN_Enumeration::GetValue | ( |  | ) | const`[inline]`

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

PASN_Enumeration::operator unsigned | ( |  | ) | const`[inline]`

PASN_Enumeration& PASN_Enumeration::operator= | ( | unsigned | v | ) | `[inline]`

virtual void PASN_Enumeration::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_Enumeration::SetValue | ( | unsigned | v | ) | `[inline]`

## Member Data Documentation

unsigned PASN_Enumeration::maxEnumValue `[protected]`

const PASN_Names* PASN_Enumeration::names `[protected]`

unsigned PASN_Enumeration::namesCount `[protected]`

unsigned PASN_Enumeration::value `[protected]`

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

- asner.h