![]() |
Project
|
an example data header containing a name of an object as a null terminated char arr. this is a template! at instantiation the template parameter determines the size of the held string array. a caveat with decoding is (if length of string is not known) you have to use header::get<NameHeader<0>>(buffer) to get it out of a buffer. May improve in the future if enough people complain. If the compiler decides to pad the end of struct, the length of padding is stored in the last byte More...
#include <NameHeader.h>
Inherits o2::header::BaseHeader.
Public Member Functions | |
NameHeader () | |
template<size_t S> | |
NameHeader (const char(&in)[S]) | |
const char * | getName () const |
size_t | getNameLength () const |
const o2::header::HeaderType | sHeaderType |
const o2::header::HeaderType | sHeaderType |
![]() | |
BaseHeader ()=delete | |
dont construct directly | |
BaseHeader (const BaseHeader &)=default | |
constexpr | BaseHeader (uint32_t mySize, HeaderType desc, SerializationMethod ser, uint32_t version) |
Special ctor for initialization in derived types. | |
constexpr uint32_t | size () const noexcept |
const std::byte * | data () const noexcept |
const BaseHeader * | next () const noexcept |
get the next header if any (const version) | |
BaseHeader * | next () noexcept |
get the next header if any (non-const version) | |
bool | sanityCheck (uint32_t expectedVersion) const |
void | throwInconsistentStackError () const |
Static Public Attributes | |
static const uint32_t | sVersion = 1 |
static const o2::header::HeaderType | sHeaderType = "NameHead" |
static const o2::header::SerializationMethod | sSerializationMethod = gSerializationMethodNone |
![]() | |
static constexpr uint32_t | sMagicString {String2<uint32_t>("O2O2")} |
static const uint32_t | sVersion = o2::header::gInvalidToken32 |
static const o2::header::HeaderType | sHeaderType = o2::header::gInvalidToken64 |
static const o2::header::SerializationMethod | sSerializationMethod = o2::header::gInvalidToken64 |
Additional Inherited Members | ||
![]() | ||
static const BaseHeader * | get (const std::byte *b, size_t=0) | |
access header in buffer | ||
static BaseHeader * | get (std::byte *b, size_t=0) | |
access header in buffer | ||
![]() | ||
union { | ||
char magicString [gSizeMagicString] | ||
uint32_t magicStringInt | ||
}; | ||
a magic string, used to identify an O2 header in a raw stream of bytes | ||
uint32_t | headerSize | |
union { | ||
uint32_t flags | ||
struct { | ||
uint32_t flagsNextHeader: 1 | ||
uint32_t flagsReserved: 15 | ||
uint32_t flagsDerivedHeader: 16 | ||
} | ||
}; | ||
flags, first bit indicates that a sub header follows | ||
uint32_t | headerVersion | |
version of the entire header, set by the derived header | ||
o2::header::HeaderType | description | |
header type description, set by derived header | ||
o2::header::SerializationMethod | serialization | |
header serialization method, set by derived header | ||
an example data header containing a name of an object as a null terminated char arr. this is a template! at instantiation the template parameter determines the size of the held string array. a caveat with decoding is (if length of string is not known) you have to use header::get<NameHeader<0>>(buffer) to get it out of a buffer. May improve in the future if enough people complain. If the compiler decides to pad the end of struct, the length of padding is stored in the last byte
Definition at line 39 of file NameHeader.h.
|
inline |
Definition at line 43 of file NameHeader.h.
|
inline |
Definition at line 55 of file NameHeader.h.
|
inline |
Definition at line 68 of file NameHeader.h.
|
inline |
Definition at line 69 of file NameHeader.h.
const o2::header::HeaderType o2::header::NameHeader< 0 >::sHeaderType |
Definition at line 88 of file NameHeader.h.
const o2::header::HeaderType o2::header::NameHeader< 0 >::sHeaderType |
Definition at line 16 of file NameHeader.cxx.
|
static |
Definition at line 41 of file NameHeader.h.
|
static |
Definition at line 42 of file NameHeader.h.
|
static |
Definition at line 40 of file NameHeader.h.