8 #include "daq/slc/base/Reader.h"
10 #include "daq/slc/base/Serializable.h"
18 void Reader::reverse(
void* buf,
size_t len)
21 for (
int c = 0 ; c < (int)len / 2 ; c ++) {
22 tmp = *((
char*)buf + c);
23 *((
char*)buf + c) = *((
char*)buf + len - 1 - c);
24 *((
char*)buf + len - 1 - c) = tmp;
28 bool Reader::readBool()
31 read(&v,
sizeof(
bool));
35 char Reader::readChar()
38 read(&v,
sizeof(
char));
42 unsigned char Reader::readUChar()
45 read(&v,
sizeof(
unsigned char));
49 short Reader::readShort()
52 read(&v,
sizeof(
short));
53 #if defined(__ENDIAN_L__)
54 reverse(&v,
sizeof(
short));
59 unsigned short Reader::readUShort()
62 read(&v,
sizeof(
unsigned short));
63 #if defined(__ENDIAN_L__)
64 reverse(&v,
sizeof(
unsigned short));
72 read(&v,
sizeof(
int));
73 #if defined(__ENDIAN_L__)
74 reverse(&v,
sizeof(
int));
79 unsigned int Reader::readUInt()
82 read(&v,
sizeof(
unsigned int));
83 #if defined(__ENDIAN_L__)
84 reverse(&v,
sizeof(
unsigned int));
89 long long Reader::readLong()
92 read(&v,
sizeof(
long long));
93 #if defined(__ENDIAN_L__)
94 reverse(&v,
sizeof(
long long));
99 unsigned long long Reader::readULong()
101 unsigned long long v;
102 read(&v,
sizeof(
unsigned long long));
103 #if defined(__ENDIAN_L__)
104 reverse(&v,
sizeof(
unsigned long long));
109 float Reader::readFloat()
112 read(&v,
sizeof(
float));
113 #if defined(__ENDIAN_L__)
114 reverse(&v,
sizeof(
float));
119 double Reader::readDouble()
122 read(&v,
sizeof(
double));
123 #if defined(__ENDIAN_L__)
124 reverse(&v,
sizeof(
double));
129 const std::string Reader::readString()
131 int count = readInt();
135 int c = (count > 1024) ? 1024 : count;
Abstract base class for different kinds of events.