Jpp  18.0.0-rc.1
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 64 of file JDAQFrame.hh.

Member Typedef Documentation

Definition at line 68 of file JDAQFrame.hh.

Definition at line 69 of file JDAQFrame.hh.

Definition at line 70 of file JDAQFrame.hh.

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

Definition at line 71 of file JDAQFrame.hh.

Constructor & Destructor Documentation

KM3NETDAQ::JDAQFrame::JDAQFrame ( )
inline

Default constructor.

Definition at line 80 of file JDAQFrame.hh.

80  :
81  numberOfHits(0),
82  buffer(NULL)
83  {}
KM3NETDAQ::JDAQFrame::JDAQFrame ( const JDAQFrame frame)
inline

Copy constructor.

Parameters
frameframe

Definition at line 91 of file JDAQFrame.hh.

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

Move constructor.

Parameters
frameframe

Definition at line 104 of file JDAQFrame.hh.

104  :
105  numberOfHits(frame.numberOfHits),
106  buffer (frame.buffer)
107  {
108  frame.numberOfHits = 0;
109  frame.buffer = NULL;
110  }
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 119 of file JDAQFrame.hh.

119  :
120  numberOfHits(0),
121  buffer(NULL)
122  {
123  add(number_of_hits, data);
124  }
JDAQFrame & add(const JDAQFrame &frame)
Add data.
Definition: JDAQFrame.hh:218
virtual KM3NETDAQ::JDAQFrame::~JDAQFrame ( )
inlinevirtual

Destructor.

Definition at line 130 of file JDAQFrame.hh.

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

Member Function Documentation

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

Assignment operator.

Parameters
frameframe
Returns
this frame

Definition at line 142 of file JDAQFrame.hh.

143  {
144  add(frame);
145 
146  return *this;
147  }
JDAQFrame & add(const JDAQFrame &frame)
Add data.
Definition: JDAQFrame.hh:218
void KM3NETDAQ::JDAQFrame::clear ( )
inline

Clear data.

Definition at line 153 of file JDAQFrame.hh.

154  {
155  if (buffer != NULL) {
156  free(buffer);
157  }
158 
159  numberOfHits = 0;
160  buffer = NULL;
161  }
const_iterator KM3NETDAQ::JDAQFrame::begin ( ) const
inline

Definition at line 164 of file JDAQFrame.hh.

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

Definition at line 165 of file JDAQFrame.hh.

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

Definition at line 168 of file JDAQFrame.hh.

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

Definition at line 169 of file JDAQFrame.hh.

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

Definition at line 172 of file JDAQFrame.hh.

172 { return const_reverse_iterator(end()); }
std::reverse_iterator< const_iterator > const_reverse_iterator
Definition: JDAQFrame.hh:70
const_iterator end() const
Definition: JDAQFrame.hh:165
const_reverse_iterator KM3NETDAQ::JDAQFrame::rend ( ) const
inline

Definition at line 173 of file JDAQFrame.hh.

173 { return const_reverse_iterator(begin()); }
std::reverse_iterator< const_iterator > const_reverse_iterator
Definition: JDAQFrame.hh:70
const_iterator begin() const
Definition: JDAQFrame.hh:164
reverse_iterator KM3NETDAQ::JDAQFrame::rbegin ( )
inline

Definition at line 176 of file JDAQFrame.hh.

176 { return reverse_iterator(end()); }
std::reverse_iterator< iterator > reverse_iterator
Definition: JDAQFrame.hh:71
const_iterator end() const
Definition: JDAQFrame.hh:165
reverse_iterator KM3NETDAQ::JDAQFrame::rend ( )
inline

Definition at line 177 of file JDAQFrame.hh.

177 { return reverse_iterator(begin()); }
std::reverse_iterator< iterator > reverse_iterator
Definition: JDAQFrame.hh:71
const_iterator begin() const
Definition: JDAQFrame.hh:164
bool KM3NETDAQ::JDAQFrame::empty ( ) const
inline

Definition at line 180 of file JDAQFrame.hh.

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

Definition at line 182 of file JDAQFrame.hh.

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

Definition at line 184 of file JDAQFrame.hh.

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

Definition at line 185 of file JDAQFrame.hh.

185 { return buffer; }
const JDAQHit& KM3NETDAQ::JDAQFrame::operator[] ( int  index) const
inline

Get hit at given index.

Parameters
indexindex
Returns
hit

Definition at line 194 of file JDAQFrame.hh.

195  {
196  return buffer[index];
197  }
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 206 of file JDAQFrame.hh.

207  {
208  return JDAQFrameSubset(i2 - i1, buffer + i1);
209  }
Subset of data frame.
Definition: JDAQFrame.hh:22
JDAQFrame& KM3NETDAQ::JDAQFrame::add ( const JDAQFrame frame)
inline

Add data.

Parameters
frameframe
Returns
this frame

Definition at line 218 of file JDAQFrame.hh.

219  {
220  return add(frame.numberOfHits, frame.buffer);
221  }
JDAQFrame & add(const JDAQFrame &frame)
Add data.
Definition: JDAQFrame.hh:218
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 231 of file JDAQFrame.hh.

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

Swap data.

Parameters
frameframe

Definition at line 249 of file JDAQFrame.hh.

250  {
251  std::swap(numberOfHits, frame.numberOfHits);
252  std::swap(buffer, frame.buffer);
253  }
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 272 of file JDAQFrame.hh.

273  {
274  if (number_of_hits > numberOfHits) {
275 
276  const int number_of_bytes = number_of_hits * sizeof(JDAQHit);
277 
278  if (buffer == NULL)
279  buffer = (JDAQHit*) malloc(number_of_bytes);
280  else
281  buffer = (JDAQHit*) realloc(buffer, number_of_bytes);
282 
283  if (buffer == NULL) {
284  throw JDAQException("JDAQFrame::resize(): Memory exception.");
285  }
286 
287  numberOfHits = number_of_hits;
288  }
289  }
Hit data structure.
Definition: JDAQHit.hh:34
General exception.

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:153
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:272
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:46
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 256 of file JDAQFrame.hh.

JDAQHit* KM3NETDAQ::JDAQFrame::buffer

Definition at line 257 of file JDAQFrame.hh.


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