CMS 3D CMS Logo

TimeoutPoolOutputModule.h
Go to the documentation of this file.
1 #ifndef IOPool_Output_TimeoutPoolOutputModule_h
2 #define IOPool_Output_TimeoutPoolOutputModule_h
3 
5 //
6 // Class TimeoutPoolOutputModule. Output module to POOL file with file
7 // closure based on timeout. First file has only one event, second
8 // file is closed after 15 seconds if at least one event was processed.
9 // Then timeout is increased to 30 seconds and 60 seconds. After that
10 // all other files are closed with timeout of 60 seconds.
11 //
12 // Created by Dmytro.Kovalskyi@cern.ch
13 //
15 
17 
18 namespace edm {
20  class ModuleCallingContext;
21  class ParameterSet;
22 
24  public:
25  explicit TimeoutPoolOutputModule(ParameterSet const& ps);
27  TimeoutPoolOutputModule(TimeoutPoolOutputModule const&) = delete; // Disallow copying and moving
28  TimeoutPoolOutputModule& operator=(TimeoutPoolOutputModule const&) = delete; // Disallow copying and moving
29 
30  static void fillDescriptions(ConfigurationDescriptions& descriptions);
31 
32  protected:
33  virtual bool shouldWeCloseFile() const override;
34  virtual void write(EventForOutput const& e) override;
35 
36  private:
37  mutable time_t m_lastEvent;
38  mutable unsigned int eventsWrittenInCurrentFile;
39  mutable int m_timeout;
40  };
41 }
42 
43 #endif
static void fillDescriptions(ConfigurationDescriptions &descriptions)
virtual bool shouldWeCloseFile() const override
allow inheriting classes to override but still be able to call this method in the overridden version ...
virtual void write(EventForOutput const &e) override
TimeoutPoolOutputModule(ParameterSet const &ps)
HLT enums.
TimeoutPoolOutputModule & operator=(TimeoutPoolOutputModule const &)=delete