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

📄 asner.h

📁 pwlib源码库
💻 H
📖 第 1 页 / 共 3 页
字号:
    void EncodeBER(PBER_Stream & strm) const;#endif#ifdef P_INCLUDE_PER    BOOL DecodePER(PPER_Stream & strm);    void EncodePER(PPER_Stream & strm) const;#endif  protected:    void Construct();    BOOL IsLegalCharacter(WORD ch);    PWORDArray value;    PWORDArray characterSet;    WORD firstChar, lastChar;    unsigned charSetUnalignedBits;    unsigned charSetAlignedBits;};class PASN_GeneralisedTime : public PASN_VisibleString{    PCLASSINFO(PASN_GeneralisedTime, PASN_VisibleString);  public:    PASN_GeneralisedTime()      : PASN_VisibleString(UniversalGeneralisedTime, UniversalTagClass) { }    PASN_GeneralisedTime(const PTime & time)      : PASN_VisibleString(UniversalGeneralisedTime, UniversalTagClass) { SetValue(time); }    PASN_GeneralisedTime(unsigned tag, TagClass tagClass)      : PASN_VisibleString(tag, tagClass) { }    PASN_GeneralisedTime & operator=(const PTime & time);    void SetValue(const PTime & time) { operator=(time); }    PTime GetValue() const;};class PASN_UniversalTime : public PASN_VisibleString{    PCLASSINFO(PASN_UniversalTime, PASN_VisibleString);  public:    PASN_UniversalTime()      : PASN_VisibleString(UniversalUTCTime, UniversalTagClass) { }    PASN_UniversalTime(const PTime & time)      : PASN_VisibleString(UniversalUTCTime, UniversalTagClass) { SetValue(time); }    PASN_UniversalTime(unsigned tag, TagClass tagClass)      : PASN_VisibleString(tag, tagClass) { }    PASN_UniversalTime & operator=(const PTime & time);    void SetValue(const PTime & time) { operator=(time); }    PTime GetValue() const;};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;#ifdef P_INCLUDE_PER    virtual BOOL DecodePER(PPER_Stream &);    virtual void EncodePER(PPER_Stream &) const;#endif#ifdef P_INCLUDE_XER    BOOL DecodeXER(PXER_Stream &);    void EncodeXER(PXER_Stream &) const;#endif    PASN_Choice & operator=(const PASN_Choice & other);  protected:    PASN_Choice(unsigned nChoices = 0, BOOL extend = FALSE);    PASN_Choice(unsigned tag, TagClass tagClass, unsigned nChoices, BOOL extend);    PASN_Choice(unsigned tag, TagClass tagClass, unsigned nChoices, BOOL extend, const PASN_Names * nameSpec,unsigned namesCnt);    PASN_Choice(const PASN_Choice & other);    BOOL CheckCreate() const;    unsigned numChoices;    PASN_Object * choice;    const PASN_Names *names;    unsigned namesCount;};PARRAY(PASN_ObjectArray, PASN_Object);/** Class for ASN Sequence type.*/class PASN_Sequence : public PASN_Object{    PCLASSINFO(PASN_Sequence, PASN_Object);  public:    PASN_Sequence(unsigned tag = UniversalSequence,                  TagClass tagClass = UniversalTagClass,                  unsigned nOpts = 0, BOOL extend = FALSE, unsigned nExtend = 0);    PASN_Sequence(const PASN_Sequence & other);    PASN_Sequence & operator=(const PASN_Sequence & other);    PINDEX GetSize() const { return fields.GetSize(); }    BOOL SetSize(PINDEX newSize);    PASN_Object & operator[](PINDEX i) const { return fields[i]; }    BOOL HasOptionalField(PINDEX opt) const;    void IncludeOptionalField(PINDEX opt);    void RemoveOptionalField(PINDEX opt);    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 IsPrimitive() const;    virtual BOOL Decode(PASN_Stream &);    virtual void Encode(PASN_Stream &) const;    BOOL PreambleDecode(PASN_Stream & strm);    void PreambleEncode(PASN_Stream & strm) const;    BOOL KnownExtensionDecode(PASN_Stream & strm, PINDEX fld, PASN_Object & field);    void KnownExtensionEncode(PASN_Stream & strm, PINDEX fld, const PASN_Object & field) const;    BOOL UnknownExtensionsDecode(PASN_Stream & strm);    void UnknownExtensionsEncode(PASN_Stream & strm) const;#ifdef P_INCLUDE_BER    BOOL PreambleDecodeBER(PBER_Stream & strm);    void PreambleEncodeBER(PBER_Stream & strm) const;    BOOL KnownExtensionDecodeBER(PBER_Stream & strm, PINDEX fld, PASN_Object & field);    void KnownExtensionEncodeBER(PBER_Stream & strm, PINDEX fld, const PASN_Object & field) const;    BOOL UnknownExtensionsDecodeBER(PBER_Stream & strm);    void UnknownExtensionsEncodeBER(PBER_Stream & strm) const;#endif#ifdef P_INCLUDE_PER    BOOL PreambleDecodePER(PPER_Stream & strm);    void PreambleEncodePER(PPER_Stream & strm) const;    BOOL KnownExtensionDecodePER(PPER_Stream & strm, PINDEX fld, PASN_Object & field);    void KnownExtensionEncodePER(PPER_Stream & strm, PINDEX fld, const PASN_Object & field) const;    BOOL UnknownExtensionsDecodePER(PPER_Stream & strm);    void UnknownExtensionsEncodePER(PPER_Stream & strm) const;#endif#ifdef P_INCLUDE_XER    virtual BOOL PreambleDecodeXER(PXER_Stream & strm);    virtual void PreambleEncodeXER(PXER_Stream & strm) const;    virtual BOOL KnownExtensionDecodeXER(PXER_Stream & strm, PINDEX fld, PASN_Object & field);    virtual void KnownExtensionEncodeXER(PXER_Stream & strm, PINDEX fld, const PASN_Object & field) const;    virtual BOOL UnknownExtensionsDecodeXER(PXER_Stream & strm);    virtual void UnknownExtensionsEncodeXER(PXER_Stream & strm) const;#endif  protected:    BOOL NoExtensionsToDecode(PPER_Stream & strm);    BOOL NoExtensionsToEncode(PPER_Stream & strm);    PASN_ObjectArray fields;    PASN_BitString optionMap;    int knownExtensions;    int totalExtensions;    PASN_BitString extensionMap;    PINDEX endBasicEncoding;};/** Class for ASN Set type.*/class PASN_Set : public PASN_Sequence{    PCLASSINFO(PASN_Set, PASN_Sequence);  public:    PASN_Set(unsigned tag = UniversalSet,             TagClass tagClass = UniversalTagClass,             unsigned nOpts = 0, BOOL extend = FALSE, unsigned nExtend = 0);    virtual PObject * Clone() const;    virtual PString GetTypeAsString() const;};/** Class for ASN Array type.*/class PASN_Array : public PASN_ConstrainedObject{    PCLASSINFO(PASN_Array, PASN_ConstrainedObject);  public:    PINDEX GetSize() const { return array.GetSize(); }    BOOL SetSize(PINDEX newSize);    PASN_Object & operator[](PINDEX i) const { return array[i]; }    void Append(PASN_Object * obj) { array.SetAt(array.GetSize(), obj); }    void RemoveAt(PINDEX i) { array.RemoveAt(i); }    void RemoveAll() { array.RemoveAll(); }    virtual Comparison Compare(const PObject & obj) const;    virtual void PrintOn(ostream & strm) const;    virtual void SetConstraintBounds(ConstraintType type, int lower, unsigned upper);    virtual PString GetTypeAsString() const;    virtual PINDEX GetDataLength() const;    virtual BOOL IsPrimitive() const;    virtual BOOL Decode(PASN_Stream &);    virtual void Encode(PASN_Stream &) const;    virtual PASN_Object * CreateObject() const = 0;    PASN_Array & operator=(const PASN_Array & other);  protected:    PASN_Array(unsigned tag = UniversalSequence,               TagClass tagClass = UniversalTagClass);    PASN_Array(const PASN_Array & other);    PASN_ObjectArray array;};//////////////////////////////////////////////////////////////////////////////** Base class for ASN decoder/encoder stream.*/class PASN_Stream : public PBYTEArray{    PCLASSINFO(PASN_Stream, PBYTEArray);  public:    PASN_Stream();    PASN_Stream(const PBYTEArray & bytes);    PASN_Stream(const BYTE * buf, PINDEX size);    void PrintOn(ostream & strm) const;    PINDEX GetPosition() const { return byteOffset; }    void SetPosition(PINDEX newPos);    BOOL IsAtEnd() { return byteOffset >= GetSize(); }    void ResetDecoder();    void BeginEncoding();    void CompleteEncoding();    virtual BOOL Read(PChannel & chan) = 0;    virtual BOOL Write(PChannel & chan) = 0;    virtual BOOL NullDecode(PASN_Null &) = 0;    virtual void NullEncode(const PASN_Null &) = 0;    virtual BOOL BooleanDecode(PASN_Boolean &) = 0;    virtual void BooleanEncode(const PASN_Boolean &) = 0;    virtual BOOL IntegerDecode(PASN_Integer &) = 0;    virtual void IntegerEncode(const PASN_Integer &) = 0;    virtual BOOL EnumerationDecode(PASN_Enumeration &) = 0;    virtual void EnumerationEncode(const PASN_Enumeration &) = 0;    virtual BOOL RealDecode(PASN_Real &) = 0;    virtual void RealEncode(const PASN_Real &) = 0;    virtual BOOL ObjectIdDecode(PASN_ObjectId &) = 0;    virtual void ObjectIdEncode(const PASN_ObjectId &) = 0;    virtual BOOL BitStringDecode(PASN_BitString &) = 0;    virtual void BitStringEncode(const PASN_BitString &) = 0;    virtual BOOL OctetStringDecode(PASN_OctetString &) = 0;    virtual void OctetStringEncode(const PASN_OctetString &) = 0;    virtual BOOL ConstrainedStringDecode(PASN_ConstrainedString &) = 0;    virtual void ConstrainedStringEncode(const PASN_ConstrainedString &) = 0;    virtual BOOL BMPStringDecode(PASN_BMPString &) = 0;    virtual void BMPStringEncode(const PASN_BMPString &) = 0;    virtual BOOL ChoiceDecode(PASN_Choice &) = 0;    virtual void ChoiceEncode(const PASN_Choice &) = 0;    virtual BOOL ArrayDecode(PASN_Array &) = 0;    virtual void ArrayEncode(const PASN_Array &) = 0;    virtual BOOL SequencePreambleDecode(PASN_Sequence &) = 0;    virtual void SequencePreambleEncode(const PASN_Sequence &) = 0;    virtual BOOL SequenceKnownDecode(PASN_Sequence &, PINDEX, PASN_Object &) = 0;    virtual void SequenceKnownEncode(const PASN_Sequence &, PINDEX, const PASN_Object &) = 0;    virtual BOOL SequenceUnknownDecode(PASN_Sequence &) = 0;    virtual void SequenceUnknownEncode(const PASN_Sequence &) = 0;    BYTE ByteDecode();    void ByteEncode(unsigned value);    unsigned BlockDecode(BYTE * bufptr, unsigned nBytes);    void BlockEncode(const BYTE * bufptr, PINDEX nBytes);    void ByteAlign();  protected:    PINDEX byteOffset;    unsigned bitOffset;  private:    void Construct();};#ifdef  P_INCLUDE_PER#include "asnper.h"#endif#ifdef  P_INCLUDE_BER#include "asnber.h"#endif#ifdef  P_INCLUDE_XER#include "asnxer.h"#endif#endif // _ASNER_H

⌨️ 快捷键说明

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