DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
dunedaq::flxlibs::ElinkConcept Class Referenceabstract

#include <ElinkConcept.hpp>

Inheritance diagram for dunedaq::flxlibs::ElinkConcept:
[legend]
Collaboration diagram for dunedaq::flxlibs::ElinkConcept:
[legend]

Public Member Functions

 ElinkConcept ()
 
virtual ~ElinkConcept ()
 
 ElinkConcept (const ElinkConcept &)=delete
 ElinkConcept is not copy-constructible.
 
ElinkConceptoperator= (const ElinkConcept &)=delete
 ElinkConcept is not copy-assginable.
 
 ElinkConcept (ElinkConcept &&)=delete
 ElinkConcept is not move-constructible.
 
ElinkConceptoperator= (ElinkConcept &&)=delete
 ElinkConcept is not move-assignable.
 
virtual void init (const size_t block_queue_capacity)=0
 
virtual void acquire_callback ()=0
 
virtual void conf (size_t block_size, bool is_32b_trailers)=0
 
virtual void start ()=0
 
virtual void stop ()=0
 
virtual bool queue_in_block_address (uint64_t block_addr)=0
 
DefaultParserImplget_parser ()
 
void set_sink_config (const appmodel::DataMoveCallbackConf *sink_conf)
 
void set_ids (int card, int slr, int id, int tag)
 
- Public Member Functions inherited from dunedaq::opmonlib::MonitorableObject
 MonitorableObject (const MonitorableObject &)=delete
 
MonitorableObjectoperator= (const MonitorableObject &)=delete
 
 MonitorableObject (MonitorableObject &&)=delete
 
MonitorableObjectoperator= (MonitorableObject &&)=delete
 
virtual ~MonitorableObject ()=default
 
auto get_opmon_id () const noexcept
 
auto get_opmon_level () const noexcept
 

Public Attributes

const appmodel::DataMoveCallbackConfm_sink_conf
 

Protected Attributes

DefaultParserImpl m_parser_impl
 
std::unique_ptr< felix::packetformat::BlockParser< DefaultParserImpl > > m_parser
 
int m_card_id
 
int m_logical_unit
 
int m_link_id
 
int m_link_tag
 
std::string m_elink_str
 
std::string m_elink_source_tid
 
std::chrono::time_point< std::chrono::high_resolution_clock > m_t0
 

Additional Inherited Members

- Public Types inherited from dunedaq::opmonlib::MonitorableObject
using NodePtr = std::weak_ptr<MonitorableObject>
 
using NewNodePtr = std::shared_ptr<MonitorableObject>
 
using ElementId = std::string
 
- Static Public Member Functions inherited from dunedaq::opmonlib::MonitorableObject
static bool publishable_metric (OpMonLevel entry, OpMonLevel system) noexcept
 
- Protected Member Functions inherited from dunedaq::opmonlib::MonitorableObject
 MonitorableObject ()=default
 
void register_node (ElementId name, NewNodePtr)
 
void publish (google::protobuf::Message &&, CustomOrigin &&co={}, OpMonLevel l=to_level(EntryOpMonLevel::kDefault)) const noexcept
 
virtual void generate_opmon_data ()
 

Detailed Description

Definition at line 27 of file ElinkConcept.hpp.

Constructor & Destructor Documentation

◆ ElinkConcept() [1/3]

dunedaq::flxlibs::ElinkConcept::ElinkConcept ( )
inline

Definition at line 30 of file ElinkConcept.hpp.

32 , m_card_id(0)
34 , m_link_id(0)
35 , m_link_tag(0)
36 , m_elink_str("")
38 {
39 m_parser = std::make_unique<felix::packetformat::BlockParser<DefaultParserImpl>>(m_parser_impl);
40 }
std::unique_ptr< felix::packetformat::BlockParser< DefaultParserImpl > > m_parser

◆ ~ElinkConcept()

virtual dunedaq::flxlibs::ElinkConcept::~ElinkConcept ( )
inlinevirtual

Definition at line 41 of file ElinkConcept.hpp.

41{}

◆ ElinkConcept() [2/3]

dunedaq::flxlibs::ElinkConcept::ElinkConcept ( const ElinkConcept & )
delete

ElinkConcept is not copy-constructible.

◆ ElinkConcept() [3/3]

dunedaq::flxlibs::ElinkConcept::ElinkConcept ( ElinkConcept && )
delete

ElinkConcept is not move-constructible.

Member Function Documentation

◆ acquire_callback()

virtual void dunedaq::flxlibs::ElinkConcept::acquire_callback ( )
pure virtual

◆ conf()

virtual void dunedaq::flxlibs::ElinkConcept::conf ( size_t block_size,
bool is_32b_trailers )
pure virtual

◆ get_parser()

DefaultParserImpl & dunedaq::flxlibs::ElinkConcept::get_parser ( )
inline

Definition at line 57 of file ElinkConcept.hpp.

57{ return std::ref(m_parser_impl); }

◆ init()

virtual void dunedaq::flxlibs::ElinkConcept::init ( const size_t block_queue_capacity)
pure virtual

◆ operator=() [1/2]

ElinkConcept & dunedaq::flxlibs::ElinkConcept::operator= ( const ElinkConcept & )
delete

ElinkConcept is not copy-assginable.

◆ operator=() [2/2]

ElinkConcept & dunedaq::flxlibs::ElinkConcept::operator= ( ElinkConcept && )
delete

ElinkConcept is not move-assignable.

◆ queue_in_block_address()

virtual bool dunedaq::flxlibs::ElinkConcept::queue_in_block_address ( uint64_t block_addr)
pure virtual

◆ set_ids()

void dunedaq::flxlibs::ElinkConcept::set_ids ( int card,
int slr,
int id,
int tag )
inline

Definition at line 64 of file ElinkConcept.hpp.

65 {
66 m_card_id = card;
67 m_logical_unit = slr;
68 m_link_id = id;
69 m_link_tag = tag;
70
71 std::ostringstream lidstrs;
72 lidstrs << "Elink["
73 << "cid:" << std::to_string(m_card_id) << "|"
74 << "slr:" << std::to_string(m_logical_unit) << "|"
75 << "lid:" << std::to_string(m_link_id) << "|"
76 << "tag:" << std::to_string(m_link_tag) << "]";
77 m_elink_str = lidstrs.str();
78
79 std::ostringstream tidstrs;
80 tidstrs << "ept-" << std::to_string(m_card_id) << "-" << std::to_string(m_logical_unit);
81 m_elink_source_tid = tidstrs.str();
82
83 }

◆ set_sink_config()

void dunedaq::flxlibs::ElinkConcept::set_sink_config ( const appmodel::DataMoveCallbackConf * sink_conf)
inline

Definition at line 59 of file ElinkConcept.hpp.

60 {
61 m_sink_conf = sink_conf;
62 }
const appmodel::DataMoveCallbackConf * m_sink_conf

◆ start()

virtual void dunedaq::flxlibs::ElinkConcept::start ( )
pure virtual

◆ stop()

virtual void dunedaq::flxlibs::ElinkConcept::stop ( )
pure virtual

Member Data Documentation

◆ m_card_id

int dunedaq::flxlibs::ElinkConcept::m_card_id
protected

Definition at line 92 of file ElinkConcept.hpp.

◆ m_elink_source_tid

std::string dunedaq::flxlibs::ElinkConcept::m_elink_source_tid
protected

Definition at line 97 of file ElinkConcept.hpp.

◆ m_elink_str

std::string dunedaq::flxlibs::ElinkConcept::m_elink_str
protected

Definition at line 96 of file ElinkConcept.hpp.

◆ m_link_id

int dunedaq::flxlibs::ElinkConcept::m_link_id
protected

Definition at line 94 of file ElinkConcept.hpp.

◆ m_link_tag

int dunedaq::flxlibs::ElinkConcept::m_link_tag
protected

Definition at line 95 of file ElinkConcept.hpp.

◆ m_logical_unit

int dunedaq::flxlibs::ElinkConcept::m_logical_unit
protected

Definition at line 93 of file ElinkConcept.hpp.

◆ m_parser

std::unique_ptr<felix::packetformat::BlockParser<DefaultParserImpl> > dunedaq::flxlibs::ElinkConcept::m_parser
protected

Definition at line 90 of file ElinkConcept.hpp.

◆ m_parser_impl

DefaultParserImpl dunedaq::flxlibs::ElinkConcept::m_parser_impl
protected

Definition at line 89 of file ElinkConcept.hpp.

◆ m_sink_conf

const appmodel::DataMoveCallbackConf* dunedaq::flxlibs::ElinkConcept::m_sink_conf

Definition at line 85 of file ElinkConcept.hpp.

◆ m_t0

std::chrono::time_point<std::chrono::high_resolution_clock> dunedaq::flxlibs::ElinkConcept::m_t0
protected

Definition at line 98 of file ElinkConcept.hpp.


The documentation for this class was generated from the following file: