00001 #ifndef FWCore_Framework_CurrentProcessingContext 00002 #define FWCore_Framework_CurrentProcessingContext 00003 00016 00017 #include <cstddef> // for size_t 00018 #include <string> 00019 00020 #include "FWCore/Framework/interface/Frameworkfwd.h" 00021 00022 namespace edm 00023 { 00024 class CurrentProcessingContext 00025 { 00026 public: 00027 00029 CurrentProcessingContext(); 00030 00033 CurrentProcessingContext(std::string const* name, 00034 int bitpos, bool isEndPth); 00035 00039 00042 std::string const* moduleLabel() const; 00043 00044 00047 std::string const* pathName() const; 00048 00051 ModuleDescription const* moduleDescription() const; 00052 00056 int pathInSchedule() const; 00057 00060 int slotInPath() const; 00061 00063 bool isEndPath() const; 00064 00066 void activate(std::size_t theSlotInPath, 00067 ModuleDescription const* mod); 00068 00070 void deactivate(); 00071 00072 private: 00073 00074 // N.B.: We own none of the pointed-to resources! 00075 int pathInSchedule_; 00076 std::size_t slotInPath_; 00077 ModuleDescription const* moduleDescription_; 00078 std::string const* pathName_; 00079 bool isEndPath_; 00080 00081 bool is_active() const { return moduleDescription_ != 0; } 00082 }; 00083 } 00084 00085 00086 #endif