PTLib  Version 2.10.11
PASN_ConstrainedString Class Reference

Base class for ASN String types. More...

#include <asner.h>

Inheritance diagram for PASN_ConstrainedString:
PASN_ConstrainedObject PASN_Object PObject

Public Member Functions

PASN_ConstrainedStringoperator= (const char *str)
 
PASN_ConstrainedStringoperator= (const PString &str)
 
 operator const PString & () const
 
const PStringGetValue () const
 
void SetValue (const char *v)
 
void SetValue (const PString &v)
 
char operator[] (PINDEX idx) const
 
void SetCharacterSet (ConstraintType ctype, const char *charSet)
 
void SetCharacterSet (ConstraintType ctype, unsigned firstChar=0, unsigned lastChar=255)
 
void SetCharacterSet (const char *charSet, PINDEX size, ConstraintType ctype)
 
virtual Comparison Compare (const PObject &obj) const
 Compare the two objects and return their relative rank. More...
 
virtual void PrintOn (ostream &strm) const
 Output the contents of the object to the stream. More...
 
virtual void SetConstraintBounds (ConstraintType type, int lower, unsigned upper)
 
virtual PINDEX GetDataLength () const
 
virtual PBoolean Decode (PASN_Stream &)
 
virtual void Encode (PASN_Stream &) const
 
PBoolean DecodeBER (PBER_Stream &strm, unsigned len)
 
void EncodeBER (PBER_Stream &strm) const
 
PBoolean DecodePER (PPER_Stream &strm)
 
void EncodePER (PPER_Stream &strm) const
 
- Public Member Functions inherited from PASN_ConstrainedObject
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 PBoolean IsPrimitive () const
 
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)
 
- 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 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 ReadFrom (istream &strm)
 Input the contents of the object from the stream. More...
 

Protected Member Functions

 PASN_ConstrainedString (const char *canonicalSet, PINDEX setSize, unsigned tag, TagClass tagClass)
 
- Protected Member Functions inherited from PASN_ConstrainedObject
 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

PString value
 
PCharArray characterSet
 
const char * canonicalSet
 
PINDEX canonicalSetSize
 
unsigned canonicalSetBits
 
unsigned charSetUnalignedBits
 
unsigned charSetAlignedBits
 
- Protected Attributes inherited from PASN_ConstrainedObject
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 ASN String types.

Constructor & Destructor Documentation

PASN_ConstrainedString::PASN_ConstrainedString ( const char *  canonicalSet,
PINDEX  setSize,
unsigned  tag,
TagClass  tagClass 
)
protected

Member Function Documentation

virtual Comparison PASN_ConstrainedString::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_ConstrainedString::Decode ( PASN_Stream )
virtual

Implements PASN_Object.

PBoolean PASN_ConstrainedString::DecodeBER ( PBER_Stream &  strm,
unsigned  len 
)
PBoolean PASN_ConstrainedString::DecodePER ( PPER_Stream &  strm)
virtual void PASN_ConstrainedString::Encode ( PASN_Stream ) const
virtual

Implements PASN_Object.

void PASN_ConstrainedString::EncodeBER ( PBER_Stream &  strm) const
void PASN_ConstrainedString::EncodePER ( PPER_Stream &  strm) const
virtual PINDEX PASN_ConstrainedString::GetDataLength ( ) const
virtual

Implements PASN_Object.

const PString& PASN_ConstrainedString::GetValue ( ) const
inline
PASN_ConstrainedString::operator const PString & ( ) const
inline
PASN_ConstrainedString& PASN_ConstrainedString::operator= ( const char *  str)
PASN_ConstrainedString& PASN_ConstrainedString::operator= ( const PString str)
inline

References operator=().

Referenced by operator=().

virtual void PASN_ConstrainedString::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_ConstrainedString::SetCharacterSet ( ConstraintType  ctype,
const char *  charSet 
)
virtual

Reimplemented from PASN_Object.

void PASN_ConstrainedString::SetCharacterSet ( ConstraintType  ctype,
unsigned  firstChar = 0,
unsigned  lastChar = 255 
)
virtual

Reimplemented from PASN_Object.

void PASN_ConstrainedString::SetCharacterSet ( const char *  charSet,
PINDEX  size,
ConstraintType  ctype 
)
virtual void PASN_ConstrainedString::SetConstraintBounds ( ConstraintType  type,
int  lower,
unsigned  upper 
)
virtual

Reimplemented from PASN_ConstrainedObject.

void PASN_ConstrainedString::SetValue ( const char *  v)
inline
void PASN_ConstrainedString::SetValue ( const PString v)
inline

Member Data Documentation

const char* PASN_ConstrainedString::canonicalSet
protected
unsigned PASN_ConstrainedString::canonicalSetBits
protected
PINDEX PASN_ConstrainedString::canonicalSetSize
protected
PCharArray PASN_ConstrainedString::characterSet
protected
unsigned PASN_ConstrainedString::charSetAlignedBits
protected
unsigned PASN_ConstrainedString::charSetUnalignedBits
protected
PString PASN_ConstrainedString::value
protected

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