BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
BmnDataReceiver.h
Go to the documentation of this file.
1
/*
2
* To change this license header, choose License Headers in Project Properties.
3
* To change this template file, choose Tools | Templates
4
* and open the template in the editor.
5
*/
6
7
/*
8
* File: BmnDataReceiver.h
9
* Author: ilnur
10
*
11
* Created on October 18, 2016, 5:22 PM
12
*/
13
14
#ifndef BMNDATARECEIVER_H
15
#define BMNDATARECEIVER_H 1
16
#include <BmnMath.h>
17
#include <
TNamed.h
>
18
#include <deque>
19
#include <stdlib.h>
20
21
#define PNP_DISCOVER_PORT 33304
22
#define PNP_DISCOVER_IP_ADDR "239.192.1.2"
23
#define INPUT_IFACE "eno1"
24
#define MAX_BUF_LEN 128 * 1024 * 1024
25
#define MAX_ADDR_LEN 255
26
#define MAX_PORT_LEN 7
27
#define MSG_TIMEOUT 400000
28
#define CONN_TIMEOUT 3000000
29
30
using namespace
std
;
31
32
class
BmnDataReceiver
:
public
TNamed
33
{
34
public
:
35
BmnDataReceiver
();
36
virtual
~BmnDataReceiver
();
37
38
Int_t
ConnectRaw
();
39
Int_t
Connect
();
40
Int_t
SendHello
();
41
Int_t
InitRecvStream
();
42
void
FreeRecvStream
();
43
Int_t
IterRecvStream
();
44
Int_t
RecvData
();
45
46
void
SetDataQueue
(deque<UInt_t>
v
) { this->
data_queue
=
v
; }
47
48
deque<UInt_t>*
GetDataQueue
() {
return
&
data_queue
; }
49
50
// void *GetQueMutex(){ return _deque_mutex;}
51
// void SetQueMutex(void *v){_deque_mutex = v;}
52
53
private
:
54
// zmq::context_t _ctx;
55
// zmq::socket_t _socket_mcast;
56
struct
serverIface
57
{
58
Bool_t
enabled
;
59
Bool_t
isFree
;
60
Int_t
id;
61
UShort_t
port
;
62
Char_t
type[
MAX_ADDR_LEN
];
63
};
64
struct
serverInfo
65
{
66
Char_t
hostName
[
MAX_ADDR_LEN
];
67
Char_t
index
[
MAX_ADDR_LEN
];
68
Char_t
name
[
MAX_ADDR_LEN
];
69
Char_t
type
[
MAX_ADDR_LEN
];
70
vector<serverIface>
interfaces
;
71
};
72
73
deque<UInt_t>
data_queue
;
74
void
*
_ctx
;
75
void
*
_socket_mcast
;
76
void
*
_socket_data
;
77
Int_t
_sfd
;
78
struct
serverInfo
_dataServer
;
79
struct
addrinfo*
dataAddrInfo
;
80
Bool_t
isListening
;
81
Bool_t
isAddr
=
kFALSE
;
82
// void *_deque_mutex; // actually std::mutex
83
// static void HandleSignal(int signal);
84
void
InitSocks
();
85
void
DeinitSocks
();
86
static
Int_t
ParsePNPMsg
(
char
* msgStr,
serverInfo
* sInfo);
87
88
ClassDef
(
BmnDataReceiver
, 1)
89
};
90
91
#endif
/* BMNDATARECEIVER_H */
v
__m128 v
Definition
P4_F32vec4.h:1
Bool_t
bool Bool_t
UShort_t
unsigned short UShort_t
Int_t
int Int_t
Char_t
char Char_t
kFALSE
constexpr Bool_t kFALSE
ClassDef
#define ClassDef(name, id)
TNamed.h
BmnDataReceiver
Definition
BmnDataReceiver.h:33
BmnDataReceiver::InitSocks
void InitSocks()
BmnDataReceiver::ConnectRaw
Int_t ConnectRaw()
BmnDataReceiver::_socket_mcast
void * _socket_mcast
Definition
BmnDataReceiver.h:75
BmnDataReceiver::isAddr
Bool_t isAddr
Definition
BmnDataReceiver.h:81
BmnDataReceiver::SendHello
Int_t SendHello()
BmnDataReceiver::_sfd
Int_t _sfd
Definition
BmnDataReceiver.h:77
BmnDataReceiver::FreeRecvStream
void FreeRecvStream()
BmnDataReceiver::ParsePNPMsg
static Int_t ParsePNPMsg(char *msgStr, serverInfo *sInfo)
BmnDataReceiver::_dataServer
struct serverInfo _dataServer
Definition
BmnDataReceiver.h:78
BmnDataReceiver::IterRecvStream
Int_t IterRecvStream()
BmnDataReceiver::DeinitSocks
void DeinitSocks()
BmnDataReceiver::InitRecvStream
Int_t InitRecvStream()
BmnDataReceiver::isListening
Bool_t isListening
Definition
BmnDataReceiver.h:80
BmnDataReceiver::_ctx
void * _ctx
Definition
BmnDataReceiver.h:74
BmnDataReceiver::SetDataQueue
void SetDataQueue(deque< UInt_t > v)
Definition
BmnDataReceiver.h:46
BmnDataReceiver::GetDataQueue
deque< UInt_t > * GetDataQueue()
Definition
BmnDataReceiver.h:48
BmnDataReceiver::~BmnDataReceiver
virtual ~BmnDataReceiver()
BmnDataReceiver::RecvData
Int_t RecvData()
BmnDataReceiver::_socket_data
void * _socket_data
Definition
BmnDataReceiver.h:76
BmnDataReceiver::dataAddrInfo
struct addrinfo * dataAddrInfo
Definition
BmnDataReceiver.h:79
BmnDataReceiver::BmnDataReceiver
BmnDataReceiver()
BmnDataReceiver::Connect
Int_t Connect()
BmnDataReceiver::data_queue
deque< UInt_t > data_queue
Definition
BmnDataReceiver.h:73
TNamed
MAX_ADDR_LEN
#define MAX_ADDR_LEN
Definition
BmnDataReceiver.h:25
MAX_ADDR_LEN
#define MAX_ADDR_LEN
Definition
BmnDataReceiver.h:25
std
Definition
json.hpp:4446
BmnDataReceiver::serverIface::isFree
Bool_t isFree
Definition
BmnDataReceiver.h:59
BmnDataReceiver::serverIface::port
UShort_t port
Definition
BmnDataReceiver.h:61
BmnDataReceiver::serverIface::enabled
Bool_t enabled
Definition
BmnDataReceiver.h:58
BmnDataReceiver::serverInfo
Definition
BmnDataReceiver.h:65
BmnDataReceiver::serverInfo::index
Char_t index[MAX_ADDR_LEN]
Definition
BmnDataReceiver.h:67
BmnDataReceiver::serverInfo::hostName
Char_t hostName[MAX_ADDR_LEN]
Definition
BmnDataReceiver.h:66
BmnDataReceiver::serverInfo::interfaces
vector< serverIface > interfaces
Definition
BmnDataReceiver.h:70
BmnDataReceiver::serverInfo::name
Char_t name[MAX_ADDR_LEN]
Definition
BmnDataReceiver.h:68
BmnDataReceiver::serverInfo::type
Char_t type[MAX_ADDR_LEN]
Definition
BmnDataReceiver.h:69
monitor
BmnDataReceiver.h
Generated on
for BmnRoot by
1.17.0