"L. Spiro Engine"
|
00001 00017 #ifndef __LSSTD_STREAM_H__ 00018 #define __LSSTD_STREAM_H__ 00019 00020 #include "../LSSTDStandardLib.h" 00021 00022 namespace lsstd { 00023 00031 class IStream { 00032 // All is public. This class has no secrets. 00033 public : 00034 // == Enumerations. 00038 enum LSSTD_STREAM_ERRORS { 00039 LSSTD_SE_ERROR = ~0UL, 00040 LSSTD_SE_SUCCESS = 0UL, 00041 LSSTD_SE_MEMORYERROR = 1UL, 00042 LSSTD_SE_ENDOFSTREAM = 2UL, 00044 LSSTD_SE_FORCEDWORD = 0x7FFFFFFFUL, 00045 }; 00046 00047 00048 // == Functions. 00056 virtual LSUINT32 LSE_CALL ReadBytes( LSUINT8 * _pui8Buffer, LSUINT32 _ui32BytesToRead ) const = 0; 00057 00063 virtual LSUINT64 LSE_CALL ReadUInt64() const = 0; 00064 00070 virtual LSUINT32 LSE_CALL ReadUInt32() const = 0; 00071 00077 virtual LSUINT16 LSE_CALL ReadUInt16() const = 0; 00078 00084 virtual LSUINT8 LSE_CALL ReadUInt8() const = 0; 00085 00091 virtual LSFLOAT LSE_CALL ReadFloat() const = 0; 00092 00098 virtual LSDOUBLE LSE_CALL ReadDouble() const = 0; 00099 00107 virtual LSUINT32 LSE_CALL WriteBytes( const LSUINT8 * _pui8Buffer, LSUINT32 _ui32BytesToWrite ) = 0; 00108 00114 virtual LSBOOL LSE_CALL WriteUInt64( const LSUINT64 &_ui64Value ) = 0; 00115 00121 virtual LSBOOL LSE_CALL WriteUInt32( LSUINT32 _ui32Value ) = 0; 00122 00128 virtual LSBOOL LSE_CALL WriteUInt16( LSUINT16 _ui16Value ) = 0; 00129 00135 virtual LSBOOL LSE_CALL WriteUInt8( LSUINT8 _ui8Value ) = 0; 00136 00142 virtual LSBOOL LSE_CALL WriteFloat( LSFLOAT _fValue ) = 0; 00143 00149 virtual LSBOOL LSE_CALL WriteDouble( const LSDOUBLE &_dValue ) = 0; 00150 }; 00151 00152 } // namespace lsstd 00153 00154 #endif // __LSSTD_STREAM_H__