PTLib  Version 2.10.10
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
PASN_ConstrainedObject Class Reference

Base class for constrained ASN encoding/decoding. More...

#include <asner.h>

Inheritance diagram for PASN_ConstrainedObject:
PASN_Object PObject PASN_Array PASN_BitString PASN_BMPString PASN_ConstrainedString PASN_Integer PASN_OctetString PSNMP_VarBindList PRFC1155_Counter PRFC1155_Gauge PRFC1155_TimeTicks PRFC1155_IpAddress PRFC1155_Opaque

Public Member Functions

PBoolean IsConstrained () const
 
int GetLowerLimit () const
 
unsigned GetUpperLimit () const
 
PBoolean ConstrainedLengthDecode (PPER_Stream &strm, unsigned &length)
 
void ConstrainedLengthEncode (PPER_Stream &strm, unsigned length) const
 
PBoolean ConstraintEncode (PPER_Stream &strm, unsigned value) const
 
- Public Member Functions inherited from PASN_Object
virtual PString GetTypeAsString () const =0
 Return a string giving the type of the object. More...
 
PINDEX GetObjectLength () const
 
virtual PINDEX GetDataLength () const =0
 
virtual PBoolean IsPrimitive () const
 
virtual PBoolean Decode (PASN_Stream &)=0
 
virtual void Encode (PASN_Stream &) const =0
 
PBoolean IsExtendable () const
 
void SetExtendable (PBoolean ext=true)
 
TagClass GetTagClass () const
 
unsigned GetTag () const
 
virtual void SetTag (unsigned newTag, TagClass tagClass=DefaultTagClass)
 
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 SetCharacterSet (ConstraintType ctype, const char *charSet)
 
virtual void SetCharacterSet (ConstraintType ctype, unsigned firstChar, unsigned lastChar)
 
- Public Member Functions inherited from PObject
virtual ~PObject ()
 
virtual PObjectClone () 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 Compare (const PObject &obj) const
 Compare the two objects and return their relative rank. 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 PrintOn (ostream &strm) const
 Output the contents of the object to the stream. More...
 
virtual void ReadFrom (istream &strm)
 Input the contents of the object from the stream. More...
 

Protected Member Functions

virtual void SetConstraintBounds (ConstraintType type, int lower, unsigned upper)
 
 PASN_ConstrainedObject (unsigned tag, TagClass tagClass)
 
- 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

ConstraintType constraint
 
int lowerLimit
 
unsigned upperLimit
 
- 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

Base class for constrained ASN encoding/decoding.

Constructor & Destructor Documentation

PASN_ConstrainedObject::PASN_ConstrainedObject ( unsigned  tag,
TagClass  tagClass 
)
protected

Member Function Documentation

PBoolean PASN_ConstrainedObject::ConstrainedLengthDecode ( PPER_Stream &  strm,
unsigned &  length 
)
void PASN_ConstrainedObject::ConstrainedLengthEncode ( PPER_Stream &  strm,
unsigned  length 
) const
PBoolean PASN_ConstrainedObject::ConstraintEncode ( PPER_Stream &  strm,
unsigned  value 
) const
int PASN_ConstrainedObject::GetLowerLimit ( ) const
inline

References lowerLimit.

unsigned PASN_ConstrainedObject::GetUpperLimit ( ) const
inline

References upperLimit.

PBoolean PASN_ConstrainedObject::IsConstrained ( ) const
inline
virtual void PASN_ConstrainedObject::SetConstraintBounds ( ConstraintType  type,
int  lower,
unsigned  upper 
)
protectedvirtual

Member Data Documentation

ConstraintType PASN_ConstrainedObject::constraint
protected

Referenced by IsConstrained().

int PASN_ConstrainedObject::lowerLimit
protected

Referenced by GetLowerLimit().

unsigned PASN_ConstrainedObject::upperLimit
protected

Referenced by GetUpperLimit().


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