artdaq_core  v3_06_00
artdaq::ContainerFragment Class Reference

The artdaq::ContainerFragment class represents a Fragment which contains other Fragments. More...

#include <artdaq-core/Data/ContainerFragment.hh>

Inheritance diagram for artdaq::ContainerFragment:
artdaq::ContainerFragmentLoader

Classes

struct  Metadata
 Contains the information necessary for retrieving Fragment objects from the ContainerFragment. More...
 
struct  MetadataV0
 Contains the information necessary for retrieving Fragment objects from the ContainerFragment. More...
 

Public Member Functions

Metadata const * UpgradeMetadata (MetadataV0 const *in) const
 Upgrade the Metadata of a fixed-size ContainerFragment to the new standard. More...
 
 ContainerFragment (Fragment const &f)
 
Metadata const * metadata () const
 const getter function for the Metadata More...
 
Metadata::count_t block_count () const
 Gets the number of fragments stored in the ContainerFragment. More...
 
Fragment::type_t fragment_type () const
 Get the Fragment::type_t of stored Fragment objects. More...
 
bool missing_data () const
 Gets the flag if the ContainerFragment knows that it is missing data. More...
 
void const * dataBegin () const
 Gets the start of the data. More...
 
void const * dataEnd () const
 Gets the last Fragment in the ContainerFragment. More...
 
FragmentPtr at (size_t index) const
 Gets a specific Fragment from the ContainerFragment. More...
 
size_t fragSize (size_t index) const
 Gets the size of the Fragment at the specified location in the ContainerFragment, in bytes. More...
 
FragmentPtr operator[] (size_t index) const
 Alias to ContainerFragment::at() More...
 
size_t fragmentIndex (size_t index) const
 Get the offset of a Fragment within the ContainerFragment. More...
 
size_t lastFragmentIndex () const
 Returns the offset of the last Fragment in the ContainerFragment. More...
 

Static Public Attributes

static constexpr uint8_t CURRENT_VERSION = 1
 The current version of the ContainerFragmentHeader.
 
static constexpr size_t CONTAINER_MAGIC = 0x00BADDEED5B1BEE5
 Marker word used in index.
 

Protected Member Functions

const size_t * create_index_ () const
 Create an index for the currently-contained Fragments. More...
 
void reset_index_ptr_ () const
 Reset the index pointer, creating a new index if necessary. ContainerFragmentLoader uses this functionality to implant new indicies into the ContainerFragment, other code should simply use the get_index_ function.
 
const size_t * get_index_ () const
 Get a pointer to the index. More...
 

Static Protected Member Functions

static constexpr size_t words_per_frag_word_ ()
 Gets the ratio between the fundamental data storage type and the representation within the Fragment. More...
 

Detailed Description

The artdaq::ContainerFragment class represents a Fragment which contains other Fragments.

Definition at line 20 of file ContainerFragment.hh.

Constructor & Destructor Documentation

artdaq::ContainerFragment::ContainerFragment ( Fragment const &  f)
inlineexplicit
Parameters
fThe Fragment object to use for data storage

The constructor simply sets its const private member "artdaq_Fragment_" to refer to the artdaq::Fragment object

Definition at line 103 of file ContainerFragment.hh.

Member Function Documentation

FragmentPtr artdaq::ContainerFragment::at ( size_t  index) const
inline

Gets a specific Fragment from the ContainerFragment.

Parameters
indexThe Fragment index to return
Returns
Pointer to the specified Fragment in the ContainerFragment
Exceptions
cet::exceptionif the index is out-of-range

Definition at line 166 of file ContainerFragment.hh.

Metadata::count_t artdaq::ContainerFragment::block_count ( ) const
inline

Gets the number of fragments stored in the ContainerFragment.

Returns
The number of Fragment objects stored in the ContainerFragment

Definition at line 130 of file ContainerFragment.hh.

const size_t* artdaq::ContainerFragment::create_index_ ( ) const
inlineprotected

Create an index for the currently-contained Fragments.

Returns
Array of block_count size_t words containing index

Definition at line 259 of file ContainerFragment.hh.

void const* artdaq::ContainerFragment::dataBegin ( ) const
inline

Gets the start of the data.

Returns
Pointer to the first Fragment in the ContainerFragment

Definition at line 146 of file ContainerFragment.hh.

void const* artdaq::ContainerFragment::dataEnd ( ) const
inline

Gets the last Fragment in the ContainerFragment.

Returns
Pointer to the last Fragment in the ContainerFragment

Definition at line 155 of file ContainerFragment.hh.

Fragment::type_t artdaq::ContainerFragment::fragment_type ( ) const
inline

Get the Fragment::type_t of stored Fragment objects.

Returns
The Fragment::type_t of stored Fragment objects

Definition at line 135 of file ContainerFragment.hh.

size_t artdaq::ContainerFragment::fragmentIndex ( size_t  index) const
inline

Get the offset of a Fragment within the ContainerFragment.

Parameters
indexThe Fragment index
Returns
The offset of the requested Fragment within the ContainerFragment
Exceptions
cet::exceptionif the index is out-of-range

Definition at line 223 of file ContainerFragment.hh.

size_t artdaq::ContainerFragment::fragSize ( size_t  index) const
inline

Gets the size of the Fragment at the specified location in the ContainerFragment, in bytes.

Parameters
indexThe Fragment index
Returns
The size of the Fragment at the specified location in the ContainerFragment, in bytes
Exceptions
cet::exceptionif the index is out-of-range

Definition at line 195 of file ContainerFragment.hh.

const size_t* artdaq::ContainerFragment::get_index_ ( ) const
inlineprotected

Get a pointer to the index.

Returns
pointer to size_t array of Fragment offsets in payload, terminating with CONTAINER_MAGIC

Definition at line 302 of file ContainerFragment.hh.

size_t artdaq::ContainerFragment::lastFragmentIndex ( ) const
inline

Returns the offset of the last Fragment in the ContainerFragment.

Returns
The offset of the last Fragment in the ContainerFragment

Definition at line 240 of file ContainerFragment.hh.

Metadata const* artdaq::ContainerFragment::metadata ( ) const
inline

const getter function for the Metadata

Returns
const pointer to the Metadata

Definition at line 114 of file ContainerFragment.hh.

bool artdaq::ContainerFragment::missing_data ( ) const
inline

Gets the flag if the ContainerFragment knows that it is missing data.

Returns
The flag if the ContainerFragment knows that it is missing data

Definition at line 140 of file ContainerFragment.hh.

FragmentPtr artdaq::ContainerFragment::operator[] ( size_t  index) const
inline

Alias to ContainerFragment::at()

Parameters
indexThe Fragment index to return
Returns
Pointer to the specified Fragment in the ContainerFragment
Exceptions
cet::exceptionif the index is out-of-range

Definition at line 212 of file ContainerFragment.hh.

Metadata const* artdaq::ContainerFragment::UpgradeMetadata ( MetadataV0 const *  in) const
inline

Upgrade the Metadata of a fixed-size ContainerFragment to the new standard.

Parameters
inMetadata to upgrade
Returns
Upgraded Metadata

Definition at line 82 of file ContainerFragment.hh.

static constexpr size_t artdaq::ContainerFragment::words_per_frag_word_ ( )
inlinestaticprotected

Gets the ratio between the fundamental data storage type and the representation within the Fragment.

Returns
The ratio between the fundamental data storage type and the representation within the Fragment

Definition at line 250 of file ContainerFragment.hh.


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