ATLAS Offline Software
Public Member Functions | Public Attributes | List of all members
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 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/3]

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)) {}

◆ DataDescr() [2/3]

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/3]

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 && (ptr != nullptr)) {
30  std::free(ptr);
31  }
32 }

Member Function Documentation

◆ operator=()

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

Definition at line 34 of file ClusterMessage.cxx.

35  {
36  ptr = rhs.ptr;
37  len = rhs.len;
38  align = rhs.align;
39  received = rhs.received;
40  evtNumber = rhs.evtNumber;
41  fileNumber = rhs.fileNumber;
42  rhs.ptr = nullptr;
43  rhs.len = 0;
44  rhs.align = 0;
45  rhs.received = false;
46  rhs.evtNumber = 0;
47  rhs.fileNumber = 0;
48  return *this;
49 }

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:
ClusterMessage::DataDescr::align
std::size_t align
Definition: ClusterMessage.h:53
XMLtoHeader.count
count
Definition: XMLtoHeader.py:84
ClusterMessage::DataDescr::len
std::size_t len
Definition: ClusterMessage.h:52
ClusterMessage::DataDescr::evtNumber
std::size_t evtNumber
Definition: ClusterMessage.h:57
ClusterMessage::DataDescr::fileNumber
std::size_t fileNumber
Definition: ClusterMessage.h:58
xAOD::uint64_t
uint64_t
Definition: EventInfo_v1.cxx:123
ClusterMessage::DataDescr::ptr
void * ptr
Definition: ClusterMessage.h:51
TSU::T
unsigned long long T
Definition: L1TopoDataTypes.h:35
ClusterMessage::DataDescr::received
bool received
Definition: ClusterMessage.h:55