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 #include <fbxsdk/core/base/fbxfile.h>
00018 #include <fbxsdk/core/arch/fbxtypes.h>
00019
00020 #include <fbxsdk/fbxsdk_nsbegin.h>
00021
00024 class FBXSDK_DLL FbxStream
00025 {
00026 public:
00032 enum EState {eClosed, eOpen, eEmpty};
00033
00035 FbxStream() {};
00036
00038 virtual ~FbxStream() {};
00039
00042 virtual EState GetState() = 0;
00043
00047 virtual bool Open( void* pStreamData ) = 0;
00048
00052 virtual bool Close() = 0;
00053
00057 virtual bool Flush() = 0;
00058
00064 virtual int Write(const void* , int ) = 0;
00065
00071 virtual int Read(void* , int ) const = 0;
00072
00084 virtual char* ReadString(char* pBuffer, int pMaxSize, bool pStopAtFirstWhiteSpace=false);
00085
00087
00088
00089
00090
00091
00092
00094 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00095 int Write(const char* pData, int pSize){ return Write((void*)pData, pSize); }
00096 int Write(const int* pData, int pSize){ return Write((void*)pData, pSize); }
00097 int Read(char* pData, int pSize) const { return Read((void*)pData, pSize); }
00098 int Read(int* pData, int pSize) const { return Read((void*)pData, pSize); }
00099 #endif
00100
00106 virtual int GetReaderID() const = 0;
00107
00113 virtual int GetWriterID() const = 0;
00114
00119 virtual void Seek(const FbxInt64& pOffset, const FbxFile::ESeekPos& pSeekPos)=0;
00120
00124 virtual long GetPosition() const = 0;
00125
00129 virtual void SetPosition(long pPosition)=0;
00130
00135 virtual int GetError() const = 0;
00136
00139 virtual void ClearError() = 0;
00140 };
00141
00142 #include <fbxsdk/fbxsdk_nsend.h>
00143
00144 #endif