Jpp
Public Types | Public Member Functions | Public Attributes | Protected Member Functions | Friends | List of all members
KM3NETDAQ::JDAQFrame Class Reference

Data frame. More...

#include <JDAQFrame.hh>

Inheritance diagram for KM3NETDAQ::JDAQFrame:
KM3NETDAQ::JDAQSuperFrame

Public Types

typedef JDAQHititerator
 
typedef std::reverse_iterator< const_iteratorconst_reverse_iterator
 
typedef std::reverse_iterator< iteratorreverse_iterator
 

Public Member Functions

 JDAQFrame ()
 Default constructor. More...
 
 JDAQFrame (const JDAQFrame &frame)
 Copy constructor. More...
 
 JDAQFrame (const int number_of_hits, const JDAQHit *data)
 Constructor. More...
 
virtual ~JDAQFrame ()
 Destructor. More...
 
void clear ()
 Clear data. More...
 
const_iterator begin () const
 
const_iterator end () const
 
iterator begin ()
 
iterator end ()
 
const_reverse_iterator rbegin () const
 
const_reverse_iterator rend () const
 
reverse_iterator rbegin ()
 
reverse_iterator rend ()
 
bool empty () const
 
int size () const
 
const JDAQHitdata () const
 
JDAQHitdata ()
 
const JDAQHitoperator[] (int index) const
 Get hit at given index. More...
 
JDAQFrameSubset subset (const int i1, const int i2) const
 Get subset of data. More...
 
JDAQFrameadd (const JDAQFrame &frame)
 Add data. More...
 
JDAQFrameadd (const int number_of_hits, const JDAQHit *data)
 Add data. More...
 
void swap (JDAQFrame &frame)
 Swap data. More...
 
 ClassDef (JDAQFrame, 1)
 

Public Attributes

const typedef JDAQHitconst_iterator
 
int numberOfHits
 
JDAQHitbuffer
 

Protected Member Functions

void resize (const int number_of_hits)
 Resize internal buffer. More...
 

Friends

JReaderoperator>> (JReader &in, JDAQFrame &frame)
 Read DAQ frame from input. More...
 
JWriteroperator<< (JWriter &out, const JDAQFrame &frame)
 Write DAQ frame to output. More...
 

Detailed Description

Data frame.

Definition at line 70 of file JDAQFrame.hh.

Member Typedef Documentation

◆ iterator

Definition at line 75 of file JDAQFrame.hh.

◆ const_reverse_iterator

Definition at line 76 of file JDAQFrame.hh.

◆ reverse_iterator

typedef std::reverse_iterator<iterator> KM3NETDAQ::JDAQFrame::reverse_iterator

Definition at line 77 of file JDAQFrame.hh.

Constructor & Destructor Documentation

◆ JDAQFrame() [1/3]

KM3NETDAQ::JDAQFrame::JDAQFrame ( )
inline

Default constructor.

Definition at line 83 of file JDAQFrame.hh.

83  :
84  numberOfHits(0),
85  buffer(NULL)
86  {}

◆ JDAQFrame() [2/3]

KM3NETDAQ::JDAQFrame::JDAQFrame ( const JDAQFrame frame)
inline

Copy constructor.

Parameters
frameJDAQ frame

Definition at line 94 of file JDAQFrame.hh.

94  :
95  numberOfHits(0),
96  buffer(NULL)
97  {
98  add(frame);
99  }

◆ JDAQFrame() [3/3]

KM3NETDAQ::JDAQFrame::JDAQFrame ( const int  number_of_hits,
const JDAQHit data 
)
inline

Constructor.

Parameters
number_of_hitsnumber of hits
datapointer to data

Definition at line 108 of file JDAQFrame.hh.

108  :
109  numberOfHits(0),
110  buffer(NULL)
111  {
112  add(number_of_hits, data);
113  }

◆ ~JDAQFrame()

virtual KM3NETDAQ::JDAQFrame::~JDAQFrame ( )
inlinevirtual

Destructor.

Definition at line 119 of file JDAQFrame.hh.

120  {
121  clear();
122  }

Member Function Documentation

◆ clear()

void KM3NETDAQ::JDAQFrame::clear ( )
inline

Clear data.

Definition at line 128 of file JDAQFrame.hh.

129  {
130  if (buffer != NULL) {
131  free(buffer);
132  }
133 
134  numberOfHits = 0;
135  buffer = NULL;
136  }

◆ begin() [1/2]

const_iterator KM3NETDAQ::JDAQFrame::begin ( ) const
inline

Definition at line 139 of file JDAQFrame.hh.

139 { return buffer; }

◆ end() [1/2]

const_iterator KM3NETDAQ::JDAQFrame::end ( ) const
inline

Definition at line 140 of file JDAQFrame.hh.

140 { return buffer + numberOfHits; }

◆ begin() [2/2]

iterator KM3NETDAQ::JDAQFrame::begin ( )
inline

Definition at line 143 of file JDAQFrame.hh.

143 { return buffer; }

◆ end() [2/2]

iterator KM3NETDAQ::JDAQFrame::end ( )
inline

Definition at line 144 of file JDAQFrame.hh.

144 { return buffer + numberOfHits; }

◆ rbegin() [1/2]

const_reverse_iterator KM3NETDAQ::JDAQFrame::rbegin ( ) const
inline

Definition at line 147 of file JDAQFrame.hh.

147 { return const_reverse_iterator(end()); }

◆ rend() [1/2]

const_reverse_iterator KM3NETDAQ::JDAQFrame::rend ( ) const
inline

Definition at line 148 of file JDAQFrame.hh.

148 { return const_reverse_iterator(begin()); }

◆ rbegin() [2/2]

reverse_iterator KM3NETDAQ::JDAQFrame::rbegin ( )
inline

Definition at line 151 of file JDAQFrame.hh.

151 { return reverse_iterator(end()); }

◆ rend() [2/2]

reverse_iterator KM3NETDAQ::JDAQFrame::rend ( )
inline

Definition at line 152 of file JDAQFrame.hh.

152 { return reverse_iterator(begin()); }

◆ empty()

bool KM3NETDAQ::JDAQFrame::empty ( ) const
inline

Definition at line 155 of file JDAQFrame.hh.

155 { return numberOfHits == 0; }

◆ size()

int KM3NETDAQ::JDAQFrame::size ( ) const
inline

Definition at line 157 of file JDAQFrame.hh.

157 { return numberOfHits; }

◆ data() [1/2]

const JDAQHit* KM3NETDAQ::JDAQFrame::data ( ) const
inline

Definition at line 159 of file JDAQFrame.hh.

159 { return buffer; }

◆ data() [2/2]

JDAQHit* KM3NETDAQ::JDAQFrame::data ( )
inline

Definition at line 160 of file JDAQFrame.hh.

160 { return buffer; }

◆ operator[]()

const JDAQHit& KM3NETDAQ::JDAQFrame::operator[] ( int  index) const
inline

Get hit at given index.

Parameters
indexindex
Returns
hit

Definition at line 169 of file JDAQFrame.hh.

170  {
171  return buffer[index];
172  }

◆ subset()

JDAQFrameSubset KM3NETDAQ::JDAQFrame::subset ( const int  i1,
const int  i2 
) const
inline

Get subset of data.

Parameters
i1first index of hit (included)
i2last index of hit (excluded)
Returns
JDAQ frame

Definition at line 181 of file JDAQFrame.hh.

182  {
183  return JDAQFrameSubset(i2 - i1, buffer + i1);
184  }

◆ add() [1/2]

JDAQFrame& KM3NETDAQ::JDAQFrame::add ( const JDAQFrame frame)
inline

Add data.

Parameters
frameJDAQ frame
Returns
this JDAQ frame

Definition at line 193 of file JDAQFrame.hh.

194  {
195  return add(frame.numberOfHits, frame.buffer);
196  }

◆ add() [2/2]

JDAQFrame& KM3NETDAQ::JDAQFrame::add ( const int  number_of_hits,
const JDAQHit data 
)
inline

Add data.

Parameters
number_of_hitsnumber of hits
datapointer to data
Returns
this data frame

Definition at line 206 of file JDAQFrame.hh.

207  {
208  if (number_of_hits > 0) {
209 
210  resize(numberOfHits + number_of_hits);
211 
212  memcpy(buffer + numberOfHits - number_of_hits, data, number_of_hits * sizeof(JDAQHit));
213  }
214 
215  return *this;
216  }

◆ swap()

void KM3NETDAQ::JDAQFrame::swap ( JDAQFrame frame)
inline

Swap data.

Parameters
frameJDAQ frame

Definition at line 224 of file JDAQFrame.hh.

225  {
226  std::swap(numberOfHits, frame.numberOfHits);
227  std::swap(buffer, frame.buffer);
228  }

◆ ClassDef()

KM3NETDAQ::JDAQFrame::ClassDef ( JDAQFrame  ,
 
)

◆ resize()

void KM3NETDAQ::JDAQFrame::resize ( const int  number_of_hits)
inlineprotected

Resize internal buffer.

This method increases the size of the buffer if necessary. Otherwise, the current size is maintained.

Parameters
number_of_hitstotal number of hits to allocate

Definition at line 287 of file JDAQFrame.hh.

288  {
289  if (number_of_hits > numberOfHits) {
290 
291  const int number_of_bytes = number_of_hits * sizeof(JDAQHit);
292 
293  if (buffer == NULL)
294  buffer = (JDAQHit*) malloc(number_of_bytes);
295  else
296  buffer = (JDAQHit*) realloc(buffer, number_of_bytes);
297 
298  if (buffer == NULL)
299  throw JDAQException("JDAQFrame::resize(): Memory exception.");
300 
301  numberOfHits = number_of_hits;
302  }
303  }

Friends And Related Function Documentation

◆ operator>>

JReader& operator>> ( JReader in,
JDAQFrame frame 
)
friend

Read DAQ frame from input.

Parameters
inJReader
frameJDAQFrame
Returns
JReader

Definition at line 238 of file JDAQFrame.hh.

239  {
240  frame.clear();
241 
242  int number_of_hits;
243 
244  in >> number_of_hits;
245 
246  frame.resize(number_of_hits);
247 
248  in.read((char*) frame.buffer, frame.numberOfHits * sizeof(JDAQHit));
249 
250  return in;
251  }

◆ operator<<

JWriter& operator<< ( JWriter out,
const JDAQFrame frame 
)
friend

Write DAQ frame to output.

Parameters
outJWriter
frameJDAQFrame
Returns
JWriter

Definition at line 261 of file JDAQFrame.hh.

262  {
263  out << frame.numberOfHits;
264 
265  out.write((char*) frame.buffer, frame.numberOfHits * sizeof(JDAQHit));
266 
267  return out;
268  }

Member Data Documentation

◆ const_iterator

const typedef JDAQHit* KM3NETDAQ::JDAQFrame::const_iterator

Definition at line 74 of file JDAQFrame.hh.

◆ numberOfHits

int KM3NETDAQ::JDAQFrame::numberOfHits

Definition at line 271 of file JDAQFrame.hh.

◆ buffer

JDAQHit* KM3NETDAQ::JDAQFrame::buffer

Definition at line 272 of file JDAQFrame.hh.


The documentation for this class was generated from the following file:
KM3NETDAQ::JDAQFrame::add
JDAQFrame & add(const JDAQFrame &frame)
Add data.
Definition: JDAQFrame.hh:193
KM3NETDAQ::JDAQFrame::buffer
JDAQHit * buffer
Definition: JDAQFrame.hh:272
KM3NETDAQ::JDAQFrame::clear
void clear()
Clear data.
Definition: JDAQFrame.hh:128
KM3NETDAQ::JDAQFrame::data
const JDAQHit * data() const
Definition: JDAQFrame.hh:159
KM3NETDAQ::JDAQFrame::reverse_iterator
std::reverse_iterator< iterator > reverse_iterator
Definition: JDAQFrame.hh:77
KM3NETDAQ::JDAQFrame::numberOfHits
int numberOfHits
Definition: JDAQFrame.hh:271
KM3NETDAQ::JDAQFrame::resize
void resize(const int number_of_hits)
Resize internal buffer.
Definition: JDAQFrame.hh:287
KM3NETDAQ::JDAQFrame::begin
const_iterator begin() const
Definition: JDAQFrame.hh:139
KM3NETDAQ::JDAQFrame::const_reverse_iterator
std::reverse_iterator< const_iterator > const_reverse_iterator
Definition: JDAQFrame.hh:76
KM3NETDAQ::JDAQFrame::end
const_iterator end() const
Definition: JDAQFrame.hh:140