Jpp test-rotations-old
the software that should make you happy
Loading...
Searching...
No Matches
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.
 
 JDAQFrame (const JDAQFrame &frame)
 Copy constructor.
 
 JDAQFrame (JDAQFrame &&frame)
 Move constructor.
 
 JDAQFrame (const int number_of_hits, const JDAQHit *data)
 Constructor.
 
virtual ~JDAQFrame ()
 Destructor.
 
JDAQFrameoperator= (const JDAQFrame &frame)
 Assignment operator.
 
void clear ()
 Clear data.
 
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.
 
JDAQFrameSubset subset (const int i1, const int i2) const
 Get subset of data.
 
JDAQFrameadd (const JDAQFrame &frame)
 Add data.
 
JDAQFrameadd (const int number_of_hits, const JDAQHit *data)
 Add data.
 
void swap (JDAQFrame &frame)
 Swap data.
 
 ClassDef (JDAQFrame, 1)
 

Public Attributes

int numberOfHits
 
JDAQHitbuffer
 

Protected Member Functions

void resize (const int number_of_hits)
 Resize internal buffer.
 

Friends

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

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

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 :
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()); }
std::reverse_iterator< const_iterator > const_reverse_iterator
Definition JDAQFrame.hh:71
const_iterator end() const
Definition JDAQFrame.hh:166

◆ 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 ,
1  )

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

Friends And Related Symbol 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: