ctp3-mon  0.3.0
 All Classes Functions Variables Pages
ctp3-dim-redirector.cpp
1 #include "Ctp3DimInfoData.h"
2 #include <czmq.h>
3 #include <vector>
4 int main(int argc, char **argv) {
5  // std::string group = "MONBUSY";
6 
7  std::vector<std::string> group_list;
8  group_list.push_back("MONBUSY");
9  group_list.push_back("TESTPARAM");
10  std::vector<std::string> det_list;
11  det_list.push_back("tpc");
12  det_list.push_back("trd");
13  det_list.push_back("zdc");
14  det_list.push_back("emcal");
15  det_list.push_back("pmd");
16  det_list.push_back("acorde");
17  det_list.push_back("sdd");
18  det_list.push_back("muon_trk");
19  det_list.push_back("muon_trg");
20  det_list.push_back("daq");
21  det_list.push_back("ssd");
22  det_list.push_back("fmd");
23  det_list.push_back("t0");
24  det_list.push_back("hmpid");
25  det_list.push_back("phos");
26  det_list.push_back("cpv");
27  det_list.push_back("as");
28  det_list.push_back("spd");
29  det_list.push_back("tof");
30  det_list.push_back("v0");
31 
32  auto console = spdlog::stdout_logger_mt("console");
33 
34  if (argc < 2)
35  return 1;
36 
37  zsock_t *pub = zsock_new_pub("@tcp://*:5001");
38  assert(pub);
39 
40  std::vector<Ctp3DimInfoData *> v;
41  if (!strcmp(argv[1], "all")) {
42  for (auto g : group_list)
43  for (auto d : det_list) {
44  console->info("Adding Ctp3DimInfoData service {}/{}", d, g);
45  v.push_back(new Ctp3DimInfoData(d, g, pub));
46  }
47  } else {
48  for (int i = 1; i < argc; ++i) {
49  for (auto g : group_list)
50  v.push_back(new Ctp3DimInfoData(argv[i], g, pub));
51  }
52  }
53 
54  zpoller_t *poller = zpoller_new(NULL);
55  while (!zsys_interrupted) {
56  void *p = zpoller_wait(poller, -1);
57  if (!p)
58  break;
59  }
60 
61  zsock_destroy(&pub);
62 
63  // cleanup
64  for (auto d : v) {
65  delete d;
66  }
67  return 0;
68 }
Ctp3 dim info object class.