00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00030 #ifndef _ASN1XERDECODESTREAM_H_
00031 #define _ASN1XERDECODESTREAM_H_
00032
00033 #include "rtsrc/asn1CppTypes.h"
00034 #include "rtxsrc/OSRTInputStreamIF.h"
00035 #include "rtxersrc/asn1XerCppTypes.h"
00036
00049 class EXTERNXER ASN1XERDecodeStream : public ASN1XERDecodeBuffer
00050 {
00051 protected:
00052 OSRTInputStreamIF* mpStream;
00053 OSBOOL mbOwnStream;
00054
00055 public:
00060 ASN1XERDecodeStream (OSRTInputStreamIF& is, OSBOOL openType = FALSE);
00061
00062 ASN1XERDecodeStream (OSRTInputStreamIF* pis, OSBOOL bOwnStream = TRUE,
00063 OSBOOL openType = FALSE);
00064
00065 ~ASN1XERDecodeStream ();
00066
00070 virtual void* getAppInfo () { return ASN1MessageBuffer::getAppInfo (); }
00071
00079 virtual OSRTCtxtPtr getContext () { return ASN1MessageBuffer::getContext (); }
00080
00087 virtual OSCTXT* getCtxtPtr () { return ASN1MessageBuffer::getCtxtPtr (); }
00088
00096 virtual char* getErrorInfo () { return ASN1MessageBuffer::getErrorInfo (); }
00097
00114 virtual char* getErrorInfo (char* pBuf, size_t& bufSize) {
00115 return ASN1MessageBuffer::getErrorInfo (pBuf, bufSize);
00116 }
00117
00131 virtual int getStatus () const { return ASN1MessageBuffer::getStatus (); }
00132
00137 virtual void printErrorInfo () { ASN1MessageBuffer::printErrorInfo (); }
00138
00143 virtual void resetErrorInfo () { ASN1MessageBuffer::resetErrorInfo (); }
00144
00148 virtual void setAppInfo (void* pAppInfo) {
00149 ASN1MessageBuffer::setAppInfo (pAppInfo);
00150 }
00151
00157 virtual void setDiag (OSBOOL value=TRUE) {
00158 ASN1MessageBuffer::setDiag (value);
00159 }
00160
00161
00172 virtual int close () { return mpStream->close (); }
00173
00182 virtual int flush () { return mpStream->flush (); }
00183
00189 virtual OSBOOL isOpened () { return mpStream->isOpened (); }
00190
00196 virtual size_t currentPos () { return mpStream->currentPos (); }
00197
00207 virtual OSBOOL markSupported () {
00208 return TRUE;
00209 }
00210
00226 int mark (size_t readAheadLimit) {
00227 return mpStream->mark (readAheadLimit);
00228 }
00229
00242 virtual long read (OSOCTET* pDestBuf, size_t maxToRead) {
00243 return mpStream->read (pDestBuf, maxToRead);
00244 }
00245
00246
00259 virtual long readBlocking (OSOCTET* pDestBuf, size_t toReadBytes) {
00260 return mpStream->readBlocking (pDestBuf, toReadBytes);
00261 }
00262
00272 int reset () { return mpStream->reset (); }
00273
00284 virtual int skip (size_t n) { return mpStream->skip (n); }
00285
00286
00296 ASN1XERDecodeStream& operator >> (ASN1CType& val);
00297
00306 int decodeObj (ASN1CType& val);
00307
00322 OSBOOL isA (Type bufferType);
00323 } ;
00324
00327 #endif
00328