Jpp  18.3.0
the software that should make you happy
 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 (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

Definition at line 69 of file JDAQFrame.hh.

Definition at line 70 of file JDAQFrame.hh.

Definition at line 71 of file JDAQFrame.hh.

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

Definition at line 72 of file JDAQFrame.hh.

Constructor & Destructor Documentation

KM3NETDAQ::JDAQFrame::JDAQFrame ( )
inline

Default constructor.

Definition at line 81 of file JDAQFrame.hh.

81  :
82  numberOfHits(0),
83  buffer(NULL)
84  {}
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
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  }
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  }
JDAQFrame & add(const JDAQFrame &frame)
Add data.
Definition: JDAQFrame.hh:219
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

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  }
JDAQFrame & add(const JDAQFrame &frame)
Add data.
Definition: JDAQFrame.hh:219
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  }
const_iterator KM3NETDAQ::JDAQFrame::begin ( ) const
inline

Definition at line 165 of file JDAQFrame.hh.

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

Definition at line 166 of file JDAQFrame.hh.

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

Definition at line 169 of file JDAQFrame.hh.

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

Definition at line 170 of file JDAQFrame.hh.

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

Definition at line 173 of file JDAQFrame.hh.

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

Definition at line 174 of file JDAQFrame.hh.

174 { return const_reverse_iterator(begin()); }
std::reverse_iterator< const_iterator > const_reverse_iterator
Definition: JDAQFrame.hh:71
const_iterator begin() const
Definition: JDAQFrame.hh:165
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
const_iterator end() const
Definition: JDAQFrame.hh:166
reverse_iterator KM3NETDAQ::JDAQFrame::rend ( )
inline

Definition at line 178 of file JDAQFrame.hh.

178 { return reverse_iterator(begin()); }
std::reverse_iterator< iterator > reverse_iterator
Definition: JDAQFrame.hh:72
const_iterator begin() const
Definition: JDAQFrame.hh:165
bool KM3NETDAQ::JDAQFrame::empty ( ) const
inline

Definition at line 181 of file JDAQFrame.hh.

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

Definition at line 183 of file JDAQFrame.hh.

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

Definition at line 185 of file JDAQFrame.hh.

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

Definition at line 186 of file JDAQFrame.hh.

186 { return buffer; }
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  }
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:23
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  }
JDAQFrame & add(const JDAQFrame &frame)
Add data.
Definition: JDAQFrame.hh:219
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:34
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  }
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 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  }
Hit data structure.
Definition: JDAQHit.hh:34
General exception.
std::string to_string(const T &value)
Convert value to string.

Friends And Related Function Documentation

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  }
Hit data structure.
Definition: JDAQHit.hh:34
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  }
void clear()
Clear data.
Definition: JDAQFrame.hh:154
virtual int read(char *buffer, const int length)=0
Read byte array.
void resize(const int number_of_hits)
Resize internal buffer.
Definition: JDAQFrame.hh:273
Hit data structure.
Definition: JDAQHit.hh:34
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY JAcoustics sh $DETECTOR_ID source JAcousticsToolkit sh CHECK_EXIT_CODE typeset A EMITTERS get_tripods $WORKDIR tripod txt EMITTERS get_transmitters $WORKDIR transmitter txt EMITTERS for EMITTER in
Definition: JCanberra.sh:48
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.
Hit data structure.
Definition: JDAQHit.hh:34

Member Data Documentation

int KM3NETDAQ::JDAQFrame::numberOfHits

Definition at line 257 of file JDAQFrame.hh.

JDAQHit* KM3NETDAQ::JDAQFrame::buffer

Definition at line 258 of file JDAQFrame.hh.


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