Orion
high-rate readout
rxcore.hpp
Go to the documentation of this file.
1 
5 #pragma once
6 
7 #include <cstdint>
8 #include <vector>
9 #include <chrono>
10 #include <set>
11 #include <functional>
12 
13 
14 #include "itk/types.hpp"
15 #include "itk/logger.hpp"
16 
17 namespace hwc {
18 
23 class RxCore {
24 public:
25 
27  virtual ~RxCore() = default;
28 
31  virtual void init_subscribe(netio_tag_t fid) = 0;
32 
35  virtual void subscribe(netio_tag_t fid) = 0;
36 
39  virtual void subscribe(const std::vector<netio_tag_t>& fids) = 0;
40 
43  virtual void unsubscribe(netio_tag_t fid) = 0;
44 
46  virtual void unsubscribe_all() = 0;
47 
48  typedef std::function<void(netio_tag_t fid, const uint8_t* data, size_t size)> OnDataCallback;
49 
52  virtual void callback_on_data(OnDataCallback on_data) = 0;
53 
56  virtual std::string get_fe_type() = 0;
57 
58 }; // RxCore
59 
60 } // hwc
Receiver Core interface.
Definition: rxcore.hpp:23
virtual void unsubscribe_all()=0
Subscribe all fids.
virtual void subscribe(netio_tag_t fid)=0
Subscribe for fid.
virtual void subscribe(const std::vector< netio_tag_t > &fids)=0
Subscribe multiple fids.
virtual void callback_on_data(OnDataCallback on_data)=0
Processing on_data event.
virtual std::string get_fe_type()=0
Get front-end type.
virtual void init_subscribe(netio_tag_t fid)=0
Initialize subscription for fid.
virtual void unsubscribe(netio_tag_t fid)=0
Unsubscribe fid.
virtual ~RxCore()=default
Default destructor.
uint16_t size
Definition: fragheader.hpp:5
Logger definitions.
Common types and constants definitions.