MrSID Decode SDK for Raster Reference Manual
9.5.1.4427
|
00001 /* $Id$ */ 00002 /* ////////////////////////////////////////////////////////////////////////// 00003 // // 00004 // This code is Copyright (c) 2004 LizardTech, Inc, 1008 Western Avenue, // 00005 // Suite 200, Seattle, WA 98104. Unauthorized use or distribution // 00006 // prohibited. Access to and use of this code is permitted only under // 00007 // license from LizardTech, Inc. Portions of the code are protected by // 00008 // US and foreign patents and other filings. All Rights Reserved. // 00009 // // 00011 /* PUBLIC */ 00012 00013 #ifndef LT_IO_CALLBACK_STREAM_H 00014 #define LT_IO_CALLBACK_STREAM_H 00015 00016 #include "lt_ioCallbackStreamTypes.h" 00017 #include "lt_ioStreamInf.h" 00018 00019 #if defined(LT_COMPILER_MS) 00020 #pragma warning(push,4) 00021 #endif 00022 00023 LT_BEGIN_NAMESPACE( LizardTech ) 00024 00025 00026 00036 class LTIOCallbackStream : public LTIOStreamInf 00037 { 00038 public: 00039 LTIOCallbackStream(); 00040 00041 virtual ~LTIOCallbackStream(); 00042 00074 virtual LT_STATUS initialize(LTIOCallbackStream_Open open, 00075 LTIOCallbackStream_Close close, 00076 LTIOCallbackStream_Read read, 00077 LTIOCallbackStream_Write write, 00078 LTIOCallbackStream_Seek seek, 00079 LTIOCallbackStream_Tell tell, 00080 LTIOCallbackStream_IsEOF isEOF, 00081 LTIOCallbackStream_IsOpen isOpen, 00082 LTIOCallbackStream_Duplicate duplicate, 00083 void* user); 00084 00085 virtual bool isEOF(); 00086 virtual bool isOpen(); 00087 00088 virtual LT_STATUS open(); 00089 virtual LT_STATUS close(); 00090 00091 virtual lt_uint32 read( lt_uint8 *pDest, lt_uint32 numBytes ); 00092 virtual lt_uint32 write( const lt_uint8 *pSrc, lt_uint32 numBytes ); 00093 00094 virtual LT_STATUS seek( lt_int64 offset, LTIOSeekDir origin ); 00095 virtual lt_int64 tell(); 00096 00097 virtual LTIOStreamInf* duplicate(); 00098 virtual LT_STATUS getLastError() const; 00099 virtual const char* getID() const; 00100 00101 private: 00102 LTIOCallbackStream_Open m_open; 00103 LTIOCallbackStream_Close m_close; 00104 LTIOCallbackStream_Read m_read; 00105 LTIOCallbackStream_Write m_write; 00106 LTIOCallbackStream_Seek m_seek; 00107 LTIOCallbackStream_Tell m_tell; 00108 LTIOCallbackStream_IsEOF m_isEOF; 00109 LTIOCallbackStream_IsOpen m_isOpen; 00110 LTIOCallbackStream_Duplicate m_duplicate; 00111 00112 void* m_user; 00113 }; 00114 00115 LT_END_NAMESPACE( LizardTech ) 00116 00117 #if defined(LT_COMPILER_MS) 00118 #pragma warning(pop) 00119 #endif 00120 00121 #endif // LT_IO_CALLBACK_STREAM_H