00001
00002
00003 #ifndef XAODMETADATACNV_FILEMETADATACREATORTOOL_H
00004 #define XAODMETADATACNV_FILEMETADATACREATORTOOL_H
00005
00006
00007 #include <string>
00008 #include <memory>
00009
00010
00011 #include "GaudiKernel/ServiceHandle.h"
00012 #include "AthenaKernel/IIOVSvc.h"
00013 #include "AsgTools/AsgMetadataTool.h"
00014 #include "AthenaPoolKernel/IMetaDataTool.h"
00015
00016
00017 #include "xAODMetaData/FileMetaData.h"
00018 #include "xAODMetaData/FileMetaDataAuxInfo.h"
00019
00020 namespace xAODMaker {
00021
00040 class FileMetaDataCreatorTool : public asg::AsgMetadataTool,
00041 public virtual ::IMetaDataTool {
00042
00044 ASG_TOOL_CLASS( FileMetaDataCreatorTool, IMetaDataTool )
00045
00046 public:
00048 FileMetaDataCreatorTool( const std::string& name =
00049 "FileMetaDataCreatorTool" );
00050
00052 virtual StatusCode initialize();
00053 virtual StatusCode start();
00054
00055 protected:
00058
00060 virtual StatusCode beginInputFile();
00061
00063 virtual StatusCode metaDataStop();
00064
00066
00067 private:
00069 StatusCode update( IOVSVC_CALLBACK_ARGS_P( I, keys ) );
00070
00072 std::string m_outputKey;
00073
00075 std::unique_ptr< xAOD::FileMetaData > m_md;
00077 std::unique_ptr< xAOD::FileMetaDataAuxInfo > m_mdAux;
00078
00079 };
00080
00081 }
00082
00083 #endif // XAODMETADATACNV_FILEMETADATACREATORTOOL_H