Belle II Software  release-05-01-25
sock2rbr.cc
1 //+
2 // File : sock2rbr.cc
3 // Description : Get an event from RingBuffer and send it to socket
4 // Reverse connection
5 //
6 // Author : Ryosuke Itoh, IPNS, KEK
7 // Date : 25 - Jul - 2013
8 //-
9 #include <string>
10 
11 #include <stdio.h>
12 #include <stdlib.h>
13 
14 #include "daq/rfarm/event/RevSock2Rb.h"
15 
16 using namespace Belle2;
17 using namespace std;
18 
19 int main(int argc, char** argv)
20 {
21  // Retrieve RingBuffer name[1], port number[2], shmname[4], and id[5]
22  if (argc < 2) {
23  printf("syntax : sock2rb rbufname src port\n");
24  exit(-1);
25  }
26 
27  string a1(argv[1]);
28  string a2(argv[2]);
29  int a3 = atoi(argv[3]);
30  string a4(argv[4]);
31  int a5 = atoi(argv[5]);
32 
33  RevSock2Rb sr(a1, a2, a3, a4, a5);
34 
35  int ncount = 0;
36  int nevt = 0;
37  for (;;) {
38  int stat = sr.ReceiveEvent();
39  // printf ( "sock2rb received : %d\n", stat );
40  if (stat < 0)
41  break;
42  else if (stat == 0) {
43  // Reconnection needed
44  int nrepeat = 5000;
45  for (;;) {
46  int rstat = sr.Reconnect(nrepeat);
47  if (rstat == -1)
48  continue;
49  else
50  break;
51  }
52  }
53  nevt++;
54  if (nevt % 5000 == 0) {
55  printf("sock2rbr : evt = %d\n", nevt);
56  }
57  }
58  exit(0);
59 }
60 
61 
62 
Belle2::RevSock2Rb
Definition: RevSock2Rb.h:24
main
int main(int argc, char **argv)
Run all tests.
Definition: test_main.cc:77
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19