Project
Loading...
Searching...
No Matches
DataHeader.h File Reference
#include <cstddef>
#include <cstdint>
#include <memory>
#include <cassert>
#include <cstring>
#include <string>
#include <stdexcept>
#include <climits>
#include <limits>
#include <cerrno>

Go to the source code of this file.

Classes

struct  o2::header::internal::NumberOfActiveBits< N >
 get the number of active bits (set to 1) in a bitfield More...
 
struct  o2::header::internal::NumberOfActiveBits< 0 >
 
struct  o2::header::internal::TraitsIntType< N >
 select uint type depending on size, default is uint64_t More...
 
struct  o2::header::internal::TraitsIntType< 1 >
 
struct  o2::header::internal::TraitsIntType< 2 >
 
struct  o2::header::internal::TraitsIntType< 4 >
 
struct  o2::header::Descriptor< N >
 
struct  o2::header::BaseHeader
 the base header struct Every header type must begin (i.e. derive) with this. Don't use this struct directly. The derived header must initialize BaseHeader fields with appropriate values More...
 
struct  o2::header::DataHeader
 the main header struct More...
 
struct  o2::header::DataIdentifier
 Helper struct to encode origin and description of data. More...
 
struct  o2::header::is_descriptor< T >
 
struct  o2::header::is_descriptor< o2::header::Descriptor< S > >
 

Namespaces

namespace  o2
 a couple of static helper functions to create timestamp values for CCDB queries or override obsolete objects
 
namespace  o2::header
 O2 data header classes and API, v0.1.
 
namespace  o2::header::internal
 

Typedefs

using o2::header::HeaderType = Descriptor< gSizeHeaderDescriptionString >
 
using o2::header::SerializationMethod = Descriptor< gSizeSerializationMethodString >
 
using o2::header::DataOrigin = Descriptor< gSizeDataOriginString >
 
using o2::header::DataDescription = Descriptor< gSizeDataDescriptionString >
 

Functions

void o2::header::hexDump (const char *desc, const void *voidaddr, size_t len, size_t max=0)
 helper function to print a hex/ASCII dump of some memory
 
template<typename T >
constexpr T o2::header::internal::String2__ ()
 
template<typename T , typename... Targs>
constexpr T o2::header::internal::String2__ (char c, Targs... Fargs)
 
template<typename T , int N>
constexpr int o2::header::internal::ArraySize ()
 evaluate the array size necessary to hold a N-byte number with type T
 
template<int N>
constexpr std::size_t o2::header::internal::strLength (const char(&str)[N], std::size_t pos=0)
 
template<typename T , typename... Targs>
constexpr T o2::header::String2 (char c, Targs... Fargs)
 
template<typename T , std::size_t N, std::size_t pos = 0, bool suppressAssert = false>
constexpr T o2::header::String2 (const char(&str)[N])
 
template<typename HeaderType , typename std::enable_if_t< std::is_pointer< HeaderType >::value, int > = 0>
auto o2::header::get (const std::byte *buffer, size_t=0)
 
template<typename HeaderType , typename std::enable_if_t< std::is_pointer< HeaderType >::value, int > = 0>
auto o2::header::get (const void *buffer, size_t len=0)
 
template<typename T >
o2::header::strtoui (const char *str, char **str_end, int base) noexcept
 
template<typename T >
o2::header::stoui (const std::string &str, size_t *pos=nullptr, int base=10)
 

Variables

constexpr uint32_t o2::header::gSizeMagicString = 4
 size of the magic string field
 
constexpr uint32_t o2::header::gSizeDataOriginString = 4
 size of the data origin field
 
constexpr uint32_t o2::header::gSizeSerializationMethodString = 8
 size of the payload serialization field
 
constexpr uint32_t o2::header::gSizeDataDescriptionString = 16
 size of the data description field
 
constexpr uint32_t o2::header::gSizeHeaderDescriptionString = 8
 size of the header description field
 
const uint32_t o2::header::gInvalidToken32 = 0xFFFFFFFF
 default int representation of 'invalid' token for 4-byte char field
 
const uint64_t o2::header::gInvalidToken64 = 0xFFFFFFFFFFFFFFFF
 default int representation of 'invalid' token for 8-byte char field
 
constexpr o2::header::SerializationMethod o2::header::gSerializationMethodAny {"*******"}
 
constexpr o2::header::SerializationMethod o2::header::gSerializationMethodInvalid {"INVALID"}
 
constexpr o2::header::SerializationMethod o2::header::gSerializationMethodNone {"NONE"}
 
constexpr o2::header::SerializationMethod o2::header::gSerializationMethodROOT {"ROOT"}
 
constexpr o2::header::SerializationMethod o2::header::gSerializationMethodCCDB {"CCDB"}
 
constexpr o2::header::SerializationMethod o2::header::gSerializationMethodFlatBuf {"FLATBUF"}
 
constexpr o2::header::SerializationMethod o2::header::gSerializationMethodArrow {"ARROW"}
 
constexpr o2::header::DataOrigin o2::header::gDataOriginAny {"***"}
 
constexpr o2::header::DataOrigin o2::header::gDataOriginInvalid {"NIL"}
 
constexpr o2::header::DataOrigin o2::header::gDataOriginFLP {"FLP"}
 
constexpr o2::header::DataOrigin o2::header::gDataOriginCPV {"CPV"}
 
constexpr o2::header::DataOrigin o2::header::gDataOriginCTP {"CTP"}
 
constexpr o2::header::DataOrigin o2::header::gDataOriginEMC {"EMC"}
 
constexpr o2::header::DataOrigin o2::header::gDataOriginFT0 {"FT0"}
 
constexpr o2::header::DataOrigin o2::header::gDataOriginFV0 {"FV0"}
 
constexpr o2::header::DataOrigin o2::header::gDataOriginFDD {"FDD"}
 
constexpr o2::header::DataOrigin o2::header::gDataOriginHMP {"HMP"}
 
constexpr o2::header::DataOrigin o2::header::gDataOriginITS {"ITS"}
 
constexpr o2::header::DataOrigin o2::header::gDataOriginMCH {"MCH"}
 
constexpr o2::header::DataOrigin o2::header::gDataOriginMFT {"MFT"}
 
constexpr o2::header::DataOrigin o2::header::gDataOriginMID {"MID"}
 
constexpr o2::header::DataOrigin o2::header::gDataOriginPHS {"PHS"}
 
constexpr o2::header::DataOrigin o2::header::gDataOriginTOF {"TOF"}
 
constexpr o2::header::DataOrigin o2::header::gDataOriginTPC {"TPC"}
 
constexpr o2::header::DataOrigin o2::header::gDataOriginTRD {"TRD"}
 
constexpr o2::header::DataOrigin o2::header::gDataOriginZDC {"ZDC"}
 
constexpr o2::header::DataOrigin o2::header::gDataOriginTST {"TST"}
 
constexpr o2::header::DataOrigin o2::header::gDataOriginACO {"ACO"}
 
constexpr o2::header::DataOrigin o2::header::gDataOriginIT3 {"IT3"}
 
constexpr o2::header::DataOrigin o2::header::gDataOriginFOC {"FOC"}
 
constexpr o2::header::DataOrigin o2::header::gDataOriginTRK {"TRK"}
 
constexpr o2::header::DataOrigin o2::header::gDataOriginFT3 {"FT3"}
 
constexpr o2::header::DataOrigin o2::header::gDataOriginFCT {"FCT"}
 
constexpr o2::header::DataOrigin o2::header::gDataOriginTF3 {"TF3"}
 
constexpr o2::header::DataOrigin o2::header::gDataOriginRCH {"RCH"}
 
constexpr o2::header::DataOrigin o2::header::gDataOriginMI3 {"MI3"}
 
constexpr o2::header::DataOrigin o2::header::gDataOriginECL {"ECL"}
 
constexpr o2::header::DataOrigin o2::header::gDataOriginGPU {"GPU"}
 
constexpr o2::header::DataDescription o2::header::gDataDescriptionAny {"***************"}
 
constexpr o2::header::DataDescription o2::header::gDataDescriptionInvalid {"INVALID_DESC"}
 
constexpr o2::header::DataDescription o2::header::gDataDescriptionRawData {"RAWDATA"}
 
constexpr o2::header::DataDescription o2::header::gDataDescriptionClusters {"CLUSTERS"}
 
constexpr o2::header::DataDescription o2::header::gDataDescriptionTracks {"TRACKS"}
 
constexpr o2::header::DataDescription o2::header::gDataDescriptionConfig {"CONFIGURATION"}
 
constexpr o2::header::DataDescription o2::header::gDataDescriptionInfo {"INFORMATION"}
 
constexpr o2::header::DataDescription o2::header::gDataDescriptionROOTStreamers {"ROOT STREAMERS"}
 
constexpr o2::header::DataDescription o2::header::gDataDescriptionDISTSTF {"DISTSUBTIMEFRAME"}