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 set_sink (const std::string &sink_name)=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_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
 

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 26 of file ElinkConcept.hpp.

Constructor & Destructor Documentation

◆ ElinkConcept() [1/3]

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

Definition at line 29 of file ElinkConcept.hpp.

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

◆ ~ElinkConcept()

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

Definition at line 40 of file ElinkConcept.hpp.

40{}

◆ 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

◆ 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 55 of file ElinkConcept.hpp.

55{ 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 57 of file ElinkConcept.hpp.

58 {
59 m_card_id = card;
60 m_logical_unit = slr;
61 m_link_id = id;
62 m_link_tag = tag;
63
64 std::ostringstream lidstrs;
65 lidstrs << "Elink["
66 << "cid:" << std::to_string(m_card_id) << "|"
67 << "slr:" << std::to_string(m_logical_unit) << "|"
68 << "lid:" << std::to_string(m_link_id) << "|"
69 << "tag:" << std::to_string(m_link_tag) << "]";
70 m_elink_str = lidstrs.str();
71
72 std::ostringstream tidstrs;
73 tidstrs << "ept-" << std::to_string(m_card_id) << "-" << std::to_string(m_logical_unit);
74 m_elink_source_tid = tidstrs.str();
75
76 }

◆ set_sink()

virtual void dunedaq::flxlibs::ElinkConcept::set_sink ( const std::string & sink_name)
pure virtual

◆ 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 83 of file ElinkConcept.hpp.

◆ m_elink_source_tid

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

Definition at line 88 of file ElinkConcept.hpp.

◆ m_elink_str

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

Definition at line 87 of file ElinkConcept.hpp.

◆ m_link_id

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

Definition at line 85 of file ElinkConcept.hpp.

◆ m_link_tag

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

Definition at line 86 of file ElinkConcept.hpp.

◆ m_logical_unit

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

Definition at line 84 of file ElinkConcept.hpp.

◆ m_parser

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

Definition at line 81 of file ElinkConcept.hpp.

◆ m_parser_impl

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

Definition at line 80 of file ElinkConcept.hpp.

◆ m_t0

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

Definition at line 89 of file ElinkConcept.hpp.


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