Belle II Software development
rawrb2sockr.cc
1/**************************************************************************
2 * basf2 (Belle II Analysis Software Framework) *
3 * Author: The Belle II Collaboration *
4 * *
5 * See git log for contributors and copyright holders. *
6 * This file is licensed under LGPL-3.0, see LICENSE.md. *
7 **************************************************************************/
8#include <string>
9
10#include <signal.h>
11
12#include "daq/rfarm/event/RawRevRb2Sock.h"
13
14using namespace Belle2;
15using namespace std;
16
17static RawRevRb2Sock* s_body = NULL;
18
19void sigint_handler(int /*signum*/)
20{
21 printf("rawrb2sockr : aborted\n");
22 delete s_body;
23 exit(-1);
24}
25
26
27int main(int argc, char** argv)
28{
29 // Retrieve RingBuffer name[1], port number[2], Shmname[3], and id[4]
30 if (argc < 5) {
31 printf("syntax : rb2sock rbufname port\n");
32 exit(-1);
33 }
34
35 signal(SIGINT, sigint_handler);
36 signal(SIGTERM, sigint_handler);
37
38 string a1(argv[1]);
39 int a2 = atoi(argv[2]);
40 string a3(argv[3]);
41 int a4 = atoi(argv[4]);
42
43 RawRevRb2Sock* rs = new RawRevRb2Sock(a1, a2, a3, a4);
44 // RawRevRb2Sock rs(a1, a2, a3, a4);
45 s_body = rs;
46
47 int nevt = 0;
48 for (;;) {
49 // int stat = rs.SendEvent();
50 int stat = rs->SendEvent();
51 // printf ( "rb2sock : sending %d\n", stat );
52 if (stat <= 0) {
53 printf("rb2sock : error in sending event. The event is lost. Reconnecting....\n");
54 // rs.Reconnect();
55 rs->Reconnect();
56 printf("rb2sock : reconnected.\n");
57 }
58 nevt++;
59 if (nevt % 5000 == 0) {
60 printf("rawrb2sockr : evt = %d\n", nevt);
61 }
62 }
63 exit(0);
64}
65
66
67
int SendEvent(void)
Event function.
int Reconnect(void)
Reconnect.
Abstract base class for different kinds of events.
STL namespace.