DUNE-DAQ
DUNE Trigger and Data Acquisition software
|
#include <ElinkModel.hpp>
Public Types | |
using | sink_t = iomanager::SenderConcept<TargetPayloadType> |
using | err_sink_t = iomanager::SenderConcept<felix::packetformat::chunk> |
using | inherited = ElinkConcept |
using | data_t = nlohmann::json |
![]() | |
using | NodePtr = std::weak_ptr<MonitorableObject> |
using | NewNodePtr = std::shared_ptr<MonitorableObject> |
using | ElementId = std::string |
Public Member Functions | |
ElinkModel () | |
ElinkModel Constructor. | |
~ElinkModel () | |
void | set_sink (const std::string &sink_name) override |
std::shared_ptr< sink_t > & | get_sink () |
std::shared_ptr< err_sink_t > & | get_error_sink () |
void | init (const size_t block_queue_capacity) |
void | conf (size_t block_size, bool is_32b_trailers) |
void | start () |
void | stop () |
void | set_running (bool should_run) |
bool | queue_in_block_address (uint64_t block_addr) |
![]() | |
ElinkConcept () | |
virtual | ~ElinkConcept () |
ElinkConcept (const ElinkConcept &)=delete | |
ElinkConcept is not copy-constructible. | |
ElinkConcept & | operator= (const ElinkConcept &)=delete |
ElinkConcept is not copy-assginable. | |
ElinkConcept (ElinkConcept &&)=delete | |
ElinkConcept is not move-constructible. | |
ElinkConcept & | operator= (ElinkConcept &&)=delete |
ElinkConcept is not move-assignable. | |
DefaultParserImpl & | get_parser () |
void | set_ids (int card, int slr, int id, int tag) |
![]() | |
MonitorableObject (const MonitorableObject &)=delete | |
MonitorableObject & | operator= (const MonitorableObject &)=delete |
MonitorableObject (MonitorableObject &&)=delete | |
MonitorableObject & | operator= (MonitorableObject &&)=delete |
virtual | ~MonitorableObject ()=default |
auto | get_opmon_id () const noexcept |
auto | get_opmon_level () const noexcept |
Protected Member Functions | |
void | generate_opmon_data () override |
![]() | |
MonitorableObject ()=default | |
void | register_node (ElementId name, NewNodePtr) |
void | publish (google::protobuf::Message &&, CustomOrigin &&co={}, OpMonLevel l=to_level(EntryOpMonLevel::kDefault)) const noexcept |
Private Types | |
using | UniqueBlockAddrQueue = std::unique_ptr<folly::ProducerConsumerQueue<uint64_t>> |
Private Member Functions | |
void | process_elink () |
Private Attributes | |
std::atomic< bool > | m_run_marker |
bool | m_configured { false } |
bool | m_sink_is_set { false } |
std::shared_ptr< sink_t > | m_sink_queue |
std::shared_ptr< err_sink_t > | m_error_sink_queue |
UniqueBlockAddrQueue | m_block_addr_queue |
utilities::ReusableThread | m_parser_thread |
Static Private Attributes | |
static const std::string | m_parser_thread_name = "elinkp" |
Additional Inherited Members | |
![]() | |
static bool | publishable_metric (OpMonLevel entry, OpMonLevel system) noexcept |
![]() | |
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 |
Definition at line 34 of file ElinkModel.hpp.
using dunedaq::flxlibs::ElinkModel< TargetPayloadType >::data_t = nlohmann::json |
Definition at line 40 of file ElinkModel.hpp.
using dunedaq::flxlibs::ElinkModel< TargetPayloadType >::err_sink_t = iomanager::SenderConcept<felix::packetformat::chunk> |
Definition at line 38 of file ElinkModel.hpp.
using dunedaq::flxlibs::ElinkModel< TargetPayloadType >::inherited = ElinkConcept |
Definition at line 39 of file ElinkModel.hpp.
using dunedaq::flxlibs::ElinkModel< TargetPayloadType >::sink_t = iomanager::SenderConcept<TargetPayloadType> |
Definition at line 37 of file ElinkModel.hpp.
|
private |
Definition at line 177 of file ElinkModel.hpp.
|
inline |
ElinkModel Constructor.
name | Instance name for this ElinkModel instance |
Definition at line 46 of file ElinkModel.hpp.
|
inline |
Definition at line 51 of file ElinkModel.hpp.
|
inlinevirtual |
Implements dunedaq::flxlibs::ElinkConcept.
Definition at line 72 of file ElinkModel.hpp.
|
inlineoverrideprotectedvirtual |
Hook for customisable pubblication. The function can throw, exception will be caught by the monitoring thread
Reimplemented from dunedaq::opmonlib::MonitorableObject.
Definition at line 128 of file ElinkModel.hpp.
|
inline |
Definition at line 65 of file ElinkModel.hpp.
|
inline |
Definition at line 63 of file ElinkModel.hpp.
|
inlinevirtual |
Implements dunedaq::flxlibs::ElinkConcept.
Definition at line 67 of file ElinkModel.hpp.
|
inlineprivate |
Definition at line 194 of file ElinkModel.hpp.
|
inlinevirtual |
Implements dunedaq::flxlibs::ElinkConcept.
Definition at line 117 of file ElinkModel.hpp.
|
inline |
Definition at line 111 of file ElinkModel.hpp.
|
inlineoverridevirtual |
Implements dunedaq::flxlibs::ElinkConcept.
Definition at line 53 of file ElinkModel.hpp.
|
inlinevirtual |
Implements dunedaq::flxlibs::ElinkConcept.
Definition at line 86 of file ElinkModel.hpp.
|
inlinevirtual |
Implements dunedaq::flxlibs::ElinkConcept.
Definition at line 98 of file ElinkModel.hpp.
|
private |
Definition at line 189 of file ElinkModel.hpp.
|
private |
Definition at line 181 of file ElinkModel.hpp.
|
private |
Definition at line 186 of file ElinkModel.hpp.
|
private |
Definition at line 193 of file ElinkModel.hpp.
|
inlinestaticprivate |
Definition at line 192 of file ElinkModel.hpp.
|
private |
Definition at line 180 of file ElinkModel.hpp.
|
private |
Definition at line 184 of file ElinkModel.hpp.
|
private |
Definition at line 185 of file ElinkModel.hpp.