CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
ParentContext.h
Go to the documentation of this file.
1 #ifndef FWCore_ServiceRegistry_ParentContext_h
2 #define FWCore_ServiceRegistry_ParentContext_h
3 
13 //
14 // Original Author: W. David Dagenhart
15 // Created: 7/11/2013
16 
17 #include <iosfwd>
18 
19 namespace edm {
20 
21  class GlobalContext;
22  class InternalContext;
23  class ModuleCallingContext;
24  class PlaceInPathContext;
25  class StreamContext;
26 
27  class ParentContext {
28  public:
29 
30  enum class Type {
31  kGlobal,
32  kInternal,
33  kModule,
35  kStream,
36  kInvalid
37  };
38 
39  ParentContext();
45 
46  Type type() const { return type_; }
47 
48  GlobalContext const* globalContext() const;
49  InternalContext const* internalContext() const;
52  StreamContext const* streamContext() const;
53 
54  private:
56 
57  union Parent {
59  InternalContext const* internal;
63  } parent_;
64  };
65 
66  std::ostream& operator<<(std::ostream&, ParentContext const&);
67 }
68 #endif
Type type() const
Definition: ParentContext.h:46
ModuleCallingContext const * module
Definition: ParentContext.h:60
union edm::ParentContext::Parent parent_
StreamContext const * stream
Definition: ParentContext.h:62
ModuleCallingContext const * moduleCallingContext() const
PlaceInPathContext const * placeInPathContext() const
PlaceInPathContext const * placeInPath
Definition: ParentContext.h:61
InternalContext const * internalContext() const
StreamContext const * streamContext() const
std::ostream & operator<<(std::ostream &ost, const HLTGlobalStatus &hlt)
Formatted printout of trigger tbale.
GlobalContext const * globalContext() const
GlobalContext const * global
Definition: ParentContext.h:58