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

📄 pasn.h

📁 pwlib源码库
💻 H
📖 第 1 页 / 共 2 页
字号:
    PObject * Clone() const;    PASNInt GetInteger() const;    PString GetString () const;    ASNType GetType() const;    PString GetTypeAsString() const;  private:    PASNInt value;};///////////////////////////////////////////////////////////////////////////** A descendant of PASNObject which is a simple ASN OctetStr type */class PASNString : public PASNObject{  PCLASSINFO(PASNString, PASNObject)  public:    PASNString(const PString & str);    PASNString(const BYTE * ptr, int len);    PASNString(const PBYTEArray & buffer,               PASNObject::ASNType = String);    PASNString(const PBYTEArray & buffer, PINDEX & ptr, PASNObject::ASNType = String);    void PrintOn(ostream & strm) const;    void Encode(PBYTEArray & buffer)      { Encode(buffer, String); }    WORD GetEncodedLength();    PObject * Clone() const;    PString GetString() const;    ASNType GetType() const;    PString GetTypeAsString() const;  protected:    BOOL Decode(const PBYTEArray & buffer, PINDEX & i, PASNObject::ASNType type);    void Encode(PBYTEArray & buffer,             PASNObject::ASNType type);    PString value;    WORD    valueLen;};///////////////////////////////////////////////////////////////////////////** A descendant of PASNObject which is an IP address type */class PASNIPAddress : public PASNString{  PCLASSINFO(PASNIPAddress, PASNString)  public:    PASNIPAddress(const PIPSocket::Address & addr)      : PASNString(PString((const char *)&addr, 4)) { }    PASNIPAddress(const PString & str);    PASNIPAddress(const PBYTEArray & buffer)      : PASNString(buffer, IPAddress) { }    PASNIPAddress(const PBYTEArray & buffer, PINDEX & ptr)      : PASNString(buffer, ptr, IPAddress) { }    PASNObject::ASNType GetType() const      { return IPAddress; }    void Encode(PBYTEArray & buffer)      { PASNString::Encode(buffer, IPAddress); }    PString GetString() const;    PString GetTypeAsString() const;    PObject * Clone() const      { return PNEW PASNIPAddress(*this); }    PIPSocket::Address GetIPAddress () const;};///////////////////////////////////////////////////////////////////////////** A descendant of PASNObject which is an unsigned ASN integer type. */class PASNUnsignedInteger : public PASNObject{  PCLASSINFO(PASNUnsignedInteger, PASNObject)  public:    PASNUnsignedInteger(PASNUnsigned val)      { value = val; }    PASNUnsignedInteger(const PBYTEArray & buffer, PINDEX & ptr);    void PrintOn(ostream & strm) const;    WORD GetEncodedLength();    PString GetString () const;    PASNUnsigned GetUnsigned() const;  protected:    PASNUnsignedInteger()      { value = 0; }    BOOL Decode(const PBYTEArray & buffer, PINDEX & i, PASNObject::ASNType theType);    void Encode(PBYTEArray & buffer, PASNObject::ASNType theType);  private:    PASNUnsigned value;};///////////////////////////////////////////////////////////////////////////** A descendant of PASNObject which is an unsigned ASN time tick type. */class PASNTimeTicks : public PASNUnsignedInteger{  PCLASSINFO(PASNTimeTicks, PASNUnsignedInteger)  public:    PASNTimeTicks(PASNUnsigned val)       : PASNUnsignedInteger(val) { }    PASNTimeTicks(const PBYTEArray & buffer, PINDEX & ptr)      { PASNUnsignedInteger::Decode(buffer, ptr, TimeTicks); }    void Encode(PBYTEArray & buffer)      { PASNUnsignedInteger::Encode(buffer, TimeTicks); }    PObject * Clone() const      { return PNEW PASNTimeTicks(*this); }    PASNObject::ASNType GetType() const      { return TimeTicks; }    PString GetTypeAsString() const;};///////////////////////////////////////////////////////////////////////////** A descendant of PASNObject which is an unsigned ASN counter type. */class PASNCounter : public PASNUnsignedInteger{  PCLASSINFO(PASNCounter, PASNUnsignedInteger)  public:    PASNCounter(PASNUnsigned val)       : PASNUnsignedInteger(val) { }    PASNCounter(const PBYTEArray & buffer, PINDEX & ptr)      {  PASNUnsignedInteger::Decode(buffer, ptr, Counter); }    void Encode(PBYTEArray & buffer)      { PASNUnsignedInteger::Encode(buffer, Counter); }    PObject * Clone() const      { return PNEW PASNCounter(*this); }    PASNObject::ASNType GetType() const      { return Counter; }    PString GetTypeAsString() const;};///////////////////////////////////////////////////////////////////////////** A descendant of PASNObject which is an unsigned ASN guage type. */class PASNGauge : public PASNUnsignedInteger{  PCLASSINFO(PASNGauge, PASNUnsignedInteger)  public:    PASNGauge(PASNUnsigned val)       : PASNUnsignedInteger(val) { }    PASNGauge(const PBYTEArray & buffer, PINDEX & ptr)      { Decode(buffer, ptr); }    BOOL Decode(const PBYTEArray & buffer, PINDEX & i)      { return PASNUnsignedInteger::Decode(buffer, i, Gauge); }    void Encode(PBYTEArray & buffer)      { PASNUnsignedInteger::Encode(buffer, Gauge); }    PObject * Clone() const      { return PNEW PASNGauge(*this); }    PASNObject::ASNType GetType() const      { return Gauge; }    PString GetTypeAsString() const;};///////////////////////////////////////////////////////////////////////////** A descendant of PASNObject which is an unsigned ASN ObjID type. */class PASNObjectID : public PASNObject{  PCLASSINFO(PASNObjectID, PASNObject)  public:    PASNObjectID(const PString & str);    PASNObjectID(PASNOid * val, BYTE theLen);    PASNObjectID(const PBYTEArray & buffer);    PASNObjectID(const PBYTEArray & buffer, PINDEX & ptr);    void PrintOn(ostream & strm) const;    void Encode(PBYTEArray & buffer);    WORD GetEncodedLength();    PObject * Clone() const;    ASNType GetType() const;    PString GetString () const;    PString GetTypeAsString() const;  protected:    BOOL Decode(const PBYTEArray & buffer, PINDEX & i);  private:    PDWORDArray value;};///////////////////////////////////////////////////////////////////////////** A descendant of PASNObject which is the NULL type */class PASNNull : public PASNObject{  PCLASSINFO(PASNNull, PASNObject)  public:    PASNNull();    PASNNull(const PBYTEArray & buffer, PINDEX & ptr);    void PrintOn(ostream & strm) const;    void Encode(PBYTEArray & buffer);    WORD GetEncodedLength();    PObject * Clone() const;    ASNType GetType() const;    PString GetString () const;    PString GetTypeAsString() const;};///////////////////////////////////////////////////////////////////////////** A descendant of PASNObject which is the complex sequence type */class PASNSequence : public PASNObject{  PCLASSINFO(PASNSequence, PASNObject)  public:    PASNSequence();    PASNSequence(BYTE selector);    PASNSequence(const PBYTEArray & buffer);    PASNSequence(const PBYTEArray & buffer, PINDEX & i);    void Append(PASNObject * obj);    PINDEX GetSize() const;    PASNObject & operator [] (PINDEX idx) const;    const PASNSequence & GetSequence() const;    void AppendInteger (PASNInt value);    void AppendString  (const PString & str);    void AppendObjectID(const PString & str);    void AppendObjectID(PASNOid * val, BYTE len);    int GetChoice() const;//    PASNInt GetInteger (PINDEX idx) const;//    PString GetString  (PINDEX idx) const;    void PrintOn(ostream & strm) const;    void Encode(PBYTEArray & buffer);    BOOL Decode(const PBYTEArray & buffer, PINDEX & i);    WORD GetEncodedLength();    ASNType GetType() const;    PString GetTypeAsString() const;    BOOL Encode(PBYTEArray & buffer, PINDEX maxLen) ;  private:    PASNObjectList sequence;    BYTE     type;    ASNType  asnType;    WORD     encodedLen;    WORD     seqLen;};#endif// End of File.

⌨️ 快捷键说明

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