Go to the documentation of this file.00001
00002
00003
00004
00005
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 #ifndef XMLBatchProcessorH
00033 #define XMLBatchProcessorH
00034
00035 #include <zeusbase/System/ZObject.h>
00036 #include <zeusbase/Processing/Interfaces/IXProcess.hpp>
00037 #include <zeusbase/Processing/Interfaces/IXProcessMonitor.hpp>
00038
00039 BEGIN_NAMESPACE_Zeus
00040
00041 class IXProcProject;
00042 class IBatchContext;
00043
00044
00047
00048 zeusbase_class TXMLBatchProcessor : public TZObject, public IXProcessMonitor
00049 {
00050 public:
00051 TXMLBatchProcessor();
00052 TXMLBatchProcessor(IBatchContext& rContext);
00053
00054 IBatchContext& getContext();
00055 const IBatchContext& getContext() const;
00056 Retval getProject(IXProcProject*& rpProject) const;
00057
00058 Retval loadProject(const IString& rXMLFile);
00059 Retval loadProjectFromStream(const IString& rXMLStream);
00060 Retval processTarget(const IString& rTargetName);
00061 Retval processTarget(const IString& rTargetName, IXProcessMonitor& rMonitor);
00062 Retval processTargetWithoutAbort(const IString& rTargetName);
00063 Retval processTargetWithoutAbort(const IString& rTargetName, IXProcessMonitor& rMonitor);
00064 Retval processDryRun(const IString& rTargetName, IXProcessMonitor& rMonitor);
00065
00066
00067 MEMORY_MANAGER_DECL
00068
00069 protected:
00070 virtual ~TXMLBatchProcessor();
00071
00072 void releaseInstances();
00073
00074
00075 inline virtual void MQUALIFIER onProcessingTargetStarted(IXProcTarget& ,
00076 IXProcess::EProcessingMode ) {}
00077 inline virtual void MQUALIFIER onProcessingTargetEnded(IXProcTarget& ,
00078 Retval ) {}
00079 inline virtual void MQUALIFIER onProcessingGroupStarted(IXProcess& ,
00080 IXProcess::EProcessingMode ) {}
00081 inline virtual void MQUALIFIER onProcessingGroupEnded(IXProcess& ,
00082 Retval ) {}
00083 inline virtual void MQUALIFIER onProcessing(IXProcess& ,
00084 const IString& ,
00085 const IString& ,
00086 bool ,
00087 EMonitorErrorLevel ) {}
00088
00089 private:
00091 IBatchContext& m_rContext;
00093 IXProcProject* m_pProject;
00094 };
00095
00096
00097
00104
00105 inline Retval TXMLBatchProcessor::processTarget(const IString& rTargetName)
00106 {
00107 return processTarget(rTargetName, *this);
00108 }
00109
00110
00117
00118 inline Retval TXMLBatchProcessor::processTargetWithoutAbort(const IString& rTargetName)
00119 {
00120 return processTargetWithoutAbort(rTargetName, *this);
00121 }
00122
00123
00126
00127 inline IBatchContext& TXMLBatchProcessor::getContext()
00128 {
00129 return m_rContext;
00130 }
00131
00132
00135
00136 inline const IBatchContext& TXMLBatchProcessor::getContext() const
00137 {
00138 return m_rContext;
00139 }
00140
00141 END_NAMESPACE_Zeus
00142
00143 #endif