ant
A2 ant: class-based analysis framework
ant::unpacker::acqu::FileFormatBase Class Referenceabstract

#include <UnpackerAcqu_detail.h>

+ Inheritance diagram for ant::unpacker::acqu::FileFormatBase:
+ Collaboration diagram for ant::unpacker::acqu::FileFormatBase:

Classes

struct  Info
 

Public Member Functions

virtual ~FileFormatBase ()
 
virtual double PercentDone () const override
 
- Public Member Functions inherited from ant::UnpackerAcquFileFormat
virtual ~UnpackerAcquFileFormat ()
 

Protected Types

using reader_t = decltype(reader)
 
using buffer_t = decltype(buffer)
 
using it_t = buffer_t::const_iterator
 
using scalers_t = std::map< uint32_t, std::vector< uint32_t > >
 
using hit_mappings_ptr_t = std::vector< std::vector< const UnpackerAcquConfig::hit_mapping_t *> >
 
using hit_storage_t = std_ext::mapped_vectors< std::uint16_t, std::uint16_t >
 
using scaler_mappings_t = std::vector< UnpackerAcquConfig::scaler_mapping_t >
 

Protected Member Functions

void Setup (reader_t &&reader_, buffer_t &&buffer_) override
 
void FillEvents (queue_t &queue) noexcept override
 FillEvents fills the given queue with more TEvent items (if any left) More...
 
void LogMessage (TUnpackerMessage::Level_t level, const std::string &msg, bool emit_warning=false) const
 
void AppendMessagesToEvent (TEvent &event) const
 
virtual void FillInfo (reader_t &reader, buffer_t &buffer, Info &info)=0
 
virtual void FillFirstDataBuffer (reader_t &reader, buffer_t &buffer) const =0
 
virtual void UnpackEvent (TEventData &eventdata, it_t &it, const it_t &it_endbuffer, bool &good) noexcept=0
 
bool UnpackDataBuffer (queue_t &queue, it_t &it, const it_t &it_endbuffer) noexcept
 
std::uint32_t GetDataBufferMarker () const
 
bool SearchFirstDataBuffer (reader_t &reader, buffer_t &buffer, size_t offset) const
 
bool FindFirstDataBuffer (reader_t &reader, buffer_t &buffer, const size_t max_multiplier=32, const bool assert_multiplicity=true) const
 
- Protected Member Functions inherited from ant::UnpackerAcquFileFormat
virtual size_t SizeOfHeader () const =0
 
virtual bool InspectHeader (const std::vector< uint32_t > &buffer) const =0
 
virtual void Setup (std::unique_ptr< RawFileReader > &&reader_, std::vector< std::uint32_t > &&buffer_)=0
 

Static Protected Member Functions

static void FillDetectorReadHits (const hit_storage_t &hit_storage, const hit_mappings_ptr_t &hit_mappings_ptr, std::vector< TDetectorReadHit > &hits) noexcept
 
static void FillSlowControls (const scalers_t &scalers, const scaler_mappings_t &scaler_mappings, std::vector< TSlowControl > &slowcontrols) noexcept
 

Protected Attributes

Info info
 
TID id
 
unsigned AcquID_last = 0
 
std::vector< UnpackerAcquConfig::hit_mapping_thit_mappings
 
hit_mappings_ptr_t hit_mappings_ptr
 
hit_storage_t hit_storage
 
scaler_mappings_t scaler_mappings
 

Additional Inherited Members

- Public Types inherited from ant::UnpackerAcquFileFormat
using queue_t = std::list< TEvent >
 
- Static Public Member Functions inherited from ant::UnpackerAcquFileFormat
static std::unique_ptr< UnpackerAcquFileFormatGet (const std::string &filename)
 Get a suitable instance for the given filename. More...
 

Member Typedef Documentation

◆ buffer_t

using ant::unpacker::acqu::FileFormatBase::buffer_t = decltype(buffer)
protected

◆ hit_mappings_ptr_t

◆ hit_storage_t

using ant::unpacker::acqu::FileFormatBase::hit_storage_t = std_ext::mapped_vectors<std::uint16_t, std::uint16_t>
protected

◆ it_t

using ant::unpacker::acqu::FileFormatBase::it_t = buffer_t::const_iterator
protected

◆ reader_t

using ant::unpacker::acqu::FileFormatBase::reader_t = decltype(reader)
protected

◆ scaler_mappings_t

◆ scalers_t

using ant::unpacker::acqu::FileFormatBase::scalers_t = std::map<uint32_t, std::vector<uint32_t> >
protected

Constructor & Destructor Documentation

◆ ~FileFormatBase()

acqu::FileFormatBase::~FileFormatBase ( )
virtual

Member Function Documentation

◆ AppendMessagesToEvent()

void acqu::FileFormatBase::AppendMessagesToEvent ( TEvent event) const
protected

◆ FillDetectorReadHits()

void acqu::FileFormatBase::FillDetectorReadHits ( const hit_storage_t hit_storage,
const hit_mappings_ptr_t hit_mappings_ptr,
std::vector< TDetectorReadHit > &  hits 
)
staticprotectednoexcept

◆ FillEvents()

void acqu::FileFormatBase::FillEvents ( queue_t queue)
overrideprotectedvirtualnoexcept

FillEvents fills the given queue with more TEvent items (if any left)

Parameters
queue

Implements ant::UnpackerAcquFileFormat.

◆ FillFirstDataBuffer()

virtual void ant::unpacker::acqu::FileFormatBase::FillFirstDataBuffer ( reader_t reader,
buffer_t buffer 
) const
protectedpure virtual

◆ FillInfo()

virtual void ant::unpacker::acqu::FileFormatBase::FillInfo ( reader_t reader,
buffer_t buffer,
Info info 
)
protectedpure virtual

◆ FillSlowControls()

void acqu::FileFormatBase::FillSlowControls ( const scalers_t scalers,
const scaler_mappings_t scaler_mappings,
std::vector< TSlowControl > &  slowcontrols 
)
staticprotectednoexcept
Todo:
estimate some timestamp from ID_lower here?

◆ FindFirstDataBuffer()

bool acqu::FileFormatBase::FindFirstDataBuffer ( reader_t reader,
buffer_t buffer,
const size_t  max_multiplier = 32,
const bool  assert_multiplicity = true 
) const
protected

◆ GetDataBufferMarker()

uint32_t acqu::FileFormatBase::GetDataBufferMarker ( ) const
protected

◆ LogMessage()

void acqu::FileFormatBase::LogMessage ( TUnpackerMessage::Level_t  level,
const std::string &  msg,
bool  emit_warning = false 
) const
protected

◆ PercentDone()

double acqu::FileFormatBase::PercentDone ( ) const
overridevirtual

◆ SearchFirstDataBuffer()

bool acqu::FileFormatBase::SearchFirstDataBuffer ( reader_t reader,
buffer_t buffer,
size_t  offset 
) const
protected

◆ Setup()

void acqu::FileFormatBase::Setup ( reader_t &&  reader_,
buffer_t &&  buffer_ 
)
overrideprotected

◆ UnpackDataBuffer()

bool acqu::FileFormatBase::UnpackDataBuffer ( UnpackerAcquFileFormat::queue_t queue,
it_t it,
const it_t it_endbuffer 
)
protectednoexcept

◆ UnpackEvent()

virtual void ant::unpacker::acqu::FileFormatBase::UnpackEvent ( TEventData eventdata,
it_t it,
const it_t it_endbuffer,
bool &  good 
)
protectedpure virtualnoexcept

Member Data Documentation

◆ AcquID_last

unsigned ant::unpacker::acqu::FileFormatBase::AcquID_last = 0
protected

◆ hit_mappings

std::vector<UnpackerAcquConfig::hit_mapping_t> ant::unpacker::acqu::FileFormatBase::hit_mappings
protected

◆ hit_mappings_ptr

hit_mappings_ptr_t ant::unpacker::acqu::FileFormatBase::hit_mappings_ptr
protected

◆ hit_storage

hit_storage_t ant::unpacker::acqu::FileFormatBase::hit_storage
protected

◆ id

TID ant::unpacker::acqu::FileFormatBase::id
protected

◆ info

Info ant::unpacker::acqu::FileFormatBase::info
protected

◆ scaler_mappings

scaler_mappings_t ant::unpacker::acqu::FileFormatBase::scaler_mappings
protected

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