00001 #ifndef FWCore_ParameterSet_ProcessDesc_h 00002 #define FWCore_ParameterSet_ProcessDesc_h 00003 00004 #include "boost/shared_ptr.hpp" 00005 #include <string> 00006 #include <vector> 00007 00008 namespace edm { 00009 00010 class ParameterSet; 00011 00012 class ProcessDesc { 00013 00014 public: 00015 explicit ProcessDesc(boost::shared_ptr<ParameterSet> pset); 00016 00018 explicit ProcessDesc(std::string const& config); 00019 00020 ~ProcessDesc(); 00021 00023 boost::shared_ptr<ParameterSet> getProcessPSet() const; 00024 00026 boost::shared_ptr<std::vector<ParameterSet> > getServicesPSets() const; 00027 00028 void addService(ParameterSet& pset); 00030 void addService(std::string const& service); 00032 void addDefaultService(std::string const& service); 00034 void addForcedService(std::string const& service); 00036 void addServices(std::vector<std::string> const& defaultServices, 00037 std::vector<std::string> const& forcedServices = std::vector<std::string>()); 00038 00039 std::string dump() const; 00040 private: 00041 boost::shared_ptr<ParameterSet> pset_; 00042 boost::shared_ptr<std::vector<ParameterSet> > services_; 00043 }; 00044 } 00045 00046 #endif