00001
00031 #ifndef _APPBASE_DOCUMENTDATA_H
00032 #define _APPBASE_DOCUMENTDATA_H
00033
00034 #include <string>
00035 #include <hugin_shared.h>
00036
00037 namespace AppBase {
00038
00042 class IMPEX DocumentData
00043 {
00044
00045 public:
00047 virtual ~DocumentData() {};
00048
00049
00050 public:
00051 enum ReadWriteError { SUCCESSFUL=-1, UNKNOWN_ERROR, INCOMPATIBLE_TYPE, INVALID_DATA, PARCER_ERROR };
00052
00053 virtual ReadWriteError readData(std::istream& dataInput, std::string documentType = "") =0;
00054 virtual ReadWriteError writeData(std::ostream& dataOutput, std::string documentType = "") =0;
00055
00056
00057 public:
00058 virtual bool isDirty() const
00059 { return m_dirty; }
00060
00061 virtual void clearDirty()
00062 { setDirty(false); };
00063
00064 protected:
00065 virtual void setDirty(const bool& dirty = true)
00066 { m_dirty = dirty; };
00067
00068
00069 private:
00070 bool m_dirty;
00071
00072 };
00073
00074
00075
00076 };
00077 #endif //_H