Jpp  master_rocky-40-g5f0272dcd
the software that should make you happy
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_iteratorconst_reverse_iterator
 
typedef std::reverse_iterator< iteratorreverse_iterator
 

Public Member Functions

 JDAQFrame ()
 Default constructor. More...
 
 JDAQFrame (const JDAQFrame &frame)
 Copy constructor. More...
 
 JDAQFrame (JDAQFrame &&frame)
 Move constructor. More...
 
 JDAQFrame (const int number_of_hits, const JDAQHit *data)
 Constructor. More...
 
virtual ~JDAQFrame ()
 Destructor. More...
 
JDAQFrameoperator= (const JDAQFrame &frame)
 Assignment operator. 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

size_t getSizeof (const JDAQFrame &)
 Get size of object. More...
 
JReaderoperator>> (JReader &, JDAQFrame &)
 Read DAQ frame from input. More...
 
JWriteroperator<< (JWriter &, const JDAQFrame &)
 Write DAQ frame to output. More...
 

Detailed Description

Data frame.

Definition at line 65 of file JDAQFrame.hh.

Member Typedef Documentation

◆ const_iterator

Definition at line 69 of file JDAQFrame.hh.

◆ iterator

Definition at line 70 of file JDAQFrame.hh.

◆ const_reverse_iterator

Definition at line 71 of file JDAQFrame.hh.

◆ reverse_iterator

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

Definition at line 72 of file JDAQFrame.hh.

Constructor & Destructor Documentation

◆ JDAQFrame() [1/4]

KM3NETDAQ::JDAQFrame::JDAQFrame ( )
inline

Default constructor.

Definition at line 81 of file JDAQFrame.hh.

81  :
82  numberOfHits(0),
83  buffer(NULL)
84  {}

◆ JDAQFrame() [2/4]

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

Copy constructor.

Parameters
frameframe

Definition at line 92 of file JDAQFrame.hh.

92  :
93  numberOfHits(0),
94  buffer(NULL)
95  {
96  add(frame);
97  }
JDAQFrame & add(const JDAQFrame &frame)
Add data.
Definition: JDAQFrame.hh:219

◆ JDAQFrame() [3/4]

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

Move constructor.

Parameters
frameframe

Definition at line 105 of file JDAQFrame.hh.

105  :
106  numberOfHits(frame.numberOfHits),
107  buffer (frame.buffer)
108  {
109  frame.numberOfHits = 0;
110  frame.buffer = NULL;
111  }

◆ JDAQFrame() [4/4]

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 120 of file JDAQFrame.hh.

120  :
121  numberOfHits(0),
122  buffer(NULL)
123  {
124  add(number_of_hits, data);
125  }
const JDAQHit * data() const
Definition: JDAQFrame.hh:185

◆ ~JDAQFrame()

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

Destructor.

Definition at line 131 of file JDAQFrame.hh.

132  {
133  clear();
134  }
void clear()
Clear data.
Definition: JDAQFrame.hh:154

Member Function Documentation

◆ operator=()

JDAQFrame& KM3NETDAQ::JDAQFrame::operator= ( const JDAQFrame frame)
inline

Assignment operator.

Parameters
frameframe
Returns
this frame

Definition at line 143 of file JDAQFrame.hh.

144  {
145  add(frame);
146 
147  return *this;
148  }

◆ clear()

void KM3NETDAQ::JDAQFrame::clear ( )
inline

Clear data.

Definition at line 154 of file JDAQFrame.hh.

155  {
156  if (buffer != NULL) {
157  free(buffer);
158  }
159 
160  numberOfHits = 0;
161  buffer = NULL;
162  }

◆ begin() [1/2]

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

Definition at line 165 of file JDAQFrame.hh.

165 { return buffer; }

◆ end() [1/2]

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

Definition at line 166 of file JDAQFrame.hh.

166 { return buffer + numberOfHits; }

◆ begin() [2/2]

iterator KM3NETDAQ::JDAQFrame::begin ( )
inline

Definition at line 169 of file JDAQFrame.hh.

169 { return buffer; }

◆ end() [2/2]

iterator KM3NETDAQ::JDAQFrame::end ( )
inline

Definition at line 170 of file JDAQFrame.hh.

170 { return buffer + numberOfHits; }

◆ rbegin() [1/2]

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

Definition at line 173 of file JDAQFrame.hh.

173 { return const_reverse_iterator(end()); }
const_iterator end() const
Definition: JDAQFrame.hh:166
std::reverse_iterator< const_iterator > const_reverse_iterator
Definition: JDAQFrame.hh:71

◆ rend() [1/2]

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

Definition at line 174 of file JDAQFrame.hh.

174 { return const_reverse_iterator(begin()); }
const_iterator begin() const
Definition: JDAQFrame.hh:165

◆ rbegin() [2/2]

reverse_iterator KM3NETDAQ::JDAQFrame::rbegin ( )
inline

Definition at line 177 of file JDAQFrame.hh.

177 { return reverse_iterator(end()); }
std::reverse_iterator< iterator > reverse_iterator
Definition: JDAQFrame.hh:72

◆ rend() [2/2]

reverse_iterator KM3NETDAQ::JDAQFrame::rend ( )
inline

Definition at line 178 of file JDAQFrame.hh.

178 { return reverse_iterator(begin()); }

◆ empty()

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

Definition at line 181 of file JDAQFrame.hh.

181 { return numberOfHits == 0; }

◆ size()

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

Definition at line 183 of file JDAQFrame.hh.

183 { return numberOfHits; }

◆ data() [1/2]

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

Definition at line 185 of file JDAQFrame.hh.

185 { return buffer; }

◆ data() [2/2]

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

Definition at line 186 of file JDAQFrame.hh.

186 { return buffer; }

◆ operator[]()

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

Get hit at given index.

Parameters
indexindex
Returns
hit

Definition at line 195 of file JDAQFrame.hh.

196  {
197  return buffer[index];
198  }

◆ 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
frame

Definition at line 207 of file JDAQFrame.hh.

208  {
209  return JDAQFrameSubset(i2 - i1, buffer + i1);
210  }
Subset of data frame.
Definition: JDAQFrame.hh:24

◆ add() [1/2]

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

Add data.

Parameters
frameframe
Returns
this frame

Definition at line 219 of file JDAQFrame.hh.

220  {
221  return add(frame.numberOfHits, frame.buffer);
222  }

◆ 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 232 of file JDAQFrame.hh.

233  {
234  if (number_of_hits > 0) {
235 
236  resize(numberOfHits + number_of_hits);
237 
238  memcpy(buffer + numberOfHits - number_of_hits, data, number_of_hits * sizeof(JDAQHit));
239  }
240 
241  return *this;
242  }
void resize(const int number_of_hits)
Resize internal buffer.
Definition: JDAQFrame.hh:273
Hit data structure.
Definition: JDAQHit.hh:35

◆ swap()

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

Swap data.

Parameters
frameframe

Definition at line 250 of file JDAQFrame.hh.

251  {
252  std::swap(numberOfHits, frame.numberOfHits);
253  std::swap(buffer, frame.buffer);
254  }

◆ 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 273 of file JDAQFrame.hh.

274  {
275  if (number_of_hits > numberOfHits) {
276 
277  const int number_of_bytes = number_of_hits * sizeof(JDAQHit);
278 
279  if (buffer == NULL)
280  buffer = (JDAQHit*) malloc(number_of_bytes);
281  else
282  buffer = (JDAQHit*) realloc(buffer, number_of_bytes);
283 
284  if (buffer == NULL) {
285  throw JDAQException("JDAQFrame::resize(): Memory exception - number of hits = " + std::to_string(number_of_hits));
286  }
287 
288  numberOfHits = number_of_hits;
289  }
290  }
General exception.
std::string to_string(const T &value)
Convert value to string.

Friends And Related Function Documentation

◆ getSizeof

size_t getSizeof ( const JDAQFrame object)
friend

Get size of object.

Parameters
objectDAQ frame
Returns
number of bytes

Definition at line 21 of file JDAQFrameIO.hh.

22  {
23  return sizeof(JDAQFrame::numberOfHits) + object.numberOfHits * sizeof(JDAQHit);
24  }

◆ operator>>

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

Read DAQ frame from input.

Parameters
inreader
frameDAQ frame
Returns
reader

Definition at line 34 of file JDAQFrameIO.hh.

35  {
36  frame.clear();
37 
38  int number_of_hits;
39 
40  in >> number_of_hits;
41 
42  frame.resize(number_of_hits);
43 
44  in.read((char*) frame.buffer, frame.numberOfHits * sizeof(JDAQHit));
45 
46  return in;
47  }
virtual int read(char *buffer, const int length)=0
Read byte array.

◆ operator<<

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

Write DAQ frame to output.

Parameters
outwriter
frameDAQ frame
Returns
writer

Definition at line 57 of file JDAQFrameIO.hh.

58  {
59  out << frame.numberOfHits;
60 
61  out.write((char*) frame.buffer, frame.numberOfHits * sizeof(JDAQHit));
62 
63  return out;
64  }
virtual int write(const char *buffer, const int length)=0
Write byte array.

Member Data Documentation

◆ numberOfHits

int KM3NETDAQ::JDAQFrame::numberOfHits

Definition at line 257 of file JDAQFrame.hh.

◆ buffer

JDAQHit* KM3NETDAQ::JDAQFrame::buffer

Definition at line 258 of file JDAQFrame.hh.


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