00001 
00004 #ifndef FBXFILESDK_KFBXIO_KFBXIO_H
00005 #define FBXFILESDK_KFBXIO_KFBXIO_H
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 
00028 
00029 
00030 
00031 
00032 
00033 
00034 
00035 
00036 
00037 
00038 
00039 
00040 
00041 #include <fbxfilesdk/fbxfilesdk_def.h>
00042 
00043 #include <fbxfilesdk/components/kbaselib/klib/kerror.h>
00044 #include <fbxfilesdk/components/kbaselib/klib/kstring.h>
00045 
00046 #include <fbxfilesdk/kfbxplugins/kfbxobject.h>
00047 
00048 #include <fbxfilesdk/fbxfilesdk_nsbegin.h>
00049 
00050 class KFbxSdkManager;
00051 
00052 #define KFBXIO_END_NODE_STR ("_End")
00053 
00057 class KFBX_DLL KFbxIO : public KFbxObject
00058 {
00059     KFBXOBJECT_DECLARE(KFbxIO, KFbxObject);
00060 
00061 public:
00067     virtual bool Initialize(const char *pFileName);
00068 
00072     virtual KString GetFileName();
00073 
00078 
00082     KError& GetError();
00083 
00097     typedef enum
00098     {
00099         eFILE_CORRUPTED,
00100         eFILE_VERSION_NOT_SUPPORTED_YET,
00101         eFILE_VERSION_NOT_SUPPORTED_ANYMORE,
00102         eFILE_NOT_OPENED,
00103         eFILE_NOT_CREATED,
00104         eOUT_OF_DISK_SPACE,
00105         eUNINITIALIZED_FILENAME,
00106         eUNIDENTIFIED_ERROR,
00107         eINDEX_OUT_OF_RANGE,
00108         ePASSWORD_ERROR,
00109         eEMBEDDED_OUT_OF_SPACE,
00110         eERROR_COUNT
00111     } EError;
00112 
00116     EError GetLastErrorID() const;
00117 
00121     const char* GetLastErrorString() const;
00122 
00126     void GetMessage(KString& pMessage) const;
00127 
00129 
00131 
00132 
00133 
00134 
00135 
00136 
00138 
00139 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00140 
00141 protected:
00142 
00143     KFbxIO(KFbxSdkManager& pManager,char const* pName);
00144 
00145     int DetectReaderFileFormat(const char *pFileName);
00146     int DetectWriterFileFormat(const char *pFileName);
00147 
00148     KError mError;
00149     KString mFilename;
00150     KFbxSdkManager* mManager;
00151     KString mMessage;
00152 
00153 #endif // #ifndef DOXYGEN_SHOULD_SKIP_THIS
00154 
00155 };
00156 
00157 #include <fbxfilesdk/fbxfilesdk_nsend.h>
00158 
00159 #endif // FBXFILESDK_KFBXIO_KFBXIO_H
00160