ToyProductFilterReplicated_module.cc
Go to the documentation of this file.
1 // vim: set sw=2 expandtab :
8 
9 #include <iostream>
10 #include <sstream>
11 #include <string>
12 
13 using namespace art;
14 using namespace std;
15 
16 namespace {
17 
18  double
19  f(int const val)
20  {
21  return sqrt(val);
22  }
23 
24  void
25  use_cpu_time(double& val)
26  {
27  for (int i = 0; i < 100'000'000; ++i) {
28  val = f(i);
29  }
30  }
31 
32 } // unnamed namespace
33 
34 namespace arttest {
35 
37  public:
38  struct Config {
39  fhicl::Atom<bool> outputModuleConfigured{
40  fhicl::Name{"outputModuleConfigured"}};
41  };
43  explicit ToyProductFilterReplicated(Parameters const& p,
44  ProcessingFrame const&);
46 
47  private:
48  void beginJob(ProcessingFrame const&) override;
49  void respondToOpenInputFile(FileBlock const&,
50  ProcessingFrame const&) override;
51  void respondToCloseInputFile(FileBlock const&,
52  ProcessingFrame const&) override;
53  void respondToOpenOutputFiles(FileBlock const&,
54  ProcessingFrame const&) override;
55  void respondToCloseOutputFiles(FileBlock const&,
56  ProcessingFrame const&) override;
57  void beginRun(Run const&, ProcessingFrame const&) override;
58  void beginSubRun(SubRun const&, ProcessingFrame const&) override;
59  bool filter(Event&, ProcessingFrame const&) override;
60  void endSubRun(SubRun const&, ProcessingFrame const&) override;
61  void endRun(Run const&, ProcessingFrame const&) override;
62  void endJob(ProcessingFrame const&) override;
63 
65  bool beginJobCalled_{false};
66  bool respondToOpenInputFileCalled_{false};
67  bool respondToCloseInputFileCalled_{false};
68  bool respondToOpenOutputFilesCalled_{false};
69  bool respondToCloseOutputFilesCalled_{false};
70  bool beginRunCalled_{false};
71  bool beginSubRunCalled_{false};
72  bool endSubRunCalled_{false};
73  bool endRunCalled_{false};
74  bool endJobCalled_{false};
75  };
76 
77  ToyProductFilterReplicated::ToyProductFilterReplicated(
78  Parameters const& p,
79  ProcessingFrame const& frame)
80  : ReplicatedFilter{p, frame}
81  , outputModuleConfigured_{p().outputModuleConfigured()}
82  {}
83 
85  {
86  assert(beginJobCalled_);
91  assert(beginRunCalled_);
92  assert(beginSubRunCalled_);
93  assert(endSubRunCalled_);
94  assert(endRunCalled_);
95  assert(endJobCalled_);
96  }
97 
98  void
100  {
101  beginJobCalled_ = true;
102  }
103 
104  void
106  ProcessingFrame const&)
107  {
109  }
110 
111  void
113  ProcessingFrame const&)
114  {
116  }
117 
118  void
120  ProcessingFrame const&)
121  {
123  }
124 
125  void
127  ProcessingFrame const&)
128  {
130  }
131 
132  void
134  {
135  beginRunCalled_ = true;
136  }
137 
138  void
140  {
141  beginSubRunCalled_ = true;
142  }
143 
144  bool
146  {
147  double val = 0.0;
148  use_cpu_time(val);
149  return true;
150  }
151 
152  void
154  {
155  endSubRunCalled_ = true;
156  }
157 
158  void
160  {
161  endRunCalled_ = true;
162  }
163 
164  void
166  {
167  endJobCalled_ = true;
168  }
169 
170 } // namespace arttest
171 
void respondToOpenOutputFiles(FileBlock const &, ProcessingFrame const &) override
STL namespace.
void respondToCloseInputFile(FileBlock const &, ProcessingFrame const &) override
void beginJob(ProcessingFrame const &) override
Definition: Run.h:21
#define DEFINE_ART_MODULE(klass)
Definition: ModuleMacros.h:68
void beginJob()
Definition: Breakpoints.cc:14
void respondToCloseOutputFiles(FileBlock const &, ProcessingFrame const &) override
void respondToOpenInputFile(FileBlock const &, ProcessingFrame const &) override
void beginRun(Run const &, ProcessingFrame const &) override
void endJob(ProcessingFrame const &) override
void endSubRun(SubRun const &, ProcessingFrame const &) override
p
Definition: test.py:228
void beginSubRun(SubRun const &, ProcessingFrame const &) override
bool filter(Event &, ProcessingFrame const &) override
void endRun(Run const &, ProcessingFrame const &) override