CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
StreamerOutputModule.h
Go to the documentation of this file.
1 #ifndef IOPool_Streamer_StreamerOutputModule_h
2 #define IOPool_Streamer_StreamerOutputModule_h
3 
7 
8 namespace edm {
9  template <class Consumer>
11 
20  public:
21  explicit StreamerOutputModule(ParameterSet const& ps);
22  virtual ~StreamerOutputModule();
23  static void fillDescriptions(ConfigurationDescriptions& descriptions);
24 
25  private:
26  virtual void start() const;
27  virtual void stop() const;
28  virtual void doOutputHeader(InitMsgBuilder const& init_message) const;
29  virtual void doOutputEvent(EventMsgBuilder const& msg) const;
30 
31  private:
32  std::auto_ptr<Consumer> c_;
33  }; //end-of-class-def
34 
35 
36 
37  template <class Consumer>
40  c_(new Consumer(ps)) {
41  }
42 
43  template <class Consumer>
45 
46  template <class Consumer>
47  void
49  c_->start();
50  }
51 
52  template <class Consumer>
53  void
55  c_->stop();
56  }
57 
58  template <class Consumer>
59  void
61  c_->doOutputHeader(init_message);
62  }
63 
64 //______________________________________________________________________________
65  template <class Consumer>
66  void
68  c_->doOutputEvent(msg); // You can't use msg in StreamerOutputModule after this point
69  }
70 
71  template <class Consumer>
72  void
76  Consumer::fillDescription(desc);
77  descriptions.add("streamerOutput", desc);
78  }
79 } // end of namespace-edm
80 
81 #endif
82 
static void fillDescription(ParameterSetDescription &desc)
virtual void doOutputEvent(EventMsgBuilder const &msg) const
std::auto_ptr< Consumer > c_
StreamerOutputModule(ParameterSet const &ps)
static void fillDescriptions(ConfigurationDescriptions &descriptions)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
virtual void doOutputHeader(InitMsgBuilder const &init_message) const
virtual void start() const
virtual void stop() const