35 set(m_node[0], m_header, 6, &m_node[1]);
37 set(m_node[2], &m_header[6], 1, 0);
39 "Built (write) subdetector from scratch, with",
59 set(m_node[0], m_header, 6, &m_node[1]);
61 set(m_node[2], &m_header[6], 1, 0);
63 "Built empty (write) subdetector from scratch, with",
75 set(m_node[0], sd, 6, &m_node[1]);
76 set(m_node[1], &sd[6], sd[5], &m_node[2]);
77 set(m_node[2], &sd[6+sd[5]], 1, &m_extra);
81 "Built (write) subdetector from contiguous memory, with",
94 set(m_node[0], sd->
base, 6, &m_node[1]);
95 set(m_node[1], &sd->
base[6], sd->
base[5], &m_node[2]);
96 set(m_node[2], &sd->
base[6+sd->
base[5]], 1, &m_extra);
101 "Built (write) subdetector from paged memory, with",
115 "Built (write) subdetector from copy, with",
120eformat::write::SubDetectorFragment::operator=
123 memcpy(
reinterpret_cast<void*
>(m_header),
124 reinterpret_cast<const void*
>(other.m_node[0].base),
126 m_header[6] = other.m_node[2].base[0];
129 set(m_node[0], m_header, 6, &m_node[1]);
130 set(m_node[1], other.m_node[1].base, other.m_node[1].size_word, &m_node[2]);
131 set(m_node[2], &m_header[6], 1, 0);
133 "Copied (write) subdetector with",
139(uint32_t n,
const uint32_t* status)
141 if (m_parent) m_parent->size_change(m_node[0].base[1],
142 m_node[0].base[1]-m_node[0].base[5]+n);
143 m_node[0].base[1] -= m_node[0].base[5];
144 m_node[0].base[2] -= m_node[0].base[5];
145 m_node[1].size_word = m_node[0].base[5] = n;
146 m_node[0].base[1] += n;
147 m_node[0].base[2] += n;
148 m_node[1].base =
const_cast<uint32_t*
>(status);
153 uint32_t old_size = m_node[0].base[1];
154 m_node[0].base[1] -= o;
155 m_node[0].base[1] += n;
156 if (m_parent) m_parent->size_change(old_size, m_node[0].base[1]);
162 ERS_DEBUG_3(
"%s Source Id. = 0x%x to subdetector with Source Id. = 0x%x",
163 "Appending ros fragment with",
166 uint32_t old_size = m_node[0].base[1];
170 if (m_last) m_last->next(ros);
175 if (m_parent) m_parent->
size_change(old_size, m_node[0].base[1]);
180 uint32_t retval = 3 + m_extra_count;
182 retval += curr->page_count();
193 while (last->
next) last = last->
next;
198 while (last->
next) last = last->
next;
A helper class to help the user to interpret the status information in the first status word and to c...
Helps the user to define and build a FullEvent fragment.
Helps the user to define and build a SubDetector fragment.