All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
JobOptionsSvc.h
Go to the documentation of this file.
1 // $Id:$
2 #ifndef JOBOPTIONSSVC_H_
3 #define JOBOPTIONSSVC_H_
4 
5 #include "GaudiKernel/StatusCode.h"
6 #include "GaudiKernel/IProperty.h"
7 #include "GaudiKernel/IJobOptionsSvc.h"
8 #include "GaudiKernel/Property.h"
9 #include "GaudiKernel/PropertyMgr.h"
10 #include "GaudiKernel/Service.h"
11 
12 #include "SvcCatalog.h"
13 
14 #include <vector>
15 
16 namespace Gaudi { namespace Parsers {
17  class Catalog;
18 }}
19 
20 
21 class JobOptionsSvc : public extends2<Service, IProperty, IJobOptionsSvc> {
22  public:
23  typedef std::vector<const Property*> PropertiesT;
24  // unhides some of Service's methods
28  // Constructor
29  JobOptionsSvc(const std::string& name,ISvcLocator* svc);
31  virtual ~JobOptionsSvc() {};
32  virtual StatusCode initialize ();
34  virtual StatusCode finalize ();
35 
40  virtual StatusCode setMyProperties(const std::string& client,
41  IProperty* me ) ;
42 
44  virtual StatusCode addPropertyToCatalogue( const std::string& client,
45  const Property& property ) ;
46 
48  virtual StatusCode removePropertyFromCatalogue( const std::string& client,
49  const std::string& name );
51  virtual const std::vector<const Property*>*
52  getProperties( const std::string& client) const;
53 
55  virtual std::vector<std::string> getClients() const;
56 
63  virtual StatusCode readOptions ( const std::string& file,
64  const std::string& path = "" );
65 
69  private:
70  void fillServiceCatalog(const Gaudi::Parsers::Catalog& catalog);
71  void dump (const std::string& file,
72  const Gaudi::Parsers::Catalog& catalog) const ;
74 
75  private:
77  std::string m_source_path;
78  std::string m_source_type;
79  std::string m_dir_search_path;
80  std::string m_dump;
82 };
83 #endif /* JOBOPTIONSSVC_H_ */