| 154 | } |
| 155 | |
| 156 | bool extractions(Serializer& serializer, Values& values, |
| 157 | const Encoding& encoding, const bool checkPos) |
| 158 | { |
| 159 | bool readPosOk = true; |
| 160 | size_t pos = serializer.rpos(), expectedPos = 0, prevPos = pos; |
| 161 | if (pos != expectedPos) { |
| 162 | std::cerr << "ERROR: Initial position is" << pos |
| 163 | << ". It should be 0." << std::endl; |
| 164 | readPosOk = false; |
| 165 | } |
| 166 | |
| 167 | serializer >> ACE_InputCDR::to_octet(values.octetValue); |
| 168 | if (checkPos) { |
| 169 | expectedPos += 1; |
| 170 | pos = serializer.rpos(); |
| 171 | print(pos, expectedPos, prevPos, readPosOk, "octet"); |
| 172 | } |
| 173 | |
| 174 | #if OPENDDS_HAS_EXPLICIT_INTS |
| 175 | serializer >> ACE_InputCDR::to_int8(values.int8Value); |
| 176 | if (checkPos) { |
| 177 | expectedPos += OpenDDS::DCPS::int8_cdr_size; |
| 178 | pos = serializer.rpos(); |
| 179 | print(pos, expectedPos, prevPos, readPosOk, "int8"); |
| 180 | } |
| 181 | #endif |
| 182 | |
| 183 | serializer >> values.shortValue; |
| 184 | if (checkPos) { |
| 185 | expectedPos += skip(pos, OpenDDS::DCPS::int16_cdr_size, encoding.max_align()) + |
| 186 | OpenDDS::DCPS::int16_cdr_size; |
| 187 | pos = serializer.rpos(); |
| 188 | print(pos, expectedPos, prevPos, readPosOk, "short"); |
| 189 | } |
| 190 | |
| 191 | serializer >> values.longValue; |
| 192 | if (checkPos) { |
| 193 | expectedPos += skip(pos, OpenDDS::DCPS::int32_cdr_size, encoding.max_align()) + |
| 194 | OpenDDS::DCPS::int32_cdr_size; |
| 195 | pos = serializer.rpos(); |
| 196 | print(pos, expectedPos, prevPos, readPosOk, "long"); |
| 197 | } |
| 198 | |
| 199 | serializer >> values.longlongValue; |
| 200 | if (checkPos) { |
| 201 | expectedPos += skip(pos, OpenDDS::DCPS::int64_cdr_size, encoding.max_align()) + |
| 202 | OpenDDS::DCPS::int64_cdr_size; |
| 203 | pos = serializer.rpos(); |
| 204 | print(pos, expectedPos, prevPos, readPosOk, "long long"); |
| 205 | } |
| 206 | |
| 207 | #if OPENDDS_HAS_EXPLICIT_INTS |
| 208 | serializer >> ACE_InputCDR::to_uint8(values.uint8Value); |
| 209 | if (checkPos) { |
| 210 | expectedPos += OpenDDS::DCPS::uint8_cdr_size; |
| 211 | pos = serializer.rpos(); |
| 212 | print(pos, expectedPos, prevPos, readPosOk, "uint8"); |
| 213 | } |