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

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

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:190
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 & add(const JDAQFrame &frame)
Add data.
Definition: JDAQFrame.hh:190
virtual KM3NETDAQ::JDAQFrame::~JDAQFrame ( )
inlinevirtual

Destructor.

Definition at line 116 of file JDAQFrame.hh.

117  {
118  clear();
119  }
void clear()
Clear data.
Definition: JDAQFrame.hh:125

Member Function Documentation

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

Definition at line 136 of file JDAQFrame.hh.

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

Definition at line 137 of file JDAQFrame.hh.

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

Definition at line 140 of file JDAQFrame.hh.

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

Definition at line 141 of file JDAQFrame.hh.

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

Definition at line 144 of file JDAQFrame.hh.

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

Definition at line 145 of file JDAQFrame.hh.

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

Definition at line 148 of file JDAQFrame.hh.

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

Definition at line 149 of file JDAQFrame.hh.

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

Definition at line 152 of file JDAQFrame.hh.

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

Definition at line 154 of file JDAQFrame.hh.

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

Definition at line 156 of file JDAQFrame.hh.

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

Definition at line 157 of file JDAQFrame.hh.

157 { return buffer; }
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  }
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  }
Subset of data frame.
Definition: JDAQFrame.hh:22
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  }
JDAQFrame & add(const JDAQFrame &frame)
Add data.
Definition: JDAQFrame.hh:190
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  }
void resize(const int number_of_hits)
Resize internal buffer.
Definition: JDAQFrame.hh:244
Hit data structure.
Definition: JDAQHit.hh:34
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  }
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 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  }
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:125
esac print_variable DETECTOR INPUT_FILE OUTPUT_FILE CDF for TYPE in
Definition: JSirene.sh:45
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:244
Hit data structure.
Definition: JDAQHit.hh:34
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 228 of file JDAQFrame.hh.

JDAQHit* KM3NETDAQ::JDAQFrame::buffer

Definition at line 229 of file JDAQFrame.hh.


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