1 #include "daq/slc/base/Reader.h"
3 #include "daq/slc/base/Serializable.h"
11 void Reader::reverse(
void* buf,
size_t len)
14 for (
int c = 0 ; c < (int)len / 2 ; c ++) {
15 tmp = *((
char*)buf + c);
16 *((
char*)buf + c) = *((
char*)buf + len - 1 - c);
17 *((
char*)buf + len - 1 - c) = tmp;
21 bool Reader::readBool()
24 read(&v,
sizeof(
bool));
28 char Reader::readChar()
31 read(&v,
sizeof(
char));
35 unsigned char Reader::readUChar()
38 read(&v,
sizeof(
unsigned char));
42 short Reader::readShort()
45 read(&v,
sizeof(
short));
46 #if defined(__ENDIAN_L__)
47 reverse(&v,
sizeof(
short));
52 unsigned short Reader::readUShort()
55 read(&v,
sizeof(
unsigned short));
56 #if defined(__ENDIAN_L__)
57 reverse(&v,
sizeof(
unsigned short));
65 read(&v,
sizeof(
int));
66 #if defined(__ENDIAN_L__)
67 reverse(&v,
sizeof(
int));
72 unsigned int Reader::readUInt()
75 read(&v,
sizeof(
unsigned int));
76 #if defined(__ENDIAN_L__)
77 reverse(&v,
sizeof(
unsigned int));
82 long long Reader::readLong()
85 read(&v,
sizeof(
long long));
86 #if defined(__ENDIAN_L__)
87 reverse(&v,
sizeof(
long long));
92 unsigned long long Reader::readULong()
95 read(&v,
sizeof(
unsigned long long));
96 #if defined(__ENDIAN_L__)
97 reverse(&v,
sizeof(
unsigned long long));
102 float Reader::readFloat()
105 read(&v,
sizeof(
float));
106 #if defined(__ENDIAN_L__)
107 reverse(&v,
sizeof(
float));
112 double Reader::readDouble()
115 read(&v,
sizeof(
double));
116 #if defined(__ENDIAN_L__)
117 reverse(&v,
sizeof(
double));
122 const std::string Reader::readString()
124 int count = readInt();
128 int c = (count > 1024) ? 1024 : count;