00001 00020 #ifndef INC_MI32_GENERICRWMEM_H 00021 #define INC_MI32_GENERICRWMEM_H 00022 #define INC_MI32_GENERICRWMEM_H 00023 00024 #ifndef INC_MI32_GENERICRW_H 00025 #include <mi32/genericrw.h> 00026 #endif 00027 00028 #ifdef MISYSTEMDLL 00029 #define CLASSLIBEXPORT MI_DLLCLASSEXPORT 00030 #else 00031 #define CLASSLIBEXPORT MI_DLLCLASSIMPORT 00032 #endif 00033 00034 //=================================================================================================================== 00035 00037 class CLASSLIBEXPORT GENERICRW_MEMORY : public GENERICRW { 00038 public: 00039 00041 GENERICRW_MEMORY (); 00042 00044 virtual ~GENERICRW_MEMORY (); 00045 00047 void Attach ( 00048 UINT8 *& items, 00049 int numitems 00050 ); 00051 00053 void Attach ( 00054 SIMPLE_ARRAY<UINT8>& buffer 00055 ); 00056 00059 UINT8* Detach ( 00060 ); 00061 00063 const SIMPLE_ARRAY<UINT8>& GetBuffer ( 00064 ) const; 00065 00066 private: 00067 #ifndef GENERATING_DOXYGEN_OUTPUT 00068 SIMPLE_ARRAY<UINT8> m_buffer; 00069 UINT32 m_curpos; 00070 00072 00073 virtual CAPABILITIES v_GetCapabilities () const; 00074 virtual void* v_GetMappedMemory(INT64& size, INT64 offset); 00075 virtual INT64 v_GetSize () const; 00076 virtual INT64 v_GetSizeLimit () const; 00077 virtual INT32 v_Read (void* buffer, INT32 numbytes, bool AllowPartial); 00078 virtual ERRVALUE v_Resize (INT64 newsize); 00079 virtual INT64 v_Seek (INT64 offset, SEEKFROM from); 00080 virtual INT64 v_Tell () const; 00081 virtual ERRVALUE v_Write (const void* buffer, INT32 numbytes); 00082 #endif // GENERATING_DOXYGEN_OUTPUT 00083 }; 00084 00085 //=================================================================================================================== 00086 00087 #undef CLASSLIBEXPORT 00088 00089 #endif
1.6.1