Go to the
documentation of this file.
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00013 #ifndef _FBXSDK_CORE_STREAM_H_
00014 #define _FBXSDK_CORE_STREAM_H_
00015
00016 #include <fbxsdk/fbxsdk_def.h>
00017
00018 #include <fbxsdk/core/base/fbxfile.h>
00019
00020 #include <fbxsdk/fbxsdk_nsbegin.h>
00021
00026 class FBXSDK_DLL FbxStream
00027 {
00028 public:
00030 enum EState
00031 {
00032 eClosed,
00033 eOpen,
00034 eEmpty
00035 };
00036
00038 virtual EState GetState() = 0;
00039
00043 virtual bool Open(void* pStreamData) = 0;
00044
00048 virtual bool Close() = 0;
00049
00052 virtual bool Flush() = 0;
00053
00058 virtual int Write(const void* , int ) = 0;
00059
00064 virtual int Read(void* , int ) const = 0;
00065
00075 virtual char* ReadString(char* pBuffer, int pMaxSize, bool pStopAtFirstWhiteSpace=false);
00076
00081 virtual int GetReaderID() const = 0;
00082
00087 virtual int GetWriterID() const = 0;
00088
00092 virtual void Seek(const FbxInt64& pOffset, const FbxFile::ESeekPos& pSeekPos)=0;
00093
00096 virtual long GetPosition() const = 0;
00097
00100 virtual void SetPosition(long pPosition)=0;
00101
00105 virtual int GetError() const = 0;
00106
00108 virtual void ClearError() = 0;
00109
00110
00111
00112
00113 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00114 FbxStream(){};
00115 virtual ~FbxStream(){};
00116
00117 int Write(const char* pData, int pSize){ return Write((void*)pData, pSize); }
00118 int Write(const int* pData, int pSize){ return Write((void*)pData, pSize); }
00119 int Read(char* pData, int pSize) const { return Read((void*)pData, pSize); }
00120 int Read(int* pData, int pSize) const { return Read((void*)pData, pSize); }
00121 #endif
00122 };
00123
00124 #include <fbxsdk/fbxsdk_nsend.h>
00125
00126 #endif