BOSS 7.0.6
BESIII Offline Software System
|
forward More...
#include <ROSFragment.h>
Public Member Functions | |
ROSFragment (uint32_t source_id, uint32_t run_no, uint32_t lvl1_id, uint32_t bc_id) | |
ROSFragment (uint32_t *ros) | |
ROSFragment (eformat::write::node_t *ros) | |
ROSFragment () | |
ROSFragment (const ROSFragment &other) | |
virtual | ~ROSFragment () |
ROSFragment & | operator= (const ROSFragment &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 |
void | run_no (uint32_t s) |
uint32_t | run_no (void) const |
void | lvl1_id (uint32_t s) |
uint32_t | lvl1_id (void) const |
void | bc_id (uint32_t s) |
uint32_t | bc_id (void) const |
uint32_t | meta_size_word (void) const |
uint32_t | size_word (void) const |
void | append (eformat::write::ROBFragment *rob) |
const ROBFragment * | first_child (void) const |
void | size_change (uint32_t o, uint32_t n) |
const SubDetectorFragment * | parent (void) const |
void | parent (eformat::write::SubDetectorFragment *sd) |
const ROSFragment * | next (void) const |
void | next (const ROSFragment *n) |
uint32_t | page_count (void) const |
const eformat::write::node_t * | bind (void) |
const eformat::write::node_t * | extra (void) |
forward
Defines a helper class to aid the creation of ROS fragments.
Definition at line 27 of file write/ROSFragment.h.
eformat::write::ROSFragment::ROSFragment | ( | uint32_t | source_id, |
uint32_t | run_no, | ||
uint32_t | lvl1_id, | ||
uint32_t | bc_id | ||
) |
Builds a new ROS fragment from scratch
source_id | The source identifier to be using for this ROS |
run_no | The run number for this ROS |
lvl1_id | The LVL1 identifier for this ROS |
bc_id | The bunch crossing identifier for this ROS |
Definition at line 19 of file ROSFragment.cxx.
eformat::write::ROSFragment::ROSFragment | ( | uint32_t * | ros | ) |
Builds a new ROS fragment from an existing ROS fragment in contiguous memory.
ros | The existing ROS fragment |
Definition at line 48 of file ROSFragment.cxx.
eformat::write::ROSFragment::ROSFragment | ( | eformat::write::node_t * | ros | ) |
Builds a new ROS fragment from an existing ROS 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 ROB header marker). The following data can be spread around.
ros | The existing ROS fragment, as a list of nodes, pre-concatenated by the caller. |
Definition at line 66 of file ROSFragment.cxx.
eformat::write::ROSFragment::ROSFragment | ( | ) |
Builds a new empty ROS fragment, otherwise invalid. This is useful for array builds and standard containers.
Definition at line 85 of file ROSFragment.cxx.
eformat::write::ROSFragment::ROSFragment | ( | const ROSFragment & | 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 113 of file ROSFragment.cxx.
|
inlinevirtual |
void eformat::write::ROSFragment::append | ( | eformat::write::ROBFragment * | rob | ) |
Appends a new ROB fragment to this ROS fragment.
rob | The ROB fragment to be appended to myself |
Definition at line 169 of file ROSFragment.cxx.
Referenced by Builder::append2event(), eformat::old::convert(), convert_ros(), and main().
|
inline |
Changes the bunch crossing identifier in this fragment
s | The new value to set |
Definition at line 179 of file write/ROSFragment.h.
|
inline |
Returns the bunch crossing identifier for this fragment
Definition at line 185 of file write/ROSFragment.h.
Referenced by ROSFragment().
const eformat::write::node_t * eformat::write::ROSFragment::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 195 of file ROSFragment.cxx.
Referenced by convert_ros().
|
inline |
Return the extra node of the fragment for OHFiller_write. lifei
Definition at line 281 of file write/ROSFragment.h.
|
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 222 of file write/ROSFragment.h.
Referenced by PackedRawDataCnvSvc::commitOutput().
|
inline |
Changes the lvl1 identifier in this fragment
s | The new value to set |
Definition at line 165 of file write/ROSFragment.h.
|
inline |
Returns the lvl1 identifier for this fragment
Definition at line 171 of file write/ROSFragment.h.
Referenced by operator=(), and ROSFragment().
|
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 193 of file write/ROSFragment.h.
|
inline |
Changes the minor version number of the fragment
v | The new minor version for this header |
Definition at line 123 of file write/ROSFragment.h.
Referenced by eformat::old::convert(), and convert_ros().
|
inline |
Returns the minor version number of the fragment
Definition at line 129 of file write/ROSFragment.h.
|
inline |
Sets the next sibling
n | The sibling following this fragment |
Definition at line 257 of file write/ROSFragment.h.
|
inline |
Returns the next sibling
Definition at line 250 of file write/ROSFragment.h.
Referenced by PackedRawDataCnvSvc::commitOutput(), and eformat::write::SubDetectorFragment::page_count().
|
inline |
Returns the number of status wors in this fragment
Definition at line 111 of file write/ROSFragment.h.
eformat::write::ROSFragment & eformat::write::ROSFragment::operator= | ( | const ROSFragment & | 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 128 of file ROSFragment.cxx.
uint32_t eformat::write::ROSFragment::page_count | ( | void | ) | const |
Returns the total number of (raw memory) pages this fragment is composed of.
Definition at line 187 of file ROSFragment.cxx.
|
inline |
This sets the parent fragment
sd | The SubDetectorFragment parent fragment of this ROS |
Definition at line 244 of file write/ROSFragment.h.
|
inline |
This returns the parent fragment
Definition at line 236 of file write/ROSFragment.h.
Referenced by eformat::write::SubDetectorFragment::append().
|
inline |
Changes the run number
s | The new value to set |
Definition at line 151 of file write/ROSFragment.h.
|
inline |
Returns the run number for this fragment
Definition at line 157 of file write/ROSFragment.h.
Referenced by operator=(), and ROSFragment().
void eformat::write::ROSFragment::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 161 of file ROSFragment.cxx.
Referenced by eformat::write::SubDetectorFragment::append().
|
inline |
Returns the total size for this fragment, in words
Definition at line 199 of file write/ROSFragment.h.
Referenced by eformat::write::SubDetectorFragment::append().
|
inline |
Changes the source identifier for this fragment
s | The new value to set |
Definition at line 137 of file write/ROSFragment.h.
Referenced by eformat::write::SubDetectorFragment::append().
|
inline |
Returns the source identifier for this fragment
Definition at line 143 of file write/ROSFragment.h.
Referenced by operator=(), and ROSFragment().
void eformat::write::ROSFragment::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 this fragment is supposed to have. |
status | A pointer to n pre-allocated words |
Definition at line 149 of file ROSFragment.cxx.
Referenced by Builder::append2event(), eformat::old::convert(), and convert_ros().
|
inline |
Returns a pointer to the first status word to be used by this fragment
Definition at line 116 of file write/ROSFragment.h.