⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 asner.h

📁 radius协议源码÷The Radius Stack will connect to a Radius Server. This stack implementation is built upo
💻 H
📖 第 1 页 / 共 3 页
字号:
    virtual void PrintOn(ostream & strm) const;    virtual PString GetTypeAsString() const;    virtual PINDEX GetDataLength() const;    virtual BOOL Decode(PASN_Stream &);    virtual void Encode(PASN_Stream &) const;  protected:    double value;};/** Class for ASN Object Identifier type.*/class PASN_ObjectId : public PASN_Object{    PCLASSINFO(PASN_ObjectId, PASN_Object);  public:    PASN_ObjectId(unsigned tag = UniversalObjectId,                  TagClass tagClass = UniversalTagClass);    PASN_ObjectId(const PASN_ObjectId & other);    PASN_ObjectId & operator=(const PASN_ObjectId & other);    PASN_ObjectId & operator=(const char * dotstr);    PASN_ObjectId & operator=(const PString & dotstr);    void SetValue(const PString & dotstr);    BOOL operator==(const char * dotstr) const;    BOOL operator!=(const char * dotstr) const { return !operator==(dotstr); }    BOOL operator==(const PASN_ObjectId & id) const { return value == id.value; }    PINDEX GetSize() const { return value.GetSize(); }    const PUnsignedArray & GetValue() const { return value; }    unsigned operator[](PINDEX idx) const { return value[idx]; }    virtual Comparison Compare(const PObject & obj) const;    virtual PObject * Clone() const;    virtual void PrintOn(ostream & strm) const;    virtual PString GetTypeAsString() const;    virtual PINDEX GetDataLength() const;    virtual BOOL Decode(PASN_Stream &);    virtual void Encode(PASN_Stream &) const;    BOOL CommonDecode(PASN_Stream & strm, unsigned dataLen);    void CommonEncode(PBYTEArray & eObjId) const;  protected:    PUnsignedArray value;};/** Class for ASN Bit String type.*/class PASN_BitString : public PASN_ConstrainedObject{    PCLASSINFO(PASN_BitString, PASN_ConstrainedObject);  public:    PASN_BitString(unsigned tag = UniversalBitString,                   TagClass tagClass = UniversalTagClass,                   unsigned nBits = 0);    PASN_BitString(const PASN_BitString & other);    PASN_BitString & operator=(const PASN_BitString & other);    void SetData(unsigned nBits, const PBYTEArray & bytes);    void SetData(unsigned nBits, const BYTE * buf, PINDEX size);    unsigned GetSize() const { return totalBits; }    BOOL SetSize(unsigned nBits);    BOOL operator[](PINDEX bit) const;    void Set(unsigned bit);    void Clear(unsigned bit);    void Invert(unsigned bit);    virtual void SetConstraints(ConstraintType type, int lower = 0, unsigned upper = UINT_MAX);    virtual Comparison Compare(const PObject & obj) const;    virtual PObject * Clone() const;    virtual void PrintOn(ostream & strm) const;    virtual PString GetTypeAsString() const;    virtual PINDEX GetDataLength() const;    virtual BOOL Decode(PASN_Stream &);    virtual void Encode(PASN_Stream &) const;    BOOL DecodeBER(PBER_Stream & strm, unsigned len);    void EncodeBER(PBER_Stream & strm) const;    BOOL DecodePER(PPER_Stream & strm);    void EncodePER(PPER_Stream & strm) const;  protected:    unsigned totalBits;    PBYTEArray bitData;};/** Class for ASN Octet String type.*/class PASN_OctetString : public PASN_ConstrainedObject{    PCLASSINFO(PASN_OctetString, PASN_ConstrainedObject);  public:    PASN_OctetString(unsigned tag = UniversalOctetString,                     TagClass tagClass = UniversalTagClass);    PASN_OctetString(const PASN_OctetString & other);    PASN_OctetString & operator=(const PASN_OctetString & other);    PASN_OctetString & operator=(const char * str);    PASN_OctetString & operator=(const PString & str);    PASN_OctetString & operator=(const PBYTEArray & arr);    void SetValue(const char * str) { operator=(str); }    void SetValue(const PString & str) { operator=(str); }    void SetValue(const PBYTEArray & arr) { operator=(arr); }    void SetValue(const BYTE * data, PINDEX len);    const PBYTEArray & GetValue() const { return value; }    operator const PBYTEArray &() const { return value; }    operator const BYTE *() const { return value; }    PString AsString() const;    BYTE operator[](PINDEX i) const { return value[i]; }    BYTE & operator[](PINDEX i) { return value[i]; }    BYTE * GetPointer(PINDEX sz = 0) { return value.GetPointer(sz); }    PINDEX GetSize() const { return value.GetSize(); }    BOOL SetSize(PINDEX newSize) { return value.SetSize(newSize); }    virtual void SetConstraints(ConstraintType type, int lower = 0, unsigned upper = UINT_MAX);    virtual Comparison Compare(const PObject & obj) const;    virtual PObject * Clone() const;    virtual void PrintOn(ostream & strm) const;    virtual PString GetTypeAsString() const;    virtual PINDEX GetDataLength() const;    virtual BOOL Decode(PASN_Stream &);    virtual void Encode(PASN_Stream &) const;    BOOL DecodePER(PPER_Stream & strm);    void EncodePER(PPER_Stream & strm) const;  protected:    PBYTEArray value;};/** Base class for ASN String types.*/class PASN_ConstrainedString : public PASN_ConstrainedObject{    PCLASSINFO(PASN_ConstrainedString, PASN_ConstrainedObject);  public:    PASN_ConstrainedString & operator=(const char * str);    PASN_ConstrainedString & operator=(const PString & str) { return operator=((const char *)str); }    operator const PString &() const { return value; }    const PString & GetValue() const { return value; }    void SetValue(const PString & v) { operator=(v); }    char operator[](PINDEX idx) const { return value[idx]; }    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;    virtual void PrintOn(ostream & strm) const;    virtual PINDEX GetDataLength() const;    virtual BOOL Decode(PASN_Stream &);    virtual void Encode(PASN_Stream &) const;    BOOL DecodeBER(PBER_Stream & strm, unsigned len);    void EncodeBER(PBER_Stream & strm) const;    BOOL DecodePER(PPER_Stream & strm);    void EncodePER(PPER_Stream & strm) const;  protected:    PASN_ConstrainedString(const char * canonicalSet, PINDEX setSize,                           unsigned tag, TagClass tagClass);    PString value;    PCharArray characterSet;    const char * canonicalSet;    PINDEX canonicalSetSize;    unsigned canonicalSetBits;    unsigned charSetUnalignedBits;    unsigned charSetAlignedBits;};#define DECLARE_STRING_CLASS(name) \  class PASN_##name##String : public PASN_ConstrainedString { \    PCLASSINFO(PASN_##name##String, PASN_ConstrainedString); \    public: \      PASN_##name##String(unsigned tag = UniversalNumericString, \                          TagClass tagClass = UniversalTagClass); \      PASN_##name##String & operator=(const char * str); \      PASN_##name##String & operator=(const PString & str); \      virtual PObject * Clone() const; \      virtual PString GetTypeAsString() const; \  }DECLARE_STRING_CLASS(Numeric);DECLARE_STRING_CLASS(Printable);DECLARE_STRING_CLASS(Visible);DECLARE_STRING_CLASS(IA5);DECLARE_STRING_CLASS(General);/** Class for ASN BMP (16 bit) String type.*/class PASN_BMPString : public PASN_ConstrainedObject{    PCLASSINFO(PASN_BMPString, PASN_ConstrainedObject);  public:    PASN_BMPString(unsigned tag = UniversalBMPString,                   TagClass tagClass = UniversalTagClass);    PASN_BMPString(const PASN_BMPString & other);    PASN_BMPString & operator=(const PASN_BMPString & other);    PASN_BMPString & operator=(const PString & v);    PASN_BMPString & operator=(const PWORDArray & v);    operator PString() const { return GetValue(); }    operator PWORDArray() const { return value; }    PString GetValue() const;    void GetValue(PWORDArray & v) const { v = value; }    void SetValue(const PString & v) { operator=(v); }    void SetValue(const PWORDArray & v) { operator=(v); }    void SetCharacterSet(ConstraintType ctype, const char * charSet);    void SetCharacterSet(ConstraintType ctype, const PWORDArray & charSet);    void SetCharacterSet(ConstraintType ctype, unsigned firstChar, unsigned lastChar);    virtual Comparison Compare(const PObject & obj) const;    virtual PObject * Clone() const;    virtual void PrintOn(ostream & strm) const;    virtual PString GetTypeAsString() const;    virtual PINDEX GetDataLength() const;    virtual BOOL Decode(PASN_Stream &);    virtual void Encode(PASN_Stream &) const;    BOOL DecodeBER(PBER_Stream & strm, unsigned len);    void EncodeBER(PBER_Stream & strm) const;    BOOL DecodePER(PPER_Stream & strm);    void EncodePER(PPER_Stream & strm) const;  protected:    BOOL IsLegalCharacter(WORD ch);    PWORDArray value;    PWORDArray characterSet;    WORD firstChar, lastChar;    unsigned charSetUnalignedBits;    unsigned charSetAlignedBits;};class PASN_Sequence;/** Class for ASN Choice type.*/class PASN_Choice : public PASN_Object{    PCLASSINFO(PASN_Choice, PASN_Object);  public:    ~PASN_Choice();    virtual void SetTag(unsigned newTag, TagClass tagClass = DefaultTagClass);    PString GetTagName() const;    PASN_Object & GetObject() const;    BOOL IsValid() const { return choice != NULL; }#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9    operator PASN_Null &() const;    operator PASN_Boolean &() const;    operator PASN_Integer &() const;    operator PASN_Enumeration &() const;    operator PASN_Real &() const;    operator PASN_ObjectId &() const;    operator PASN_BitString &() const;    operator PASN_OctetString &() const;    operator PASN_NumericString &() const;    operator PASN_PrintableString &() const;    operator PASN_VisibleString &() const;    operator PASN_IA5String &() const;    operator PASN_GeneralString &() const;    operator PASN_BMPString &() const;    operator PASN_Sequence &() const;#else    operator PASN_Null &();    operator PASN_Boolean &();    operator PASN_Integer &();    operator PASN_Enumeration &();    operator PASN_Real &();    operator PASN_ObjectId &();    operator PASN_BitString &();    operator PASN_OctetString &();    operator PASN_NumericString &();    operator PASN_PrintableString &();    operator PASN_VisibleString &();    operator PASN_IA5String &();    operator PASN_GeneralString &();    operator PASN_BMPString &();    operator PASN_Sequence &();    operator const PASN_Null &() const;    operator const PASN_Boolean &() const;    operator const PASN_Integer &() const;    operator const PASN_Enumeration &() const;    operator const PASN_Real &() const;    operator const PASN_ObjectId &() const;    operator const PASN_BitString &() const;    operator const PASN_OctetString &() const;    operator const PASN_NumericString &() const;    operator const PASN_PrintableString &() const;    operator const PASN_VisibleString &() const;    operator const PASN_IA5String &() const;    operator const PASN_GeneralString &() const;    operator const PASN_BMPString &() const;    operator const PASN_Sequence &() const;#endif    virtual BOOL CreateObject() = 0;    virtual Comparison Compare(const PObject & obj) const;    virtual void PrintOn(ostream & strm) const;    virtual PString GetTypeAsString() const;    virtual PINDEX GetDataLength() const;    virtual BOOL IsPrimitive() const;    virtual BOOL Decode(PASN_Stream &);    virtual void Encode(PASN_Stream &) const;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -