Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Class Members | File Members

PASNObject Class Reference

#include <pasn.h>

Inheritance diagram for PASNObject:

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

Public 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 PASNSequenceGetSequence () const
virtual PIPSocket::Address GetIPAddress () const
virtual void PrintOn (ostream &strm) const
virtual void Encode (PBYTEArray &buffer)
virtual WORD GetEncodedLength ()
virtual PObjectClone () const

Static Public Member Functions

static void EncodeASNLength (PBYTEArray &buffer, WORD length)
static WORD GetASNLengthLength (WORD length)
static BOOL 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 BOOL DecodeASNInteger (const PBYTEArray &buffer, PINDEX &ptr, PASNInt &value, ASNType type=Integer)
static BOOL DecodeASNUnsigned (const PBYTEArray &buffer, PINDEX &ptr, PASNUnsigned &value, ASNType type=TimeTicks)

Protected Member Functions

 PASNObject ()

Static Protected Attributes

static BYTE ASNTypeToType [ASNTypeMax]

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

Enumeration values:
Integer 
String 
ObjectID 
Sequence 
Choice 
IPAddress 
Counter 
Gauge 
TimeTicks 
Opaque 
NsapAddress 
Counter64 
UInteger32 
Null 
Unknown 
ASNTypeMax 


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 BOOL PASNObject::DecodeASNInteger const PBYTEArray buffer,
PINDEX &  ptr,
PASNInt value,
ASNType  type = Integer
[static]
 

static BOOL 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.

static BOOL PASNObject::DecodeASNUnsigned const PBYTEArray buffer,
PINDEX &  ptr,
PASNUnsigned value,
ASNType  type = TimeTicks
[static]
 

virtual void PASNObject::Encode PBYTEArray buffer  )  [virtual]
 

Virtual function used to encode the object into ASN format

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

static void PASNObject::EncodeASNInteger PBYTEArray buffer,
PASNInt  data,
PASNObject::ASNType  type
[static]
 

static void PASNObject::EncodeASNLength PBYTEArray buffer,
WORD  length
[static]
 

Encode an ASN length value

static void PASNObject::EncodeASNSequenceStart PBYTEArray buffer,
BYTE  type,
WORD  length
[static]
 

Encode a sequence header into the buffer at the specified offset.

static void PASNObject::EncodeASNUnsigned PBYTEArray buffer,
PASNUnsigned  data,
PASNObject::ASNType  type
[static]
 

static WORD PASNObject::GetASNHeaderLength WORD  length  )  [static]
 

Return the length of an ASN object header if the object is the specified length

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

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

Return the length of an encoded ASN length value

static WORD PASNObject::GetASNSequenceStartLength WORD  length  )  [static]
 

Return the encoded length of a sequence if it has the specified length

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

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.

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 Sat Dec 22 16:46:52 2007 for PWLib by  doxygen 1.4.2