00001
00002
00004
00005 #if !defined(JOBOPTIONSSVC_H_INCLUDED_)
00006 #define JOBOPTIONSSVC_H_INCLUDED_
00007
00008 #include <string>
00009 #include "GaudiKernel/StatusCode.h"
00010 #include "GaudiKernel/Service.h"
00011 #include "GaudiKernel/IProperty.h"
00012 #include "GaudiKernel/IJobOptionsSvc.h"
00013
00014 #include "JobOptionsCatalogue.h"
00015 #include "GaudiKernel/PropertyMgr.h"
00016
00017
00018 class JobOptionsSvc : virtual public Service,
00019 virtual public IProperty,
00020 virtual public IJobOptionsSvc {
00021 public:
00022
00023 JobOptionsSvc(const std::string& name,ISvcLocator* svc);
00024
00025 virtual ~JobOptionsSvc() {}
00026
00027 virtual StatusCode initialize();
00028
00029 virtual StatusCode setMyProperties( const std::string& client,
00030 IProperty* myInt );
00031
00032
00033 StatusCode setProperty(const Property& p);
00034 StatusCode getProperty(Property *p) const;
00035
00036
00037 StatusCode queryInterface(const IID& riid, void** ppvInterface);
00038
00039 private:
00040 std::string source_type() const;
00041 std::string source_path() const;
00042 StatusCode readOptions();
00043 std::string m_source_path;
00044 std::string m_source_type;
00045 JobOptionsCatalogue m_catalogue;
00046 PropertyMgr m_pmgr;
00047 };
00048
00049 #endif // !defined(JOBOPTIONSSVC_H_INCLUDED_)