00001 #ifndef FWCore_ParameterSet_PythonService_h 00002 #define FWCore_ParameterSet_PythonService_h 00003 // -*- C++ -*- 00004 // 00005 // Package: Python 00006 // Class : PythonService 00007 // 00016 // 00017 // Original Author: Benedikt Hegner 00018 // Created: Sun Jul 23 11:31:33 CEST 2006 00019 // 00020 00021 #include "FWCore/PythonParameterSet/interface/BoostPython.h" 00022 #include "FWCore/ServiceRegistry/interface/ActivityRegistry.h" 00023 00024 // subpackage specific includes 00025 #include "FWCore/Python/src/EventWrapper.h" 00026 #include "FWCore/Python/src/PythonManager.h" 00027 00028 namespace edm { 00029 class ConfigurationDescriptions; 00030 } 00031 00032 class PythonService { 00033 public: 00034 PythonService(const edm::ParameterSet&,edm::ActivityRegistry&); 00035 ~PythonService(); 00036 void postBeginJob(); 00037 void postEndJob(); 00038 void preProcessEvent(const edm::EventID&, const edm::Timestamp&); 00039 void postProcessEvent(const edm::Event&, const edm::EventSetup&); 00040 00041 static void fillDescriptions(edm::ConfigurationDescriptions & descriptions); 00042 00043 private: 00044 PythonManagerHandle handle_; 00045 boost::python::object service_; 00046 std::string fileName_; 00047 std::string command_; 00048 00049 00050 }; 00051 00052 #endif // FWCore_ParameterSet_PythonService_h