eformat::write::FullEventFragment Class Reference

#include <FullEventFragment.h>

List of all members.

Public Member Functions

 FullEventFragment (uint32_t source_id, uint32_t global_id, uint32_t run_no, uint32_t lvl1_id, uint32_t lvl1_type, uint32_t lvl2_info, const uint32_t *ef_info)
 FullEventFragment (uint32_t source_id, uint32_t use_time, uint32_t global_id, uint32_t run_no, uint32_t lvl1_id, uint32_t lvl1_type, uint32_t lvl2_info, const uint32_t *ef_info)
 FullEventFragment (uint32_t *fe)
 FullEventFragment (eformat::write::node_t *fe)
 FullEventFragment ()
 FullEventFragment (const FullEventFragment &other)
virtual ~FullEventFragment ()
FullEventFragmentoperator= (const FullEventFragment &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 time (uint32_t s)
uint32_t time (void) const
void global_id (uint32_t s)
uint32_t global_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 lvl1_trigger_type (uint32_t s)
uint32_t lvl1_trigger_type (void) const
void lvl2_trigger_info (uint32_t s)
uint32_t lvl2_trigger_info (void) const
void event_filter_info (const uint32_t *s)
const uint32_t * event_filter_info (void) const
uint32_t meta_size_word (void) const
uint32_t size_word (void) const
void append (eformat::write::SubDetectorFragment *sd)
const SubDetectorFragmentfirst_child (void) const
void size_change (uint32_t o, uint32_t n)
uint32_t page_count (void) const
const eformat::write::node_tbind (void)
const eformat::write::node_trebind (void)

Private Attributes

uint32_t m_header [17]
 The FullEvent Header.
eformat::write::node_t m_node [3]
 Node representation.
eformat::write::SubDetectorFragmentm_child
 my children
eformat::write::SubDetectorFragmentm_last
 my last child
eformat::write::node_t m_extra
 Extra pages I may have.
uint32_t m_extra_count
 How many extra pages I have.


Detailed Description

Defines a helper class to aid the creation of FullEvent fragments.

Definition at line 26 of file FullEventFragment.h.


Constructor & Destructor Documentation

eformat::write::FullEventFragment::FullEventFragment ( uint32_t  source_id,
uint32_t  global_id,
uint32_t  run_no,
uint32_t  lvl1_id,
uint32_t  lvl1_type,
uint32_t  lvl2_info,
const uint32_t *  ef_info 
)

Builds a new FullEvent fragment from scratch, using the current time as the time label.

Parameters:
source_id The source identifier to be using for this FullEvent
global_id The global identifier for this fragment
run_no The run number for this fragment
lvl1_id The LVL1 trigger identifier for this fragment
lvl1_type The LVL1 trigger type for this fragment
lvl2_info The LVL2 trigger info for this fragment ef_info The Event Filter info for this fragment: a pointer to 4 pre-allocated words.

Definition at line 55 of file FullEventFragment.cxx.

References eformat::DEFAULT_STATUS, eformat::DEFAULT_VERSION, ERS_DEBUG_3, eformat::FULL_EVENT, and eformat::write::set().

00058   : m_child(0),
00059     m_last(0),
00060     m_extra_count(0)
00061 {
00062   m_header[0] = eformat::FULL_EVENT; //marker
00063   m_header[1] = 18; //this header size + status size
00064   m_header[2] = 18; //this header size + status size
00065   m_header[3] = eformat::DEFAULT_VERSION; //format version
00066   m_header[4] = source_id;
00067   m_header[5] = 1; //number of status
00068   m_header[6] = 10; //number of fragment specific
00069   m_header[7] = std::time(0);
00070   m_header[8] = global_id;
00071   m_header[9] = run_no;
00072   m_header[10] = lvl1_id;
00073   m_header[11] = lvl1_type;
00074   m_header[12] = lvl2_info;
00075   memcpy(&m_header[13], ef_info, 4*sizeof(uint32_t));
00076 
00077   //now initialize pages
00078   set(m_node[0], m_header, 6, &m_node[1]);
00079   set(m_node[1], &eformat::DEFAULT_STATUS, 1, &m_node[2]);
00080   set(m_node[2], &m_header[6], 11, 0);
00081   ERS_DEBUG_3("%s Source Id. = 0x%x, LVL1 Id. = %d and Run Number = %d", 
00082               "Built (write) full event from scratch, with",
00083               FullEventFragment::source_id(), FullEventFragment::lvl1_id(), 
00084               FullEventFragment::run_no());
00085 }

eformat::write::FullEventFragment::FullEventFragment ( uint32_t  source_id,
uint32_t  use_time,
uint32_t  global_id,
uint32_t  run_no,
uint32_t  lvl1_id,
uint32_t  lvl1_type,
uint32_t  lvl2_info,
const uint32_t *  ef_info 
)

Builds a new FullEvent fragment from scratch

Parameters:
source_id The source identifier to be using for this FullEvent
use_time The creation time in seconds since 1/1/1970 00:00 UTC for this fragment
global_id The global identifier for this fragment
run_no The run number for this fragment
lvl1_id The LVL1 trigger identifier for this fragment
lvl1_type The LVL1 trigger type for this fragment
lvl2_info The LVL2 trigger info for this fragment ef_info The Event Filter info for this fragment: a pointer to 4 pre-allocated words.

Definition at line 21 of file FullEventFragment.cxx.

References eformat::DEFAULT_STATUS, eformat::DEFAULT_VERSION, ERS_DEBUG_3, eformat::FULL_EVENT, and eformat::write::set().

00025   : m_child(0),
00026     m_last(0),
00027     m_extra_count(0)
00028 {
00029   m_header[0] = eformat::FULL_EVENT; //marker
00030   m_header[1] = 18; //this header size + status size
00031   m_header[2] = 18; //this header size + status size
00032   m_header[3] = eformat::DEFAULT_VERSION; //format version
00033   m_header[4] = source_id;
00034   m_header[5] = 1; //number of status
00035   m_header[6] = 10; //number of fragment specific
00036   m_header[7] = use_time;
00037   m_header[8] = global_id;
00038   m_header[9] = run_no;
00039   m_header[10] = lvl1_id;
00040   m_header[11] = lvl1_type;
00041   m_header[12] = lvl2_info;
00042   memcpy(&m_header[13], ef_info, 4*sizeof(uint32_t));
00043 
00044   //now initialize pages
00045   set(m_node[0], m_header, 6, &m_node[1]);
00046   set(m_node[1], &eformat::DEFAULT_STATUS, 1, &m_node[2]);
00047   set(m_node[2], &m_header[6], 11, 0);
00048   ERS_DEBUG_3("%s Source Id. = 0x%x, LVL1 Id. = %d and Run Number = %d", 
00049               "Built (write) full event from scratch, with",
00050               FullEventFragment::source_id(), FullEventFragment::lvl1_id(), 
00051               FullEventFragment::run_no());
00052 }

eformat::write::FullEventFragment::FullEventFragment ( uint32_t *  fe  ) 

Builds a new FullEvent fragment from an existing FullEvent fragment in contiguous memory.

Parameters:
fe The existing FullEvent fragment

Definition at line 87 of file FullEventFragment.cxx.

References ERS_DEBUG_3, lvl1_id(), m_extra, m_extra_count, m_node, run_no(), eformat::write::set(), and source_id().

00088   : m_child(0),
00089     m_last(0),
00090     m_extra_count(0)
00091 {
00092   //now initialize pages
00093   set(m_node[0], fe, 6, &m_node[1]);
00094   set(m_node[1], &fe[6], fe[5], &m_node[2]);
00095   set(m_node[2], &fe[6+fe[5]], 11, 0);
00096   eformat::write::set(m_extra, &fe[17+fe[5]], fe[1]-fe[2], 0);
00097   ++m_extra_count;
00098   ERS_DEBUG_3("%s Source Id. = 0x%x, LVL1 Id. = %d and Run Number = %d", 
00099               "Built (write) full event from contiguos memory, with",
00100               source_id(), lvl1_id(), run_no());
00101 }

eformat::write::FullEventFragment::FullEventFragment ( eformat::write::node_t fe  ) 

Builds a new FullEvent fragment from an existing FullEvent 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.

Parameters:
fe The existing FullEvent fragment, as a list of nodes, pre-concatenated by the caller.

Definition at line 104 of file FullEventFragment.cxx.

References eformat::write::node_t::base, eformat::write::count(), ERS_DEBUG_3, eformat::write::node_t::next, eformat::write::set(), and eformat::write::node_t::size_word.

00105   : m_child(0),
00106     m_last(0),
00107     m_extra_count(0)
00108 {
00109   //now initialize pages
00110   set(m_node[0], fe->base, 6, &m_node[1]);
00111   set(m_node[1], &fe->base[6], fe->base[5], &m_node[2]);
00112   set(m_node[2], &fe->base[6+fe->base[5]], 11, 0);
00113   eformat::write::set(m_extra, &fe->base[17+fe->base[5]],
00114                       fe->size_word - fe->base[2], fe->next);
00115   m_extra_count += eformat::write::count(m_extra);
00116   ERS_DEBUG_3("%s Source Id. = 0x%x, LVL1 Id. = %d and Run Number = %d",
00117               "Built (write) full event from paged memory, with",
00118               source_id(), lvl1_id(), run_no());
00119 }

eformat::write::FullEventFragment::FullEventFragment (  ) 

Builds a new empty FullEventFragment, otherwise invalid. This is useful for array builds and standard containers.

Definition at line 121 of file FullEventFragment.cxx.

References eformat::DEFAULT_STATUS, eformat::DEFAULT_VERSION, ERS_DEBUG_3, eformat::FULL_EVENT, lvl1_id(), m_header, m_node, run_no(), eformat::write::set(), and source_id().

00122   : m_child(0),
00123     m_last(0),
00124     m_extra_count(0)
00125 {
00126   m_header[0] = eformat::FULL_EVENT; //marker
00127   m_header[1] = 18; //this header size + status size
00128   m_header[2] = 18; //this header size + status size
00129   m_header[3] = eformat::DEFAULT_VERSION; //format version
00130   m_header[4] = 0; //source identifier
00131   m_header[5] = 1; //number of status
00132   m_header[6] = 10; //number of fragment specific
00133   m_header[7] = std::time(0);
00134   m_header[8] = 0; //global identifier
00135   m_header[9] = 0; //run number
00136   m_header[10] = 0; //LVL1 identifier
00137   m_header[11] = 0; //LVL1 type
00138   m_header[12] = 0; //LVL2 info
00139   m_header[13] = 0; //EF info [0]
00140   m_header[14] = 0; //EF info [1]
00141   m_header[15] = 0; //EF info [2]
00142   m_header[16] = 0; //EF info [3]
00143 
00144   //now initialize pages
00145   set(m_node[0], m_header, 6, &m_node[1]);
00146   set(m_node[1], &eformat::DEFAULT_STATUS, 1, &m_node[2]);
00147   set(m_node[2], &m_header[6], 11, 0);
00148   ERS_DEBUG_3("%s Source Id. = 0x%x, LVL1 Id. = %d and Run Number = %d", 
00149               "Built empty (write) full event from scratch, with",
00150               FullEventFragment::source_id(), FullEventFragment::lvl1_id(), 
00151               FullEventFragment::run_no());
00152 }

eformat::write::FullEventFragment::FullEventFragment ( const FullEventFragment other  ) 

Copy constructor. This will only copy the meta data, not the fragment relationships and block-data (children and status block) contained in the to-be-copied fragment. If you wish this fragment has the same 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.

Parameters:
other The other fragment to take the meta data from.

Definition at line 155 of file FullEventFragment.cxx.

References ERS_DEBUG_3, lvl1_id(), EvtCyclic3::other(), run_no(), and source_id().

00156   : m_child(0),
00157     m_last(0),
00158     m_extra_count(0)
00159 {
00160   *this = other;
00161   ERS_DEBUG_3("%s Source Id. = 0x%x, LVL1 Id. = %d and Run Number = %d", 
00162               "Built (write) full event from copy, with",
00163               FullEventFragment::source_id(), FullEventFragment::lvl1_id(), 
00164               FullEventFragment::run_no());
00165 }

virtual eformat::write::FullEventFragment::~FullEventFragment (  )  [inline, virtual]

Base destructor

Definition at line 111 of file FullEventFragment.h.

00111 {}


Member Function Documentation

void eformat::write::FullEventFragment::append ( eformat::write::SubDetectorFragment sd  ) 

Appends a new SubDetector fragment to this FullEvent fragment.

Warning:
This will change the page structure of the last ROS fragment inserted here, in order to concatenate the ROS fragments together. Please note that this operation is not compatible with multiple threads of operation, if you would like to share eformat::write::Fragment's between threads. A better strategy would be create, for every thread of operation, a proper ROSFragment instead.
Parameters:
sd The SubDetector fragment to be appended to myself

Definition at line 201 of file FullEventFragment.cxx.

References ERS_DEBUG_3, eformat::write::SubDetectorFragment::parent(), eformat::write::SubDetectorFragment::size_word(), and eformat::write::SubDetectorFragment::source_id().

Referenced by Builder::append2event().

00202 {
00203   ERS_DEBUG_3("%s Source Id. = 0x%x to full event with Source Id. = 0x%x", 
00204               "Appending subdetector with",
00205               sd->source_id(), source_id());
00206   sd->parent(this);
00207   m_node[0].base[1] += sd->size_word();
00208 
00209   //adjust `m_last' and `m_child' to point to the new last ROB
00210   if (m_last) m_last->next(sd);
00211   else m_child = sd;
00212   m_last = sd;
00213 }

const eformat::write::node_t * eformat::write::FullEventFragment::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 224 of file FullEventFragment.cxx.

References m_child, m_extra, m_extra_count, m_node, and eformat::write::node_t::next.

Referenced by RawDataOutputSvc::putEvent().

00225 {
00226   //the header is already concatenated by construction
00227   eformat::write::node_t* last = &m_node[2];
00228   if (m_extra_count) {
00229     last = &m_extra;
00230     while (last->next) last = last->next;
00231   }
00232   for (SubDetectorFragment* curr = m_child; curr; 
00233        curr = const_cast<SubDetectorFragment*>(curr->next())) {
00234     last->next = const_cast<eformat::write::node_t*>(curr->bind());
00235     while (last->next) last = last->next; //advance until end
00236   }
00237   return m_node;
00238 }

const uint32_t* eformat::write::FullEventFragment::event_filter_info ( void   )  const [inline]

Returns the event filter trigger info for this fragment

Definition at line 269 of file FullEventFragment.h.

References eformat::write::node_t::base, and m_node.

00270       { return &m_node[2].base[7]; }

void eformat::write::FullEventFragment::event_filter_info ( const uint32_t *  s  )  [inline]

Changes the event filter trigger info in this fragment

Parameters:
s The new value to set: a pointer with 4 word pre-allocated

Definition at line 263 of file FullEventFragment.h.

References m_node.

Referenced by HltBuilder::pack().

00264       { memcpy(&m_node[2].base[7], s, 4*sizeof(uint32_t)); }

const SubDetectorFragment* eformat::write::FullEventFragment::first_child ( void   )  const [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 306 of file FullEventFragment.h.

References m_child.

Referenced by PackedRawDataCnvSvc::commitOutput().

00307       { return m_child; }

uint32_t eformat::write::FullEventFragment::global_id ( void   )  const [inline]

Returns the global identifier for this event

Definition at line 199 of file FullEventFragment.h.

References eformat::write::node_t::base, and m_node.

00200       { return m_node[2].base[2]; }

void eformat::write::FullEventFragment::global_id ( uint32_t  s  )  [inline]

Changes the global identifier for this event

Parameters:
s The new value to set

Definition at line 193 of file FullEventFragment.h.

References eformat::write::node_t::base, and m_node.

00194       { m_node[2].base[2] = s; }

uint32_t eformat::write::FullEventFragment::lvl1_id ( void   )  const [inline]

Returns the lvl1 identifier for this fragment

Definition at line 227 of file FullEventFragment.h.

References eformat::write::node_t::base, and m_node.

Referenced by FullEventFragment(), and operator=().

00228       { return m_node[2].base[4]; }

void eformat::write::FullEventFragment::lvl1_id ( uint32_t  s  )  [inline]

Changes the lvl1 identifier in this fragment

Parameters:
s The new value to set

Definition at line 221 of file FullEventFragment.h.

References eformat::write::node_t::base, and m_node.

Referenced by Builder::append2event().

00222       { m_node[2].base[4] = s; }

uint32_t eformat::write::FullEventFragment::lvl1_trigger_type ( void   )  const [inline]

Returns the lvl1 trigger type for this fragment

Definition at line 241 of file FullEventFragment.h.

References eformat::write::node_t::base, and m_node.

00242       { return m_node[2].base[5]; }

void eformat::write::FullEventFragment::lvl1_trigger_type ( uint32_t  s  )  [inline]

Changes the lvl1 trigger type in this fragment

Parameters:
s The new value to set

Definition at line 235 of file FullEventFragment.h.

References eformat::write::node_t::base, and m_node.

00236       { m_node[2].base[5] = s; }

uint32_t eformat::write::FullEventFragment::lvl2_trigger_info ( void   )  const [inline]

Returns the lvl2 trigger info for this fragment

Definition at line 255 of file FullEventFragment.h.

References eformat::write::node_t::base, and m_node.

00256       { return m_node[2].base[6]; }

void eformat::write::FullEventFragment::lvl2_trigger_info ( uint32_t  s  )  [inline]

Changes the lvl2 trigger info in this fragment

Parameters:
s The new value to set

Definition at line 249 of file FullEventFragment.h.

References eformat::write::node_t::base, and m_node.

00250       { m_node[2].base[6] = s; }

uint32_t eformat::write::FullEventFragment::meta_size_word ( void   )  const [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 277 of file FullEventFragment.h.

References eformat::write::node_t::base, and m_node.

00278       { return m_node[0].base[2]; }

uint16_t eformat::write::FullEventFragment::minor_version ( void   )  const [inline]

Returns the minor version number of the fragment

Definition at line 157 of file FullEventFragment.h.

References eformat::write::node_t::base, and m_node.

00158       { return 0xffff & m_node[0].base[3]; }

void eformat::write::FullEventFragment::minor_version ( uint16_t  v  )  [inline]

Changes the minor version number of the fragment

Parameters:
v The new minor version for this header

Definition at line 151 of file FullEventFragment.h.

References eformat::write::node_t::base, eformat::DEFAULT_VERSION, and m_node.

00152       { m_node[0].base[3] = eformat::DEFAULT_VERSION | v; }

uint32_t eformat::write::FullEventFragment::nstatus ( void   )  const [inline]

Returns the number of status wors in this fragment

Definition at line 139 of file FullEventFragment.h.

References eformat::write::node_t::base, and m_node.

00139 { return m_node[0].base[5]; }

eformat::write::FullEventFragment & eformat::write::FullEventFragment::operator= ( const FullEventFragment 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.

Parameters:
other The other fragment to take the meta data from.

Definition at line 169 of file FullEventFragment.cxx.

References ERS_DEBUG_3, lvl1_id(), EvtCyclic3::other(), run_no(), eformat::write::set(), and source_id().

00170 {
00171   memcpy(reinterpret_cast<void*>(m_header),
00172          reinterpret_cast<const void*>(other.m_node[0].base), 
00173          6*sizeof(uint32_t));
00174   memcpy(reinterpret_cast<void*>(m_header+6),
00175          reinterpret_cast<const void*>(other.m_node[2].base),
00176          11*sizeof(uint32_t));
00177   
00178   //now initialize pages
00179   set(m_node[0], m_header, 6, &m_node[1]);
00180   set(m_node[1], other.m_node[1].base, other.m_node[1].size_word, &m_node[2]);
00181   set(m_node[2], &m_header[6], 11, 0);
00182   ERS_DEBUG_3("%s Source Id. = 0x%x, LVL1 Id. = %d and Run Number = %d", 
00183               "Copied (write) full event, with",
00184               FullEventFragment::source_id(), FullEventFragment::lvl1_id(), 
00185               FullEventFragment::run_no());
00186   return *this;
00187 }

uint32_t eformat::write::FullEventFragment::page_count ( void   )  const

Returns the total number of (raw memory) pages this fragment is composed of.

Warning:
This operation navigates at a potentially large list of child page nodes (for a full ATLAS event this should be bigger than 2,000 pages when built from scratch). If you don't do your bookkeeping, avoid calling this too often.

Definition at line 215 of file FullEventFragment.cxx.

References m_child, m_extra_count, and eformat::write::SubDetectorFragment::next().

00216 {
00217   uint32_t retval = 3 + m_extra_count;
00218   for (const SubDetectorFragment* curr = m_child; curr; curr = curr->next())
00219     retval += curr->page_count();
00220   return retval;
00221 }

const eformat::write::node_t* eformat::write::FullEventFragment::rebind ( void   )  [inline]

Definition at line 337 of file FullEventFragment.h.

References m_node.

00337 {return m_node;};

uint32_t eformat::write::FullEventFragment::run_no ( void   )  const [inline]

Returns the run number for this fragment

Definition at line 213 of file FullEventFragment.h.

References eformat::write::node_t::base, and m_node.

Referenced by FullEventFragment(), and operator=().

00214       { return m_node[2].base[3]; }

void eformat::write::FullEventFragment::run_no ( uint32_t  s  )  [inline]

Changes the run number

Parameters:
s The new value to set

Definition at line 207 of file FullEventFragment.h.

References eformat::write::node_t::base, and m_node.

Referenced by Builder::append2event().

00208       { m_node[2].base[3] = s; }

void eformat::write::FullEventFragment::size_change ( uint32_t  o,
uint32_t  n 
) [inline]

This method is used by children of this fragment to notify fragment size changes.

Parameters:
o The old size, in 32-bit words
n The new size, in 32-bit words

Definition at line 316 of file FullEventFragment.h.

References eformat::write::node_t::base, and m_node.

Referenced by eformat::write::SubDetectorFragment::size_change().

00317       { m_node[0].base[1] -= o; m_node[0].base[1] += n; }

uint32_t eformat::write::FullEventFragment::size_word ( void   )  const [inline]

Returns the total size for this fragment, in words

Definition at line 283 of file FullEventFragment.h.

References eformat::write::node_t::base, and m_node.

Referenced by PackedRawDataCnvSvc::commitOutput().

00284       { return m_node[0].base[1]; }

uint32_t eformat::write::FullEventFragment::source_id ( void   )  const [inline]

Returns the source identifier of this fragment

Definition at line 171 of file FullEventFragment.h.

References eformat::write::node_t::base, and m_node.

Referenced by FullEventFragment(), and operator=().

00172       { return m_node[0].base[4]; }

void eformat::write::FullEventFragment::source_id ( uint32_t  s  )  [inline]

Changes the source identifier for this fragment

Parameters:
s The new value to set

Definition at line 165 of file FullEventFragment.h.

References eformat::write::node_t::base, and m_node.

00166       { m_node[0].base[4] = s; }

const uint32_t* eformat::write::FullEventFragment::status ( void   )  const [inline]

Returns a pointer to the first status word to be used by this fragment

Definition at line 144 of file FullEventFragment.h.

References eformat::write::node_t::base, and m_node.

00144 { return m_node[1].base; }

void eformat::write::FullEventFragment::status ( uint32_t  n,
const uint32_t *  status 
)

Changes the number of status words and the status words themselves from the fragment

Parameters:
n How many status words the underlying FullEventFragment fragment supposed to have.
status A pointer to n pre-allocated words

Definition at line 190 of file FullEventFragment.cxx.

Referenced by PackedRawDataCnvSvc::connectOutput().

00191 { 
00192   m_node[0].base[1] -= m_node[0].base[5]; //remove count from previous status
00193   m_node[0].base[2] -= m_node[0].base[5]; //remove count from previous status
00194   m_node[1].size_word = m_node[0].base[5] = n; //set new values
00195   m_node[0].base[1] += n;
00196   m_node[0].base[2] += n;
00197   m_node[1].base = const_cast<uint32_t*>(status);
00198 }

uint32_t eformat::write::FullEventFragment::time ( void   )  const [inline]

Returns the time for this fragment

Definition at line 185 of file FullEventFragment.h.

References eformat::write::node_t::base, and m_node.

00186       { return m_node[2].base[1]; }

void eformat::write::FullEventFragment::time ( uint32_t  s  )  [inline]

Changes the time this fragment was produced at

Parameters:
s The new value to set

Definition at line 179 of file FullEventFragment.h.

References eformat::write::node_t::base, and m_node.

00180       { m_node[2].base[1] = s; }


Member Data Documentation

eformat::write::SubDetectorFragment* eformat::write::FullEventFragment::m_child [private]

my children

Definition at line 342 of file FullEventFragment.h.

Referenced by bind(), first_child(), and page_count().

eformat::write::node_t eformat::write::FullEventFragment::m_extra [private]

Extra pages I may have.

Definition at line 344 of file FullEventFragment.h.

Referenced by bind(), and FullEventFragment().

uint32_t eformat::write::FullEventFragment::m_extra_count [private]

How many extra pages I have.

Definition at line 345 of file FullEventFragment.h.

Referenced by bind(), FullEventFragment(), and page_count().

uint32_t eformat::write::FullEventFragment::m_header[17] [private]

The FullEvent Header.

Definition at line 337 of file FullEventFragment.h.

Referenced by FullEventFragment().

eformat::write::SubDetectorFragment* eformat::write::FullEventFragment::m_last [private]

my last child

Definition at line 343 of file FullEventFragment.h.

eformat::write::node_t eformat::write::FullEventFragment::m_node[3] [private]

Node representation.

Definition at line 341 of file FullEventFragment.h.

Referenced by bind(), event_filter_info(), FullEventFragment(), global_id(), lvl1_id(), lvl1_trigger_type(), lvl2_trigger_info(), meta_size_word(), minor_version(), nstatus(), rebind(), run_no(), size_change(), size_word(), source_id(), status(), and time().


Generated on Tue Nov 29 23:36:30 2016 for BOSS_7.0.2 by  doxygen 1.4.7