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 50 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 61 of file ClusterMessage.h.

62 : 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:146

◆ DataDescr() [2/4]

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

Definition at line 7 of file ClusterMessage.cxx.

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

◆ DataDescr() [3/4]

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

◆ DataDescr() [4/4]

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

Definition at line 19 of file ClusterMessage.cxx.

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

◆ ~DataDescr()

ClusterMessage::DataDescr::~DataDescr ( )

Definition at line 28 of file ClusterMessage.cxx.

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

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 34 of file ClusterMessage.cxx.

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

Member Data Documentation

◆ align

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

Definition at line 53 of file ClusterMessage.h.

◆ evtNumber

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

Definition at line 57 of file ClusterMessage.h.

◆ fileNumber

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

Definition at line 58 of file ClusterMessage.h.

◆ len

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

Definition at line 52 of file ClusterMessage.h.

◆ ptr

void* ClusterMessage::DataDescr::ptr = nullptr

Definition at line 51 of file ClusterMessage.h.

◆ received

bool ClusterMessage::DataDescr::received = false

Definition at line 55 of file ClusterMessage.h.


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