Jpp
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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 const JDAQHitconst_iterator
 
typedef JDAQHititerator
 
typedef std::reverse_iterator
< const_iterator
const_reverse_iterator
 
typedef std::reverse_iterator
< iterator
reverse_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

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

Definition at line 74 of file JDAQFrame.hh.

Definition at line 75 of file JDAQFrame.hh.

Definition at line 76 of file JDAQFrame.hh.

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

Definition at line 77 of file JDAQFrame.hh.

Constructor & Destructor Documentation

KM3NETDAQ::JDAQFrame::JDAQFrame ( )
inline

Default constructor.

Definition at line 83 of file JDAQFrame.hh.

83  :
84  numberOfHits(0),
85  buffer(NULL)
86  {}
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 & add(const JDAQFrame &frame)
Add data.
Definition: JDAQFrame.hh:193
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  }
const JDAQHit * data() const
Definition: JDAQFrame.hh:159
JDAQFrame & add(const JDAQFrame &frame)
Add data.
Definition: JDAQFrame.hh:193
virtual KM3NETDAQ::JDAQFrame::~JDAQFrame ( )
inlinevirtual

Destructor.

Definition at line 119 of file JDAQFrame.hh.

120  {
121  clear();
122  }
void clear()
Clear data.
Definition: JDAQFrame.hh:128

Member Function Documentation

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  }
const_iterator KM3NETDAQ::JDAQFrame::begin ( ) const
inline

Definition at line 139 of file JDAQFrame.hh.

139 { return buffer; }
const_iterator KM3NETDAQ::JDAQFrame::end ( ) const
inline

Definition at line 140 of file JDAQFrame.hh.

140 { return buffer + numberOfHits; }
iterator KM3NETDAQ::JDAQFrame::begin ( )
inline

Definition at line 143 of file JDAQFrame.hh.

143 { return buffer; }
iterator KM3NETDAQ::JDAQFrame::end ( )
inline

Definition at line 144 of file JDAQFrame.hh.

144 { return buffer + numberOfHits; }
const_reverse_iterator KM3NETDAQ::JDAQFrame::rbegin ( ) const
inline

Definition at line 147 of file JDAQFrame.hh.

147 { return const_reverse_iterator(end()); }
std::reverse_iterator< const_iterator > const_reverse_iterator
Definition: JDAQFrame.hh:76
const_iterator end() const
Definition: JDAQFrame.hh:140
const_reverse_iterator KM3NETDAQ::JDAQFrame::rend ( ) const
inline

Definition at line 148 of file JDAQFrame.hh.

148 { return const_reverse_iterator(begin()); }
std::reverse_iterator< const_iterator > const_reverse_iterator
Definition: JDAQFrame.hh:76
const_iterator begin() const
Definition: JDAQFrame.hh:139
reverse_iterator KM3NETDAQ::JDAQFrame::rbegin ( )
inline

Definition at line 151 of file JDAQFrame.hh.

151 { return reverse_iterator(end()); }
std::reverse_iterator< iterator > reverse_iterator
Definition: JDAQFrame.hh:77
const_iterator end() const
Definition: JDAQFrame.hh:140
reverse_iterator KM3NETDAQ::JDAQFrame::rend ( )
inline

Definition at line 152 of file JDAQFrame.hh.

152 { return reverse_iterator(begin()); }
std::reverse_iterator< iterator > reverse_iterator
Definition: JDAQFrame.hh:77
const_iterator begin() const
Definition: JDAQFrame.hh:139
bool KM3NETDAQ::JDAQFrame::empty ( ) const
inline

Definition at line 155 of file JDAQFrame.hh.

155 { return numberOfHits == 0; }
int KM3NETDAQ::JDAQFrame::size ( ) const
inline

Definition at line 157 of file JDAQFrame.hh.

157 { return numberOfHits; }
const JDAQHit* KM3NETDAQ::JDAQFrame::data ( ) const
inline

Definition at line 159 of file JDAQFrame.hh.

159 { return buffer; }
JDAQHit* KM3NETDAQ::JDAQFrame::data ( )
inline

Definition at line 160 of file JDAQFrame.hh.

160 { return buffer; }
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  }
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  }
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  }
JDAQFrame & add(const JDAQFrame &frame)
Add data.
Definition: JDAQFrame.hh:193
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  }
const JDAQHit * data() const
Definition: JDAQFrame.hh:159
void resize(const int number_of_hits)
Resize internal buffer.
Definition: JDAQFrame.hh:287
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  }
KM3NETDAQ::JDAQFrame::ClassDef ( JDAQFrame  ,
 
)
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

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  }
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

int KM3NETDAQ::JDAQFrame::numberOfHits

Definition at line 271 of file JDAQFrame.hh.

JDAQHit* KM3NETDAQ::JDAQFrame::buffer

Definition at line 272 of file JDAQFrame.hh.


The documentation for this class was generated from the following file: