PASNObject Class Reference

This class defines the common behviour of all ASN objects. More...

#include <pasn.h>

Inheritance diagram for PASNObject:

PObject PASNInteger PASNNull PASNObjectID PASNSequence PASNString PASNUnsignedInteger PASNIPAddress PASNCounter PASNGauge PASNTimeTicks List of all members.

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
}
 Value returned by the GetType() function to indicate the type of an ASN object. More...

Public Member Functions

virtual ASNType GetType () const
 Return a value of type enum ASNType which indicates the type of the object.
int GetChoice () const
 Return the descriminator for Choice sequences.
virtual PString GetTypeAsString () const
 Return a string giving the type of the object.
virtual PASNInt GetInteger () const
 Return the value of the ASN object as a PASNInt.
virtual PASNUnsigned GetUnsigned () const
 Return the value of the object as a PASNUnsigned.
virtual PString GetString () const
 Return the value of the object as a PString.
virtual const PASNSequenceGetSequence () const
 Return the value of the object as a PString.
virtual PIPSocket::Address GetIPAddress () const
 Return the value of the object as an IPAddress.
virtual void PrintOn (ostream &strm) const
 Virtual functions used by the PObject::operator<< function to print the value of the object.
virtual void Encode (PBYTEArray &buffer)
 Virtual function used to encode the object into ASN format.
virtual WORD GetEncodedLength ()
 Virtual function used to get the length of object when encoded into ASN format.
virtual PObjectClone () const
 Virtual function used to duplicate objects.

Static Public Member Functions

static void EncodeASNLength (PBYTEArray &buffer, WORD length)
 Encode an ASN length value.
static WORD GetASNLengthLength (WORD length)
 Return the length of an encoded ASN length value.
static PBoolean DecodeASNLength (const PBYTEArray &buffer, PINDEX &ptr, WORD &len)
 Decode an ASN length in the buffer at the given ptr.
static void EncodeASNSequenceStart (PBYTEArray &buffer, BYTE type, WORD length)
 Encode a sequence header into the buffer at the specified offset.
static WORD GetASNSequenceStartLength (WORD length)
 Return the encoded length of a sequence if it has the specified length.
static void EncodeASNHeader (PBYTEArray &buffer, PASNObject::ASNType type, WORD length)
 Encode an ASN object header into the buffer.
static WORD GetASNHeaderLength (WORD length)
 Return the length of an ASN object header if the object is the specified 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 ()
 Create an empty ASN object.

Static Protected Attributes

static BYTE ASNTypeToType [ASNTypeMax]
 Table to map enum ASNType values to ASN identifiers.

Detailed Description

This class defines the common behviour of all ASN objects.

It also contains several functions which are used for encoding common ASN primitives.

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.


Member Enumeration Documentation

enum PASNObject::ASNType

Value returned by the GetType() function to indicate the type of an ASN object.

Enumerator:
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


Constructor & Destructor Documentation

PASNObject::PASNObject (  )  [protected]

Create an empty ASN object.

Used only by descendant constructors


Member Function Documentation

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]

Parameters:
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.

Parameters:
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]

Parameters:
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.

Parameters:
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.

Parameters:
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]

Parameters:
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.

Parameters:
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.

Parameters:
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]

Parameters:
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.

Parameters:
length  length of object

static WORD PASNObject::GetASNIntegerLength ( PASNInt  data  )  [static]

Parameters:
data  value to get length of

static WORD PASNObject::GetASNLengthLength ( WORD  length  )  [static]

Return the length of an encoded ASN length value.

Parameters:
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.

Parameters:
length  length of sequence data

static WORD PASNObject::GetASNUnsignedLength ( PASNUnsigned  data  )  [static]

Parameters:
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

PASNCounter.

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.

Parameters:
strm  stream to print on

Reimplemented from PObject.

Reimplemented in PASNInteger, PASNString, PASNUnsignedInteger, PASNObjectID, PASNNull, and PASNSequence.


Member Data Documentation

BYTE PASNObject::ASNTypeToType[ASNTypeMax] [static, protected]

Table to map enum ASNType values to ASN identifiers.


The documentation for this class was generated from the following file:
Generated on Fri Oct 14 01:44:11 2011 for PTLib by  doxygen 1.4.7