ToyProductFilterAsync_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 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<std::string> inputLabel{fhicl::Name{"inputLabel"}};
40  };
42  explicit ToyProductFilterAsync(Parameters const& p, ProcessingFrame const&);
43 
44  private:
45  bool filter(Event& e, ProcessingFrame const&) override;
46 
47  string const inputLabel_{};
48  };
49 
50  ToyProductFilterAsync::ToyProductFilterAsync(Parameters const& pset,
51  ProcessingFrame const&)
52  : SharedFilter{pset}, inputLabel_{pset().inputLabel()}
53  {
54  async<InEvent>();
55  }
56 
57  bool
59  {
60  double val = 0.0;
61  use_cpu_time(val);
62  return true;
63  }
64 
65 } // namespace arttest
66 
STL namespace.
bool filter(Event &e, ProcessingFrame const &) override
const double e
#define DEFINE_ART_MODULE(klass)
Definition: ModuleMacros.h:68
p
Definition: test.py:228