fbxiobase.h

Go to the documentation of this file.
00001 /****************************************************************************************
00002  
00003    Copyright (C) 2012 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_FILEIO_IO_BASE_H_
00014 #define _FBXSDK_FILEIO_IO_BASE_H_
00015 
00016 #include <fbxsdk/fbxsdk_def.h>
00017 
00018 #include <fbxsdk/core/base/fbxerror.h>
00019 #include <fbxsdk/core/base/fbxstring.h>
00020 
00021 #include <fbxsdk/core/fbxobject.h>
00022 
00023 #include <fbxsdk/fbxsdk_nsbegin.h>
00024 
00025 class FbxManager;
00026 
00027 #define FBXSDK_IO_END_NODE_STR "_End"
00028 
00032 class FBXSDK_DLL FbxIOBase : public FbxObject
00033 {
00034     FBXSDK_OBJECT_DECLARE(FbxIOBase, FbxObject);
00035 
00036 public:
00042     virtual bool Initialize(const char *pFileName);
00043 
00047     virtual FbxString GetFileName();
00048 
00053 
00057     FbxError& GetError();
00058 
00072     enum EErrorCode
00073     {
00074         eFileCorrupted,
00075         eFileVersionNotSupportedYet,
00076         eFileVersionNotSupportedAnymore,
00077         eFileNotOpened,
00078         eFileNotCreated,
00079         eOutOfSpace,
00080         eUninitializedFileName,
00081         eUnknownError,
00082         eIndexOutOfRange,
00083         ePasswordError,
00084         eEmbeddedOutOfSpace,
00085         eErrorCount
00086     };
00087 
00091     EErrorCode GetLastErrorID() const;
00092 
00096     const char* GetLastErrorString() const;
00097 
00101     void GetMessage(FbxString& pMessage) const;
00102 
00104 
00106 //
00107 //  WARNING!
00108 //
00109 //  Anything beyond these lines may not be documented accurately and is
00110 //  subject to change without notice.
00111 //
00113 
00114 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00115 
00116 protected:
00117 
00118     FbxIOBase(FbxManager& pManager,char const* pName);
00119 
00120     int DetectReaderFileFormat(const char *pFileName);
00121     int DetectWriterFileFormat(const char *pFileName);
00122 
00123     FbxError mError;
00124     FbxString mFilename;
00125     FbxManager* mManager;
00126     FbxString mMessage;
00127 
00128 #endif // #ifndef DOXYGEN_SHOULD_SKIP_THIS
00129 
00130 };
00131 
00132 #include <fbxsdk/fbxsdk_nsend.h>
00133 
00134 #endif /* _FBXSDK_FILEIO_IO_BASE_H_ */