00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
#ifdef P_INCLUDE_BER
00011
00014
class PBER_Stream :
public PASN_Stream
00015 {
00016
PCLASSINFO(PBER_Stream,
PASN_Stream);
00017
public:
00018 PBER_Stream();
00019 PBER_Stream(
const PBYTEArray & bytes);
00020 PBER_Stream(
const BYTE * buf, PINDEX size);
00021
00022 PBER_Stream & operator=(
const PBYTEArray & bytes);
00023
00024
virtual BOOL Read(
PChannel & chan);
00025
virtual BOOL Write(
PChannel & chan);
00026
00027
virtual BOOL NullDecode(
PASN_Null &);
00028
virtual void NullEncode(
const PASN_Null &);
00029
virtual BOOL BooleanDecode(
PASN_Boolean &);
00030
virtual void BooleanEncode(
const PASN_Boolean &);
00031
virtual BOOL IntegerDecode(
PASN_Integer &);
00032
virtual void IntegerEncode(
const PASN_Integer &);
00033
virtual BOOL EnumerationDecode(
PASN_Enumeration &);
00034
virtual void EnumerationEncode(
const PASN_Enumeration &);
00035
virtual BOOL RealDecode(
PASN_Real &);
00036
virtual void RealEncode(
const PASN_Real &);
00037
virtual BOOL ObjectIdDecode(
PASN_ObjectId &);
00038
virtual void ObjectIdEncode(
const PASN_ObjectId &);
00039
virtual BOOL BitStringDecode(
PASN_BitString &);
00040
virtual void BitStringEncode(
const PASN_BitString &);
00041
virtual BOOL OctetStringDecode(
PASN_OctetString &);
00042
virtual void OctetStringEncode(
const PASN_OctetString &);
00043
virtual BOOL ConstrainedStringDecode(
PASN_ConstrainedString &);
00044
virtual void ConstrainedStringEncode(
const PASN_ConstrainedString &);
00045
virtual BOOL BMPStringDecode(
PASN_BMPString &);
00046
virtual void BMPStringEncode(
const PASN_BMPString &);
00047
virtual BOOL ChoiceDecode(
PASN_Choice &);
00048
virtual void ChoiceEncode(
const PASN_Choice &);
00049
virtual BOOL ArrayDecode(
PASN_Array &);
00050
virtual void ArrayEncode(
const PASN_Array &);
00051
virtual BOOL SequencePreambleDecode(
PASN_Sequence &);
00052
virtual void SequencePreambleEncode(
const PASN_Sequence &);
00053
virtual BOOL SequenceKnownDecode(
PASN_Sequence &, PINDEX,
PASN_Object &);
00054
virtual void SequenceKnownEncode(
const PASN_Sequence &, PINDEX,
const PASN_Object &);
00055
virtual BOOL SequenceUnknownDecode(
PASN_Sequence &);
00056
virtual void SequenceUnknownEncode(
const PASN_Sequence &);
00057
00058
virtual PASN_Object * CreateObject(
unsigned tag,
00059 PASN_Object::TagClass tagClass,
00060 BOOL primitive)
const;
00061
00062 BOOL HeaderDecode(
unsigned & tagVal,
00063 PASN_Object::TagClass & tagClass,
00064 BOOL & primitive,
00065
unsigned & len);
00066 BOOL HeaderDecode(
PASN_Object & obj,
unsigned & len);
00067
void HeaderEncode(
const PASN_Object & obj);
00068 };
00069
00070
00071
#endif