"L. Spiro Engine"

F:/My Projects/LSEngine/Modules/LSStandardLib/Src/Streams/LSSTDExternalByteStream.h

00001 
00018 #ifndef __LSSTD_EXTERNALBYTESTREAM_H__
00019 #define __LSSTD_EXTERNALBYTESTREAM_H__
00020 
00021 #include "../LSSTDStandardLib.h"
00022 #include "LSSTDStream.h"
00023 
00024 namespace lsstd {
00025 
00034         class CExternalByteStream : public IStream {
00035         public :
00036                 // == Various constructors.
00037                 LSE_CALLCTOR                                                    CExternalByteStream();
00038                 LSE_CALLCTOR                                                    CExternalByteStream( LSUINT8 * _pui8Buffer, LSUINTPTR _uiptrLen );
00039                 LSE_CALLCTOR                                                    CExternalByteStream( const LSUINT8 * _pui8Buffer, LSUINTPTR _uiptrLen );
00040 
00041 
00042                 // == Functions.
00050                 virtual LSUINT32 LSE_CALL                               ReadBytes( LSUINT8 * _pui8Buffer, LSUINT32 _ui32BytesToRead ) const;
00051 
00057                 virtual LSUINT64 LSE_CALL                               ReadUInt64() const;
00058                 
00064                 virtual LSUINT32 LSE_CALL                               ReadUInt32() const;
00065 
00071                 virtual LSUINT16 LSE_CALL                               ReadUInt16() const;
00072 
00078                 virtual LSUINT8 LSE_CALL                                ReadUInt8() const;
00079 
00085                 virtual LSFLOAT LSE_CALL                                ReadFloat() const;
00086 
00092                 virtual LSDOUBLE LSE_CALL                               ReadDouble() const;
00093 
00101                 virtual LSUINT32 LSE_CALL                               WriteBytes( const LSUINT8 * _pui8Buffer, LSUINT32 _ui32BytesToWrite );
00102 
00108                 virtual LSBOOL LSE_CALL                                 WriteUInt64( const LSUINT64 &_ui64Value );
00109                 
00115                 virtual LSBOOL LSE_CALL                                 WriteUInt32( LSUINT32 _ui32Value );
00116 
00122                 virtual LSBOOL LSE_CALL                                 WriteUInt16( LSUINT16 _ui16Value );
00123 
00129                 virtual LSBOOL LSE_CALL                                 WriteUInt8( LSUINT8 _ui8Value );
00130 
00136                 virtual LSBOOL LSE_CALL                                 WriteFloat( LSFLOAT _fValue );
00137 
00143                 virtual LSBOOL LSE_CALL                                 WriteDouble( const LSDOUBLE &_dValue );
00144 
00150                 LSVOID LSE_CALL                                                 SetPos( LSUINTPTR _uiptrPos ) const;
00151 
00158                 LSUINTPTR LSE_CALL                                              GetPos() const;
00159 
00165                 LSUINTPTR LSE_CALL                                              Length() const;
00166 
00172                 const LSUINT8 * LSE_CALL                                GetBuffer() const;
00173 
00174 
00175         protected :
00176                 // == Members.
00180                 LSUINT8 *                                                               m_pui8Stream;
00181 
00185                 mutable LSUINTPTR                                               m_uiptrCurPos;
00186 
00190                 LSUINTPTR                                                               m_uiptrLength;
00191 
00195                 LSBOOL                                                                  m_bReadOnly;
00196 
00197         };
00198 
00199 }       // namespace lsstd
00200 
00201 #endif  // __LSSTD_EXTERNALBYTESTREAM_H__
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator