00001 00041 #ifndef INC_MIE_JOBBASE_H 00042 #define INC_MIE_JOBBASE_H 00043 00044 #ifndef INC_MIE_MIE2_H 00045 #include <mie/mie2.h> 00046 #endif 00047 00048 #ifndef INC_RVC_OBJECT_H 00049 #include <rvc/object.h> 00050 #endif 00051 00052 #ifndef INC_MI32_TRANS2DMAPGEN_H 00053 #include <mi32/trans2dmapgen.h> 00054 #endif 00055 00056 00057 namespace MIE { 00058 00059 //===================================================================================================================== 00060 00062 class JOB_BASE { 00063 public: 00064 JOB_BASE ( 00065 const FORMAT& format, 00066 const SETTINGS& settings 00067 ); 00068 00069 virtual ~JOB_BASE (); 00070 00071 const FORMAT& GetFormat ( 00072 ) const { return m_Format; } 00073 00077 MISTRING& GetLog ( 00078 LOGMSG loglevel = LOGMSG_Info 00079 ); 00080 00083 LOGMSG GetLogLevel ( 00084 ) const { return m_LogLevel; } 00085 00087 RVC::OBJITEM& GetObjItem ( 00088 ) { return (m_ObjItem); } 00089 00091 const RVC::OBJITEM& GetObjItem ( 00092 ) const { return (m_ObjItem); } 00093 00095 const SETTINGS& GetSettings ( 00096 ) const { return m_Settings; } 00097 00098 bool IsGeometric ( 00099 ) const { return v_IsGeometric(); } 00100 00101 bool IsGeospatial ( 00102 ) const { return v_IsGeospatial(); } 00103 00107 ERRVALUE LogError ( 00108 ERRVALUE ErrorCode 00109 ); 00110 00114 void LogPrint ( 00115 LOGMSG msglevel, 00116 const MIUNICODE* message 00117 ); 00118 00122 void LogPrint ( 00123 LOGMSG msglevel, 00124 TEXTID textid 00125 ); 00126 00128 void SetLogLevel ( 00129 LOGMSG level 00130 ) { m_LogLevel = level; } 00131 00140 void SetObjItem ( 00141 const RVC::OBJITEM& objitem 00142 ) { m_ObjItem = objitem; } 00143 00144 protected: 00145 const FORMAT& m_Format; 00146 const SETTINGS& m_Settings; 00147 FILEPATH m_SourcePath; 00148 00149 const TRANS2D_MAPGEN& GetTransMapGen ( 00150 ) const { return m_ExtToObj; } 00151 00152 private: 00153 #ifndef GENERATING_DOXYGEN_OUTPUT 00154 TRANS2D_MAPGEN m_ExtToObj; 00155 RVC::OBJECT m_TempFile; 00156 LOGMSG m_LogLevel; 00157 MISTRING m_LogString; 00158 RVC::OBJITEM m_ObjItem; 00159 #endif 00160 00161 virtual bool v_IsGeometric () const; 00162 00163 virtual bool v_IsGeospatial () const; 00164 00165 }; 00166 00167 //===================================================================================================================== 00168 00170 class JOB_IMPORT : public JOB_BASE { 00171 public: 00172 JOB_IMPORT ( 00173 const FORMAT& format, 00174 const SETTINGS& settings 00175 ); 00176 00177 virtual ~JOB_IMPORT (); 00178 00181 ERRVALUE ImportBegin ( 00182 const RVC::OBJITEM& DestObj 00183 ); 00184 00189 ERRVALUE ImportEnd ( 00190 RVC::OBJITEM& DestObj 00191 ); 00192 00195 bool ImportNeedTempFile ( 00196 ) const { return v_ImportNeedTempFile(); } 00197 00200 void SetSourcePath ( 00201 const FILEPATH &path 00202 ) { m_SourcePath = path; } 00203 00204 protected: 00205 FILEPATH m_SourcePath; 00206 00212 virtual ERRVALUE v_ImportBegin ( 00213 const RVC::OBJITEM& DestObj 00214 ); 00215 00228 virtual ERRVALUE v_ImportEnd ( 00229 RVC::OBJITEM& DestObj 00230 ); 00231 00238 virtual bool v_ImportNeedTempFile ( 00239 ) const; 00240 00241 private: 00242 #ifndef GENERATING_DOXYGEN_OUTPUT 00243 typedef JOB_BASE BASECLASS; 00244 RVC::OBJECT m_TempFile; 00245 #endif 00246 }; 00247 00248 //===================================================================================================================== 00249 00251 class JOB_EXPORT : public JOB_BASE { 00252 public: 00253 JOB_EXPORT ( 00254 const FORMAT& format, 00255 const SETTINGS& settings 00256 ); 00257 00258 virtual ~JOB_EXPORT (); 00259 00262 ERRVALUE ExportBegin ( 00263 const MISTRING& Dest 00264 ); 00265 00269 ERRVALUE ExportEnd ( 00270 const MISTRING& Dest 00271 ); 00272 00275 bool ExportNeedTempFile ( 00276 ) const { return (v_ExportNeedTempFile()); } 00277 00278 protected: 00280 virtual ERRVALUE v_ExportBeginObject ( 00281 const MISTRING& Dest 00282 ); 00283 00285 virtual ERRVALUE v_ExportEndObject ( 00286 const MISTRING& Dest 00287 ); 00288 00295 virtual bool v_ExportNeedTempFile ( 00296 ) const; 00297 00298 private: 00299 #ifndef GENERATING_DOXYGEN_OUTPUT 00300 typedef JOB_BASE BASECLASS; 00301 RVC::OBJECT m_TempFile; 00302 #endif 00303 }; 00304 00305 //===================================================================================================================== 00306 00307 } // End namespace MIE 00308 00309 #endif // INC_MIE_JOBBASE_H
1.6.1