fbxsdk/core/fbxstream.h Source File
 
 
 
fbxsdk/core/fbxstream.h
Go to the documentation of this file.
00001 /****************************************************************************************
00002  
00003    Copyright (C) 2013 Autodesk, Inc.
00004    All rights reserved.
00005  
00006    Use of this software is subject to the terms of the Autodesk license agreement
00007    provided at the time of installation or download, or which otherwise accompanies
00008    this software in either electronic or hard copy form.
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* /*pData*/, int /*pSize*/) = 0;
00059 
00064         virtual int Read(void* /*pData*/, int /*pSize*/) 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 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
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 /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
00122 };
00123 
00124 #include <fbxsdk/fbxsdk_nsend.h>
00125 
00126 #endif /* _FBXSDK_CORE_STREAM_H_ */