DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
dunedaq::fdreadoutlibs::DAPHNEListRequestHandler Class Reference

#include <DAPHNEListRequestHandler.hpp>

Inheritance diagram for dunedaq::fdreadoutlibs::DAPHNEListRequestHandler:
[legend]
Collaboration diagram for dunedaq::fdreadoutlibs::DAPHNEListRequestHandler:
[legend]

Public Types

using inherited
using SkipListAcc = typename folly::ConcurrentSkipList<types::DAPHNESuperChunkTypeAdapter>::Accessor
using SkipListSkip = typename folly::ConcurrentSkipList<types::DAPHNESuperChunkTypeAdapter>::Skipper
Public Types inherited from dunedaq::datahandlinglibs::DefaultRequestHandlerModel< types::DAPHNESuperChunkTypeAdapter, datahandlinglibs::SkipListLatencyBufferModel< types::DAPHNESuperChunkTypeAdapter > >
using RDT
using LBT
using RequestResult
using ResultCode
Public Types inherited from dunedaq::opmonlib::MonitorableObject
using NodePtr = std::weak_ptr<MonitorableObject>
using NewNodePtr = std::shared_ptr<MonitorableObject>
using ElementId = std::string

Public Member Functions

 DAPHNEListRequestHandler (std::shared_ptr< datahandlinglibs::SkipListLatencyBufferModel< types::DAPHNESuperChunkTypeAdapter > > &latency_buffer, std::unique_ptr< datahandlinglibs::FrameErrorRegistry > &error_registry)
Public Member Functions inherited from dunedaq::datahandlinglibs::DefaultRequestHandlerModel< types::DAPHNESuperChunkTypeAdapter, datahandlinglibs::SkipListLatencyBufferModel< types::DAPHNESuperChunkTypeAdapter > >
 DefaultRequestHandlerModel (std::shared_ptr< datahandlinglibs::SkipListLatencyBufferModel< types::DAPHNESuperChunkTypeAdapter > > &latency_buffer, std::unique_ptr< FrameErrorRegistry > &error_registry)
void conf (const dunedaq::appmodel::DataHandlerModule *)
void scrap (const appfwk::DAQModule::CommandData_t &) override
void start (const appfwk::DAQModule::CommandData_t &)
void stop (const appfwk::DAQModule::CommandData_t &)
void record (const appfwk::DAQModule::CommandData_t &args) override
void cleanup_check () override
 Check if cleanup is necessary and execute it if necessary.
virtual void periodic_data_transmission () override
 Periodic data transmission - relevant for trigger in particular.
void issue_request (dfmessages::DataRequest datarequest, bool is_retry=false) override
 Issue a data request to the request handler.
virtual dunedaq::daqdataformats::timestamp_t get_cutoff_timestamp ()
virtual bool supports_cutoff_timestamp ()
void reset_oldest_time ()
std::uint64_t get_oldest_time () override
 Get oldest timestamp in the buffer.
Public Member Functions inherited from dunedaq::datahandlinglibs::RequestHandlerConcept< ReadoutType, LatencyBufferType >
 RequestHandlerConcept ()
virtual ~RequestHandlerConcept ()
 RequestHandlerConcept (const RequestHandlerConcept &)=delete
 RequestHandlerConcept is not copy-constructible.
RequestHandlerConceptoperator= (const RequestHandlerConcept &)=delete
 RequestHandlerConcept is not copy-assginable.
 RequestHandlerConcept (RequestHandlerConcept &&)=delete
 RequestHandlerConcept is not move-constructible.
RequestHandlerConceptoperator= (RequestHandlerConcept &&)=delete
 RequestHandlerConcept is not move-assignable.
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 Member Functions

void cleanup () override
void daphne_cleanup_request ()
Protected Member Functions inherited from dunedaq::datahandlinglibs::DefaultRequestHandlerModel< types::DAPHNESuperChunkTypeAdapter, datahandlinglibs::SkipListLatencyBufferModel< types::DAPHNESuperChunkTypeAdapter > >
daqdataformats::FragmentHeader create_fragment_header (const dfmessages::DataRequest &dr)
std::unique_ptr< daqdataformats::Fragmentcreate_empty_fragment (const dfmessages::DataRequest &dr)
void dump_to_buffer (const void *data, std::size_t size, void *buffer, uint32_t buffer_pos, const std::size_t &buffer_size)
void periodic_cleanups ()
void periodic_data_transmissions ()
void cleanup ()
void check_waiting_requests ()
std::vector< std::pair< void *, size_t > > get_fragment_pieces (uint64_t start_win_ts, uint64_t end_win_ts, RequestResult &rres)
RequestResult data_request (dfmessages::DataRequest dr) override
virtual void generate_opmon_data () override
Protected Member Functions inherited from dunedaq::datahandlinglibs::RequestHandlerConcept< ReadoutType, LatencyBufferType >
const std::string & resultCodeAsString (ResultCode rc)
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

Private Attributes

std::atomic< int > m_found_requested_count { 0 }
std::atomic< int > m_bad_requested_count { 0 }

Static Private Attributes

static const constexpr uint64_t m_max_ts_diff = 10000000

Additional Inherited Members

Static Public Member Functions inherited from dunedaq::opmonlib::MonitorableObject
static bool publishable_metric (OpMonLevel entry, OpMonLevel system) noexcept
Protected Types inherited from dunedaq::datahandlinglibs::RequestHandlerConcept< ReadoutType, LatencyBufferType >
enum  ResultCode {
  kFound = 0 , kNotFound , kTooOld , kNotYet ,
  kPartial , kPartiallyOld , kCleanup , kUnknown
}
Protected Attributes inherited from dunedaq::datahandlinglibs::DefaultRequestHandlerModel< types::DAPHNESuperChunkTypeAdapter, datahandlinglibs::SkipListLatencyBufferModel< types::DAPHNESuperChunkTypeAdapter > >
std::shared_ptr< datahandlinglibs::SkipListLatencyBufferModel< types::DAPHNESuperChunkTypeAdapter > > & m_latency_buffer
BufferedFileWriter m_buffered_writer
utilities::ReusableThread m_recording_thread
utilities::ReusableThread m_cleanup_thread
utilities::ReusableThread m_periodic_transmission_thread
std::map< dfmessages::DataRequest, int > m_request_counter
std::mutex m_cv_mutex
std::condition_variable m_cv
std::atomic< boolm_cleanup_requested
std::atomic< int > m_requests_running
std::vector< RequestElement > m_waiting_requests
std::mutex m_waiting_requests_lock
std::unique_ptr< boost::asio::thread_pool > m_request_handler_thread_pool
size_t m_num_request_handling_threads
std::unique_ptr< FrameErrorRegistry > & m_error_registry
std::chrono::time_point< std::chrono::high_resolution_clock > m_t0
std::atomic< boolm_run_marker
std::thread m_waiting_queue_thread
std::atomic< boolm_recording
std::atomic< uint64_t > m_next_timestamp_to_record
bool m_configured
float m_pop_limit_pct
float m_pop_size_pct
unsigned m_pop_limit_size
size_t m_buffer_capacity
daqdataformats::SourceID m_sourceid
uint16_t m_detid
std::string m_output_file
size_t m_stream_buffer_size
bool m_recording_configured
bool m_warn_on_timeout
bool m_warn_about_empty_buffer
uint32_t m_periodic_data_transmission_ms
std::vector< std::string > m_frag_out_conn_ids
std::atomic< int > m_pop_counter
std::atomic< int > m_num_buffer_cleanups
std::atomic< int > m_pop_reqs
std::atomic< int > m_pops_count
std::atomic< int > m_occupancy
std::atomic< int > m_num_requests_found
std::atomic< int > m_num_requests_bad
std::atomic< int > m_num_requests_old_window
std::atomic< int > m_num_requests_delayed
std::atomic< int > m_num_requests_uncategorized
std::atomic< int > m_num_requests_timed_out
std::atomic< int > m_handled_requests
std::atomic< int > m_response_time_acc
std::atomic< int > m_response_time_min
std::atomic< int > m_response_time_max
std::atomic< int > m_payloads_written
std::atomic< int > m_bytes_written
std::atomic< uint64_t > m_num_periodic_sent
std::atomic< uint64_t > m_num_periodic_send_failed
std::atomic< uint64_t > m_oldest_timestamp
int m_fragment_send_timeout_ms
Protected Attributes inherited from dunedaq::datahandlinglibs::RequestHandlerConcept< ReadoutType, LatencyBufferType >
std::map< ResultCode, std::string > ResultCodeStrings

Detailed Description

Definition at line 40 of file DAPHNEListRequestHandler.hpp.

Member Typedef Documentation

◆ inherited

◆ SkipListAcc

Definition at line 50 of file DAPHNEListRequestHandler.hpp.

◆ SkipListSkip

Definition at line 51 of file DAPHNEListRequestHandler.hpp.

Constructor & Destructor Documentation

◆ DAPHNEListRequestHandler()

dunedaq::fdreadoutlibs::DAPHNEListRequestHandler::DAPHNEListRequestHandler ( std::shared_ptr< datahandlinglibs::SkipListLatencyBufferModel< types::DAPHNESuperChunkTypeAdapter > > & latency_buffer,
std::unique_ptr< datahandlinglibs::FrameErrorRegistry > & error_registry )
inline

Definition at line 54 of file DAPHNEListRequestHandler.hpp.

57 : DefaultRequestHandlerModel<types::DAPHNESuperChunkTypeAdapter,
58 datahandlinglibs::SkipListLatencyBufferModel<types::DAPHNESuperChunkTypeAdapter>>(
59 latency_buffer,
60 error_registry)
61 {
62 TLOG_DEBUG(TLVL_WORK_STEPS) << "DAPHNEListRequestHandler created...";
63 }
DefaultRequestHandlerModel(std::shared_ptr< datahandlinglibs::SkipListLatencyBufferModel< types::DAPHNESuperChunkTypeAdapter > > &latency_buffer, std::unique_ptr< FrameErrorRegistry > &error_registry)
#define TLOG_DEBUG(lvl,...)
Definition Logging.hpp:112

Member Function Documentation

◆ cleanup()

void dunedaq::fdreadoutlibs::DAPHNEListRequestHandler::cleanup ( )
inlineoverrideprotectedvirtual

◆ daphne_cleanup_request()

void dunedaq::fdreadoutlibs::DAPHNEListRequestHandler::daphne_cleanup_request ( )
protected

Member Data Documentation

◆ m_bad_requested_count

std::atomic<int> dunedaq::fdreadoutlibs::DAPHNEListRequestHandler::m_bad_requested_count { 0 }
private

Definition at line 78 of file DAPHNEListRequestHandler.hpp.

78{ 0 };

◆ m_found_requested_count

std::atomic<int> dunedaq::fdreadoutlibs::DAPHNEListRequestHandler::m_found_requested_count { 0 }
private

Definition at line 77 of file DAPHNEListRequestHandler.hpp.

77{ 0 };

◆ m_max_ts_diff

const constexpr uint64_t dunedaq::fdreadoutlibs::DAPHNEListRequestHandler::m_max_ts_diff = 10000000
staticconstexprprivate

Definition at line 74 of file DAPHNEListRequestHandler.hpp.


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