#include <pasn.h>
Inheritance diagram for PASNObject:
Public Types | |
Integer | |
ASN Integer object. | |
String | |
ASN Octet String object. | |
ObjectID | |
ASN Object ID object. | |
Sequence | |
ASN Sequence object. | |
Choice | |
ASN Sequence with discriminator. | |
IPAddress | |
ASN IPAddress object. | |
Counter | |
ASN Counter object. | |
Gauge | |
ASN Gauge object. | |
TimeTicks | |
ASN TimeTicks object. | |
Opaque | |
ASN Opaque object. | |
NsapAddress | |
ASN NsapAddress. | |
Counter64 | |
ASN Counter64. | |
UInteger32 | |
ASN Unsigned integer 32. | |
Null | |
ASN Null. | |
Unknown | |
unknown ASN object type | |
ASNTypeMax | |
maximum of number of ASN object types | |
enum | ASNType { Integer, String, ObjectID, Sequence, Choice, IPAddress, Counter, Gauge, TimeTicks, Opaque, NsapAddress, Counter64, UInteger32, Null, Unknown, ASNTypeMax } |
Public Member Functions | |
virtual ASNType | GetType () const |
int | GetChoice () const |
virtual PString | GetTypeAsString () const |
virtual PASNInt | GetInteger () const |
virtual PASNUnsigned | GetUnsigned () const |
virtual PString | GetString () const |
virtual const PASNSequence & | GetSequence () const |
virtual PIPSocket::Address | GetIPAddress () const |
virtual void | PrintOn (ostream &strm) const |
virtual void | Encode (PBYTEArray &buffer) |
virtual WORD | GetEncodedLength () |
virtual PObject * | Clone () const |
Static Public Member Functions | |
static void | EncodeASNLength (PBYTEArray &buffer, WORD length) |
static WORD | GetASNLengthLength (WORD length) |
static PBoolean | DecodeASNLength (const PBYTEArray &buffer, PINDEX &ptr, WORD &len) |
static void | EncodeASNSequenceStart (PBYTEArray &buffer, BYTE type, WORD length) |
static WORD | GetASNSequenceStartLength (WORD length) |
static void | EncodeASNHeader (PBYTEArray &buffer, PASNObject::ASNType type, WORD length) |
static WORD | GetASNHeaderLength (WORD length) |
static void | EncodeASNInteger (PBYTEArray &buffer, PASNInt data, PASNObject::ASNType type) |
static void | EncodeASNUnsigned (PBYTEArray &buffer, PASNUnsigned data, PASNObject::ASNType type) |
static WORD | GetASNIntegerLength (PASNInt data) |
static WORD | GetASNUnsignedLength (PASNUnsigned data) |
static PBoolean | DecodeASNInteger (const PBYTEArray &buffer, PINDEX &ptr, PASNInt &value, ASNType type=Integer) |
static PBoolean | DecodeASNUnsigned (const PBYTEArray &buffer, PINDEX &ptr, PASNUnsigned &value, ASNType type=TimeTicks) |
Protected Member Functions | |
PASNObject () | |
Static Protected Attributes | |
static BYTE | ASNTypeToType [ASNTypeMax] |
This class will never be instantiated directly. See the PASNInteger, PASNSequence, PASNString and PASNObjectID classes for examples of ASN objects that can be created.
Only descendants of this class can be put into the ASNSequence class.
enum PASNObject::ASNType |
Value returned by the GetType() function to indicate the type of an ASN object
PASNObject::PASNObject | ( | ) | [protected] |
Create an empty ASN object. Used only by descendant constructors
virtual PObject* PASNObject::Clone | ( | ) | const [virtual] |
Virtual function used to duplicate objects
Reimplemented from PObject.
Reimplemented in PASNInteger, PASNString, PASNIPAddress, PASNTimeTicks, PASNCounter, PASNGauge, PASNObjectID, and PASNNull.
static PBoolean PASNObject::DecodeASNInteger | ( | const PBYTEArray & | buffer, | |
PINDEX & | ptr, | |||
PASNInt & | value, | |||
ASNType | type = Integer | |||
) | [static] |
buffer | buffer to decode from |
ptr | ptr to data in buffer |
value | returned value |
type | actual integer type |
static PBoolean PASNObject::DecodeASNLength | ( | const PBYTEArray & | buffer, | |
PINDEX & | ptr, | |||
WORD & | len | |||
) | [static] |
Decode an ASN length in the buffer at the given ptr. The ptr is moved to the byte after the end of the encoded length.
buffer | buffer to decode data from |
ptr | ptr to decode from |
len | returned length |
static PBoolean PASNObject::DecodeASNUnsigned | ( | const PBYTEArray & | buffer, | |
PINDEX & | ptr, | |||
PASNUnsigned & | value, | |||
ASNType | type = TimeTicks | |||
) | [static] |
buffer | buffer to decode from |
ptr | ptr to data in buffer |
value | returned value |
type | actual integer type |
virtual void PASNObject::Encode | ( | PBYTEArray & | buffer | ) | [virtual] |
Virtual function used to encode the object into ASN format
buffer | buffer to encode into |
Reimplemented in PASNInteger, PASNString, PASNIPAddress, PASNTimeTicks, PASNCounter, PASNGauge, PASNObjectID, PASNNull, and PASNSequence.
static void PASNObject::EncodeASNHeader | ( | PBYTEArray & | buffer, | |
PASNObject::ASNType | type, | |||
WORD | length | |||
) | [static] |
Encode an ASN object header into the buffer
buffer | buffer to encode into |
type | ASN type of the object |
length | length of the object |
static void PASNObject::EncodeASNInteger | ( | PBYTEArray & | buffer, | |
PASNInt | data, | |||
PASNObject::ASNType | type | |||
) | [static] |
buffer | buffer to encode into |
data | value to encode |
type | actual integer type |
static void PASNObject::EncodeASNLength | ( | PBYTEArray & | buffer, | |
WORD | length | |||
) | [static] |
Encode an ASN length value
buffer | buffer to encode into |
length | ASN length to encode |
static void PASNObject::EncodeASNSequenceStart | ( | PBYTEArray & | buffer, | |
BYTE | type, | |||
WORD | length | |||
) | [static] |
Encode a sequence header into the buffer at the specified offset.
buffer | buffer to encode data into |
type | sequence type |
length | length of sequence data |
static void PASNObject::EncodeASNUnsigned | ( | PBYTEArray & | buffer, | |
PASNUnsigned | data, | |||
PASNObject::ASNType | type | |||
) | [static] |
buffer | buffer to encode into |
data | value to encode |
type | actual integer type |
static WORD PASNObject::GetASNHeaderLength | ( | WORD | length | ) | [static] |
Return the length of an ASN object header if the object is the specified length
length | length of object |
static WORD PASNObject::GetASNIntegerLength | ( | PASNInt | data | ) | [static] |
data | value to get length of |
static WORD PASNObject::GetASNLengthLength | ( | WORD | length | ) | [static] |
Return the length of an encoded ASN length value
length | length to find length of |
static WORD PASNObject::GetASNSequenceStartLength | ( | WORD | length | ) | [static] |
Return the encoded length of a sequence if it has the specified length
length | length of sequence data |
static WORD PASNObject::GetASNUnsignedLength | ( | PASNUnsigned | data | ) | [static] |
data | value to get length of |
int PASNObject::GetChoice | ( | ) | const |
Return the descriminator for Choice sequences
Reimplemented in PASNSequence.
virtual WORD PASNObject::GetEncodedLength | ( | ) | [virtual] |
Virtual function used to get the length of object when encoded into ASN format
Reimplemented in PASNInteger, PASNString, PASNUnsignedInteger, PASNObjectID, PASNNull, and PASNSequence.
virtual PASNInt PASNObject::GetInteger | ( | ) | const [virtual] |
Return the value of the ASN object as a PASNInt.
This function will assert if the object is not a descendant of PASNInteger.
Reimplemented in PASNInteger.
virtual PIPSocket::Address PASNObject::GetIPAddress | ( | ) | const [virtual] |
Return the value of the object as an IPAddress
This function will assert if the object is not a descendant of PASNIPAddress.
Reimplemented in PASNIPAddress.
virtual const PASNSequence& PASNObject::GetSequence | ( | ) | const [virtual] |
Return the value of the object as a PString
This function will assert if the object is not a descendant of PASNSequence.
Reimplemented in PASNSequence.
virtual PString PASNObject::GetString | ( | ) | const [virtual] |
Return the value of the object as a PString. This function can be use for all ASN object types
Reimplemented in PASNInteger, PASNString, PASNIPAddress, PASNUnsignedInteger, PASNObjectID, and PASNNull.
virtual ASNType PASNObject::GetType | ( | ) | const [virtual] |
Return a value of type enum ASNType which indicates the type of the object
Reimplemented in PASNInteger, PASNString, PASNIPAddress, PASNTimeTicks, PASNCounter, PASNGauge, PASNObjectID, PASNNull, and PASNSequence.
virtual PString PASNObject::GetTypeAsString | ( | ) | const [virtual] |
Return a string giving the type of the object
Reimplemented in PASNInteger, PASNString, PASNIPAddress, PASNTimeTicks, PASNCounter, PASNGauge, PASNObjectID, PASNNull, and PASNSequence.
virtual PASNUnsigned PASNObject::GetUnsigned | ( | ) | const [virtual] |
Return the value of the object as a PASNUnsigned
This function will assert if the object is not a descendant of PASNTimeTicks or
Reimplemented in PASNUnsignedInteger.
virtual void PASNObject::PrintOn | ( | ostream & | strm | ) | const [virtual] |
Virtual functions used by the PObject::operator<< function to print the value of the object.
strm | stream to print on |
Reimplemented from PObject.
Reimplemented in PASNInteger, PASNString, PASNUnsignedInteger, PASNObjectID, PASNNull, and PASNSequence.
BYTE PASNObject::ASNTypeToType[ASNTypeMax] [static, protected] |
Table to map enum ASNType values to ASN identifiers