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

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

Member Typedef Documentation

◆ iterator

Definition at line 69 of file JDAQFrame.hh.

◆ const_reverse_iterator

Definition at line 70 of file JDAQFrame.hh.

◆ reverse_iterator

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

Definition at line 71 of file JDAQFrame.hh.

Constructor & Destructor Documentation

◆ JDAQFrame() [1/3]

KM3NETDAQ::JDAQFrame::JDAQFrame ( )
inline

Default constructor.

Definition at line 80 of file JDAQFrame.hh.

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

◆ JDAQFrame() [2/3]

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

Copy constructor.

Parameters
frameJDAQ frame

Definition at line 91 of file JDAQFrame.hh.

91  :
92  numberOfHits(0),
93  buffer(NULL)
94  {
95  add(frame);
96  }

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

105  :
106  numberOfHits(0),
107  buffer(NULL)
108  {
109  add(number_of_hits, data);
110  }

◆ ~JDAQFrame()

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

Destructor.

Definition at line 116 of file JDAQFrame.hh.

117  {
118  clear();
119  }

Member Function Documentation

◆ clear()

void KM3NETDAQ::JDAQFrame::clear ( )
inline

Clear data.

Definition at line 125 of file JDAQFrame.hh.

126  {
127  if (buffer != NULL) {
128  free(buffer);
129  }
130 
131  numberOfHits = 0;
132  buffer = NULL;
133  }

◆ begin() [1/2]

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

Definition at line 136 of file JDAQFrame.hh.

136 { return buffer; }

◆ end() [1/2]

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

Definition at line 137 of file JDAQFrame.hh.

137 { return buffer + numberOfHits; }

◆ begin() [2/2]

iterator KM3NETDAQ::JDAQFrame::begin ( )
inline

Definition at line 140 of file JDAQFrame.hh.

140 { return buffer; }

◆ end() [2/2]

iterator KM3NETDAQ::JDAQFrame::end ( )
inline

Definition at line 141 of file JDAQFrame.hh.

141 { return buffer + numberOfHits; }

◆ rbegin() [1/2]

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

Definition at line 144 of file JDAQFrame.hh.

144 { return const_reverse_iterator(end()); }

◆ rend() [1/2]

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

Definition at line 145 of file JDAQFrame.hh.

145 { return const_reverse_iterator(begin()); }

◆ rbegin() [2/2]

reverse_iterator KM3NETDAQ::JDAQFrame::rbegin ( )
inline

Definition at line 148 of file JDAQFrame.hh.

148 { return reverse_iterator(end()); }

◆ rend() [2/2]

reverse_iterator KM3NETDAQ::JDAQFrame::rend ( )
inline

Definition at line 149 of file JDAQFrame.hh.

149 { return reverse_iterator(begin()); }

◆ empty()

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

Definition at line 152 of file JDAQFrame.hh.

152 { return numberOfHits == 0; }

◆ size()

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

Definition at line 154 of file JDAQFrame.hh.

154 { return numberOfHits; }

◆ data() [1/2]

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

Definition at line 156 of file JDAQFrame.hh.

156 { return buffer; }

◆ data() [2/2]

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

Definition at line 157 of file JDAQFrame.hh.

157 { return buffer; }

◆ operator[]()

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

Get hit at given index.

Parameters
indexindex
Returns
hit

Definition at line 166 of file JDAQFrame.hh.

167  {
168  return buffer[index];
169  }

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

179  {
180  return JDAQFrameSubset(i2 - i1, buffer + i1);
181  }

◆ add() [1/2]

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

Add data.

Parameters
frameJDAQ frame
Returns
this JDAQ frame

Definition at line 190 of file JDAQFrame.hh.

191  {
192  return add(frame.numberOfHits, frame.buffer);
193  }

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

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

◆ swap()

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

Swap data.

Parameters
frameJDAQ frame

Definition at line 221 of file JDAQFrame.hh.

222  {
223  std::swap(numberOfHits, frame.numberOfHits);
224  std::swap(buffer, frame.buffer);
225  }

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

245  {
246  if (number_of_hits > numberOfHits) {
247 
248  const int number_of_bytes = number_of_hits * sizeof(JDAQHit);
249 
250  if (buffer == NULL)
251  buffer = (JDAQHit*) malloc(number_of_bytes);
252  else
253  buffer = (JDAQHit*) realloc(buffer, number_of_bytes);
254 
255  if (buffer == NULL)
256  throw JDAQException("JDAQFrame::resize(): Memory exception.");
257 
258  numberOfHits = number_of_hits;
259  }
260  }

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  }

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

Member Data Documentation

◆ const_iterator

const typedef JDAQHit* KM3NETDAQ::JDAQFrame::const_iterator

Definition at line 68 of file JDAQFrame.hh.

◆ numberOfHits

int KM3NETDAQ::JDAQFrame::numberOfHits

Definition at line 228 of file JDAQFrame.hh.

◆ buffer

JDAQHit* KM3NETDAQ::JDAQFrame::buffer

Definition at line 229 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:190
KM3NETDAQ::JDAQFrame::buffer
JDAQHit * buffer
Definition: JDAQFrame.hh:229
JLANG::JBinaryOutput::write
virtual int write(const char *buffer, const int length)=0
Write byte array.
JLANG::JBinaryInput::read
virtual int read(char *buffer, const int length)=0
Read byte array.
KM3NETDAQ::JDAQFrame::clear
void clear()
Clear data.
Definition: JDAQFrame.hh:125
KM3NETDAQ::JDAQException
General exception.
Definition: JDAQException.hh:18
KM3NETDAQ::JDAQFrameSubset
Subset of data frame.
Definition: JDAQFrame.hh:22
KM3NETDAQ::JDAQFrame::data
const JDAQHit * data() const
Definition: JDAQFrame.hh:156
KM3NETDAQ::JDAQFrame::reverse_iterator
std::reverse_iterator< iterator > reverse_iterator
Definition: JDAQFrame.hh:71
KM3NETDAQ::JDAQFrame::numberOfHits
int numberOfHits
Definition: JDAQFrame.hh:228
KM3NETDAQ::JDAQHit
Hit data structure.
Definition: JDAQHit.hh:34
KM3NETDAQ::JDAQFrame::resize
void resize(const int number_of_hits)
Resize internal buffer.
Definition: JDAQFrame.hh:244
KM3NETDAQ::JDAQFrame::begin
const_iterator begin() const
Definition: JDAQFrame.hh:136
KM3NETDAQ::JDAQFrame::const_reverse_iterator
std::reverse_iterator< const_iterator > const_reverse_iterator
Definition: JDAQFrame.hh:70
KM3NETDAQ::JDAQFrame::end
const_iterator end() const
Definition: JDAQFrame.hh:137