BOSS 6.6.4.p01
BESIII Offline Software System
|
forward More...
#include <ROBFragment.h>
Public Member Functions | |
ROBFragment (uint32_t source_id, uint32_t run_no, uint32_t lvl1_id, uint32_t bc_id, uint32_t lvl1_type, uint32_t detev_type, uint32_t ndata, const uint32_t *data, uint32_t status_position) | |
ROBFragment () | |
ROBFragment (const ROBFragment &other) | |
ROBFragment (uint32_t *rod, uint32_t size_word) | |
ROBFragment (uint32_t *rob) | |
virtual | ~ROBFragment () |
ROBFragment & | operator= (const ROBFragment &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 | rod_status (uint32_t n, const uint32_t *status) |
uint32_t | rod_nstatus (void) const |
const uint32_t * | rod_status (void) const |
void | status_position (uint32_t v) |
uint32_t | status_position (void) const |
void | rod_minor_version (uint16_t v) |
void | rod_data (uint32_t n, const uint32_t *data) |
uint32_t | rod_ndata (void) const |
const uint32_t * | rod_data (void) const |
void | source_id (uint32_t s) |
uint32_t | source_id (void) const |
void | rod_run_no (uint32_t s) |
uint32_t | rod_run_no (void) const |
void | rod_lvl1_id (uint32_t s) |
uint32_t | rod_lvl1_id (void) const |
void | rod_bc_id (uint32_t s) |
uint32_t | rod_bc_id (void) const |
void | rod_lvl1_type (uint32_t s) |
uint32_t | rod_lvl1_type (void) const |
void | rod_detev_type (uint32_t s) |
uint32_t | rod_detev_type (void) const |
uint32_t | meta_size_word (void) const |
uint32_t | size_word (void) const |
uint32_t | page_count (void) const |
const eformat::write::node_t * | bind (void) const |
void | parent (eformat::write::ROSFragment *ros) |
const ROSFragment * | parent (void) const |
void | next (const ROBFragment *n) |
const ROBFragment * | next (void) const |
forward
Defines a helper class to aid the creation of ROB fragments.
Definition at line 28 of file write/ROBFragment.h.
eformat::write::ROBFragment::ROBFragment | ( | uint32_t | source_id, |
uint32_t | run_no, | ||
uint32_t | lvl1_id, | ||
uint32_t | bc_id, | ||
uint32_t | lvl1_type, | ||
uint32_t | detev_type, | ||
uint32_t | ndata, | ||
const uint32_t * | data, | ||
uint32_t | status_position | ||
) |
Builds a new ROB fragment from scratch
source_id | The source identifier to be using for this ROB |
run_no | The run number for this ROB/ROD |
lvl1_id | The LVL1 identifier for this ROB/ROD |
bc_id | The bunch crossing identifier for this ROB/ROD |
lvl1_type | The LVL1 trigger type identifier for this ROB/ROD |
detev_type | The detector event type for this ROB/ROD |
ndata | The number of 32-bits pointed by "data" bellow |
data | A set of 32-bit words that consist the data block of this ROB fragment |
status_position | The status block position you want to have on the ROD format. Use the definitions available in Status.h to get generic identifiers for the possibilities. |
Definition at line 20 of file ROBFragment.cxx.
eformat::write::ROBFragment::ROBFragment | ( | ) |
Builds a new "empty" ROB fragment, otherwise invalid. Use the methods bellow to set its fields. This is useful to pre-allocate objects of this class in the stack and later use them by assigment. Another option are standard containers, that demand the contained classes to have this method.
Definition at line 71 of file ROBFragment.cxx.
eformat::write::ROBFragment::ROBFragment | ( | const ROBFragment & | other | ) |
Copy constructor. This will perform a shallow copy of the fragment. In this case, the data and status blocks are not copied, only the meta information, i.e., all but the payload of the underlying ROD fragment and non-variable data blocks are copied. If you wish to have the data/status copied, you have to copy it manually yourself and set the data pointer with the rod_data() and status() and rod_status() methods. The parent fragment remains unset, and you have to append this fragment manually after creation. Binding also doesn't take place.
other | The other fragment to copy the meta data from. |
Definition at line 115 of file ROBFragment.cxx.
eformat::write::ROBFragment::ROBFragment | ( | uint32_t * | rod, |
uint32_t | size_word | ||
) |
Builds a new ROB fragment from scratch, starting from an existing ROD fragment as basis.
rod | The rod fragment you want to start with, in a contiguous block of memory |
size_word | The size of the ROD fragment, in words |
Definition at line 126 of file ROBFragment.cxx.
eformat::write::ROBFragment::ROBFragment | ( | uint32_t * | rob | ) |
Builds a new ROB fragment from an existing ROB fragment in contiguous memory
rob | The ROB fragment you want to start with, in a contiguous block of memory |
Definition at line 158 of file ROBFragment.cxx.
|
inlinevirtual |
|
inline |
Outputs a concatenation of eformat::write::node making up a list with the contents of this ROB fragment.
Definition at line 327 of file write/ROBFragment.h.
|
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 309 of file write/ROBFragment.h.
Referenced by size_word().
|
inline |
Changes the minor version number of the fragment
v | The new minor version for this header |
Definition at line 148 of file write/ROBFragment.h.
Referenced by eformat::old::convert(), and convert_ros().
|
inline |
Returns the minor version number of the fragment
Definition at line 154 of file write/ROBFragment.h.
|
inline |
Sets the next sibling
n | The sibling following this fragment |
Definition at line 348 of file write/ROBFragment.h.
Referenced by eformat::write::ROSFragment::bind(), PackedRawDataCnvSvc::commitOutput(), and eformat::write::ROSFragment::page_count().
|
inline |
|
inline |
Returns the number of status wors in this fragment
Definition at line 136 of file write/ROBFragment.h.
eformat::write::ROBFragment & eformat::write::ROBFragment::operator= | ( | const ROBFragment & | other | ) |
Assignment operator. This will perform a shallow copy of the fragment. In this case, the data and status blocks are not copied, only the meta information, i.e., all but the payload of the underlying ROD fragment and non-variable data blocks are copied. If you wish to have the data/status copied, you have to copy it manually yourself and set the data pointer with the rod_data() and status() and rod_status() methods. The parent fragment is not changed in this operation. Previous binding operations remain valid after assignment.
other | The other fragment to copy the meta data from. |
Definition at line 184 of file ROBFragment.cxx.
|
inline |
Returns the number of pages of memory I have
Definition at line 321 of file write/ROBFragment.h.
|
inline |
This sets the parent fragment
ros | The ROS parent fragment of this ROB/ROD |
Definition at line 335 of file write/ROBFragment.h.
Referenced by eformat::write::ROSFragment::append().
|
inline |
This returns the parent fragment
Definition at line 341 of file write/ROBFragment.h.
|
inline |
Changes the bunch crossing identifier in the ROD fragment
s | The new value to set |
Definition at line 267 of file write/ROBFragment.h.
|
inline |
Returns the bunch crossing identifier for the ROD fragment
Definition at line 273 of file write/ROBFragment.h.
void eformat::write::ROBFragment::rod_data | ( | uint32_t | n, |
const uint32_t * | data | ||
) |
Changes the number of data words and the data words themselves from the ROD fragment
n | How many data words the underlying ROD fragment supposed to have |
status | A pointer to n pre-allocated words |
Definition at line 264 of file ROBFragment.cxx.
|
inline |
Returns a pointer to the first of the data words at the ROD fragment
Definition at line 218 of file write/ROBFragment.h.
|
inline |
Changes the detector event type in the ROD fragment
s | The new value to set |
Definition at line 295 of file write/ROBFragment.h.
|
inline |
Returns the detector event type identifier for the ROD fragment
Definition at line 301 of file write/ROBFragment.h.
|
inline |
Changes the lvl1 identifier in the ROD fragment
s | The new value to set |
Definition at line 253 of file write/ROBFragment.h.
|
inline |
Returns the lvl1 identifier for the ROD fragment
Definition at line 259 of file write/ROBFragment.h.
Referenced by ROBFragment().
|
inline |
Changes the lvl1 trigger type in the ROD fragment
s | The new value to set |
Definition at line 281 of file write/ROBFragment.h.
|
inline |
Returns the lvl1 event type identifier for the ROD fragment
Definition at line 287 of file write/ROBFragment.h.
|
inline |
Changes the minor version number of the underlying ROD fragment
v | The new minor version for this header |
Definition at line 197 of file write/ROBFragment.h.
Referenced by eformat::old::convert(), and convert_ros().
|
inline |
Returns the number of data words at the ROD fragment
Definition at line 213 of file write/ROBFragment.h.
|
inline |
Returns the number of status wors in this fragment
Definition at line 170 of file write/ROBFragment.h.
|
inline |
Changes the run number for the ROD fragment
s | The new value to set |
Definition at line 239 of file write/ROBFragment.h.
|
inline |
Returns the run number for the ROD fragment
Definition at line 245 of file write/ROBFragment.h.
Referenced by ROBFragment().
void eformat::write::ROBFragment::rod_status | ( | uint32_t | n, |
const uint32_t * | status | ||
) |
Changes the number of status words and the status words themselves from the ROD fragment
n | How many status words the underlying ROD fragment supposed to have |
status | A pointer to n pre-allocated words |
Definition at line 237 of file ROBFragment.cxx.
Referenced by Builder::append2event(), eformat::old::convert(), and convert_ros().
|
inline |
Returns a pointer to the first ROD status word to be used by this fragment
Definition at line 176 of file write/ROBFragment.h.
|
inline |
Returns the total size for this fragment, in words
Definition at line 315 of file write/ROBFragment.h.
Referenced by eformat::write::ROSFragment::append(), and ROBFragment().
|
inline |
Changes the source identifier for both the ROB and the ROD fragments
s | The new value to set |
Definition at line 225 of file write/ROBFragment.h.
Referenced by eformat::write::ROSFragment::append().
|
inline |
Returns the source identifier for both the ROB and the ROD fragments
Definition at line 231 of file write/ROBFragment.h.
Referenced by operator=(), and ROBFragment().
void eformat::write::ROBFragment::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 ROD fragment supposed to have. |
status | A pointer to n pre-allocated words |
Definition at line 225 of file ROBFragment.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 141 of file write/ROBFragment.h.
void eformat::write::ROBFragment::status_position | ( | uint32_t | v | ) |
Changes the order of the status and data blocks in the ROD fragment
s | The new value. If v is zero, the status will preceed the data, while the contrary will happen if v equals 1. |
Definition at line 248 of file ROBFragment.cxx.
|
inline |
Returns the current status position
Definition at line 189 of file write/ROBFragment.h.
Referenced by ROBFragment().