ATLAS Offline Software
Loading...
Searching...
No Matches
ClusterMessage::DataDescr Struct Reference

#include <ClusterMessage.h>

Collaboration diagram for ClusterMessage::DataDescr:

Public Member Functions

template<typename T>
 DataDescr (const T *ptr, std::size_t count=1)
 DataDescr (DataDescr &&rhs) noexcept
 DataDescr (const DataDescr &)=delete
DataDescroperator= (const DataDescr &)=delete
 DataDescr (const WireMsgBody &body)
DataDescroperator= (DataDescr &&rhs) noexcept
 ~DataDescr ()

Public Attributes

void * ptr = nullptr
std::size_t len = 0
std::size_t align = 0
bool received = false
std::size_t evtNumber = 0
std::size_t fileNumber = 0

Detailed Description

Definition at line 53 of file ClusterMessage.h.

Constructor & Destructor Documentation

◆ DataDescr() [1/4]

template<typename T>
ClusterMessage::DataDescr::DataDescr ( const T * ptr,
std::size_t count = 1 )
inline

Definition at line 64 of file ClusterMessage.h.

65 : ptr((void*)ptr), len(count * sizeof(T)), align(alignof(T)) {}
int count(std::string s, const std::string &regx)
count how many occurances of a regx are in a string
Definition hcg.cxx:148

◆ DataDescr() [2/4]

ClusterMessage::DataDescr::DataDescr ( DataDescr && rhs)
noexcept

Definition at line 8 of file ClusterMessage.cxx.

9 : ptr(rhs.ptr),
10 len(rhs.len),
11 align(rhs.align),
12 received(rhs.received),
13 evtNumber(rhs.evtNumber),
14 fileNumber(rhs.fileNumber) {
15 rhs.ptr = nullptr;
16 rhs.len = 0;
17 rhs.align = 0;
18 rhs.received = false;
19}

◆ DataDescr() [3/4]

ClusterMessage::DataDescr::DataDescr ( const DataDescr & )
delete

◆ DataDescr() [4/4]

ClusterMessage::DataDescr::DataDescr ( const WireMsgBody & body)

Definition at line 20 of file ClusterMessage.cxx.

21 : ptr(reinterpret_cast<void*>((std::uint64_t(body[0]) << 32) +
22 std::uint64_t(body[1]))),
23 len((std::uint64_t(body[2]) << 32) + std::uint64_t(body[3])),
24 align((std::uint64_t(body[4]) << 32) + std::uint64_t(body[5])),
25 received(true),
26 evtNumber((std::uint64_t(body[6]) << 32) + std::uint64_t(body[7])),
27 fileNumber((std::uint64_t(body[8]) << 32) + std::uint64_t(body[9])) {}

◆ ~DataDescr()

ClusterMessage::DataDescr::~DataDescr ( )

Definition at line 29 of file ClusterMessage.cxx.

29 {
30 if (received) {
31 std::free(ptr);
32 }
33}

Member Function Documentation

◆ operator=() [1/2]

DataDescr & ClusterMessage::DataDescr::operator= ( const DataDescr & )
delete

◆ operator=() [2/2]

ClusterMessage::DataDescr & ClusterMessage::DataDescr::operator= ( DataDescr && rhs)
noexcept

Definition at line 35 of file ClusterMessage.cxx.

36 {
37 if (received) {
38 std::free(ptr); // release the object memory before assigning a new one
39 }
40 ptr = rhs.ptr;
41 len = rhs.len;
42 align = rhs.align;
43 received = rhs.received;
44 evtNumber = rhs.evtNumber;
45 fileNumber = rhs.fileNumber;
46 rhs.ptr = nullptr;
47 rhs.len = 0;
48 rhs.align = 0;
49 rhs.received = false;
50 rhs.evtNumber = 0;
51 rhs.fileNumber = 0;
52 return *this;
53}

Member Data Documentation

◆ align

std::size_t ClusterMessage::DataDescr::align = 0

Definition at line 56 of file ClusterMessage.h.

◆ evtNumber

std::size_t ClusterMessage::DataDescr::evtNumber = 0

Definition at line 60 of file ClusterMessage.h.

◆ fileNumber

std::size_t ClusterMessage::DataDescr::fileNumber = 0

Definition at line 61 of file ClusterMessage.h.

◆ len

std::size_t ClusterMessage::DataDescr::len = 0

Definition at line 55 of file ClusterMessage.h.

◆ ptr

void* ClusterMessage::DataDescr::ptr = nullptr

Definition at line 54 of file ClusterMessage.h.

◆ received

bool ClusterMessage::DataDescr::received = false

Definition at line 58 of file ClusterMessage.h.


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