BOSS 6.6.4.p03
BESIII Offline Software System
|
forward More...
#include <SubDetectorFragment.h>
Public Member Functions | |
SubDetectorFragment (uint32_t source_id) | |
SubDetectorFragment (uint32_t *sd) | |
SubDetectorFragment (eformat::write::node_t *sd) | |
SubDetectorFragment () | |
SubDetectorFragment (const SubDetectorFragment &other) | |
virtual | ~SubDetectorFragment () |
SubDetectorFragment & | operator= (const SubDetectorFragment &other) |
void | status (uint32_t n, const uint32_t *status) |
uint32_t | nstatus (void) const |
const uint32_t * | status (void) const |
void | minor_version (uint16_t v) |
uint16_t | minor_version (void) const |
void | source_id (uint32_t s) |
uint32_t | source_id (void) const |
uint32_t | meta_size_word (void) const |
uint32_t | size_word (void) const |
void | append (eformat::write::ROSFragment *ros) |
const ROSFragment * | first_child (void) const |
void | size_change (uint32_t o, uint32_t n) |
const FullEventFragment * | parent (void) const |
void | parent (eformat::write::FullEventFragment *fe) |
const SubDetectorFragment * | next (void) const |
void | next (const SubDetectorFragment *n) |
uint32_t | page_count (void) const |
const eformat::write::node_t * | bind (void) |
forward
Defines a helper class to aid the creation of SubDetector fragments.
Definition at line 27 of file write/SubDetectorFragment.h.
eformat::write::SubDetectorFragment::SubDetectorFragment | ( | uint32_t | source_id | ) |
Builds a new SubDetector fragment from scratch
source_id | The source identifier to be using for this SubDetector |
Definition at line 19 of file SubDetectorFragment.cxx.
eformat::write::SubDetectorFragment::SubDetectorFragment | ( | uint32_t * | sd | ) |
Builds a new SubDetector fragment from an existing SubDetector fragment in contiguous memory.
sd | The existing SubDetector fragment |
Definition at line 67 of file SubDetectorFragment.cxx.
eformat::write::SubDetectorFragment::SubDetectorFragment | ( | eformat::write::node_t * | sd | ) |
Builds a new SubDetector fragment from an existing SubDetector fragment in non-contiguous memory. The top-level fragment header is expected to be on a contiguous area of memory, together with the first word of the first child fragment (i.e. the ROS header marker). The following data can be spread around.
sd | The existing SubDetector fragment, as a list of nodes, pre-concatenated by the caller. |
Definition at line 85 of file SubDetectorFragment.cxx.
eformat::write::SubDetectorFragment::SubDetectorFragment | ( | ) |
Builds a new empty SubDetectorFragment, otherwise invalid. This is useful for array builds and standard containers.
Definition at line 43 of file SubDetectorFragment.cxx.
eformat::write::SubDetectorFragment::SubDetectorFragment | ( | const SubDetectorFragment & | other | ) |
Copy constructor. This will only copy the meta data, not the fragment relationships and block-data (children, parent and status block) contained in the to-be-copied fragment. If you wish this fragment has the same parents, and children of the copied fragment, you have to do this operation manually, after copying. If you wish to make a copy of the status as well, do it manually and then assign it to this fragment using the status() method.
other | The other fragment to take the meta data from. |
Definition at line 105 of file SubDetectorFragment.cxx.
|
inlinevirtual |
void eformat::write::SubDetectorFragment::append | ( | eformat::write::ROSFragment * | ros | ) |
Appends a new ROS fragment to this SubDetector fragment.
ros | The ROS fragment to be appended to myself |
Definition at line 159 of file SubDetectorFragment.cxx.
Referenced by Builder::append2event(), eformat::old::convert(), and main().
const eformat::write::node_t * eformat::write::SubDetectorFragment::bind | ( | void | ) |
Returns the first node of a list of nodes that represent the fragment you have constructed. To make use of it, just browse the list as defined in node.h
Definition at line 187 of file SubDetectorFragment.cxx.
|
inline |
This returns the first child of this fragment. The system operates as a concatenated list of fragments. From this child you can get to the next.
Definition at line 178 of file write/SubDetectorFragment.h.
Referenced by PackedRawDataCnvSvc::commitOutput().
|
inline |
Returns the total size for the meta data (everything that does not encompass the contents of the m_data pointer in the private representation of this class) in the fragment, in words
Definition at line 149 of file write/SubDetectorFragment.h.
|
inline |
Changes the minor version number of the fragment
s | The new minor version for this header |
Definition at line 121 of file write/SubDetectorFragment.h.
Referenced by eformat::old::convert().
|
inline |
Returns the minor version number of the fragment
Definition at line 127 of file write/SubDetectorFragment.h.
|
inline |
Sets the next sibling
n | The sibling following this fragment |
Definition at line 213 of file write/SubDetectorFragment.h.
|
inline |
Returns the next sibling
Definition at line 206 of file write/SubDetectorFragment.h.
Referenced by PackedRawDataCnvSvc::commitOutput(), and eformat::write::FullEventFragment::page_count().
|
inline |
Returns the number of status wors in this fragment
Definition at line 109 of file write/SubDetectorFragment.h.
eformat::write::SubDetectorFragment & eformat::write::SubDetectorFragment::operator= | ( | const SubDetectorFragment & | other | ) |
Assigment operator. This will only copy the meta data, not the fragment relationships and block-data (children and parent and status block) contained in the to-be-copied fragment. If you wish this fragment has the same parents, and children of the copied fragment, you have to do this operation manually, after copying. If you wish to make a copy of the status as well, do it manually and then assign it to this fragment using the status() method.
other | The other fragment to take the meta data from. |
Definition at line 120 of file SubDetectorFragment.cxx.
uint32_t eformat::write::SubDetectorFragment::page_count | ( | void | ) | const |
Returns the total number of (raw memory) pages this fragment is composed of.
Definition at line 178 of file SubDetectorFragment.cxx.
|
inline |
This sets the parent fragment
fe | The FullEventFragment parent fragment of this SubDetector |
Definition at line 200 of file write/SubDetectorFragment.h.
|
inline |
This returns the parent fragment
Definition at line 192 of file write/SubDetectorFragment.h.
Referenced by eformat::write::FullEventFragment::append().
void eformat::write::SubDetectorFragment::size_change | ( | uint32_t | o, |
uint32_t | n | ||
) |
This method is used by children of this fragment to notify fragment size changes.
o | The old size, in 32-bit words |
n | The new size, in 32-bit words |
Definition at line 151 of file SubDetectorFragment.cxx.
|
inline |
Returns the total size for this fragment, in words
Definition at line 155 of file write/SubDetectorFragment.h.
Referenced by eformat::write::FullEventFragment::append().
|
inline |
Changes the source identifier for this fragment
s | The new value to set |
Definition at line 135 of file write/SubDetectorFragment.h.
Referenced by eformat::write::FullEventFragment::append().
|
inline |
Returns the source identifier of this fragment
Definition at line 141 of file write/SubDetectorFragment.h.
Referenced by operator=(), and SubDetectorFragment().
void eformat::write::SubDetectorFragment::status | ( | uint32_t | n, |
const uint32_t * | status | ||
) |
Changes the number of status words and the status words themselves from the fragment
n | How many status words the underlying SubDetectorFragment fragment supposed to have. |
status | A pointer to n pre-allocated words |
Definition at line 138 of file SubDetectorFragment.cxx.
Referenced by Builder::append2event(), and eformat::old::convert().
|
inline |
Returns a pointer to the first status word to be used by this fragment
Definition at line 114 of file write/SubDetectorFragment.h.