|
CARLA
|
Reads the fields of one packet (or one record inside it) without ever consuming more than its declared size. More...
#include <frameDataCodec.h>
Public Member Functions | |
| BoundedReader (std::istream &in, uint32_t size) | |
| bool | Failed () const |
| template<typename T > | |
| bool | Read (T &value) |
| bool | ReadBytes (void *out, uint32_t bytes) |
| template<typename F > | |
| bool | ReadFields (F &&read) |
| Reads TLV fields until the reader is exhausted. | |
| bool | ReadFixedListHeader (uint16_t min_record_size, uint32_t &count, uint16_t &record_size) |
| Header of a list of fixed-size records, checked against the bytes left. | |
| template<typename F > | |
| bool | ReadRecord (uint32_t bytes, F &&read) |
| Runs read(record) on the next bytes as a reader of their own, then skips what it left unread (a record that grew in a newer build). | |
| template<typename F > | |
| bool | ReadSizedRecord (F &&read) |
| Reads one [u32 record_size][record] entry of a variable-size list. | |
| bool | ReadVariableListCount (uint32_t &count) |
| Count of a list of variable-size records, checked against the bytes left. | |
| uint32_t | Remaining () const |
| bool | Skip (uint32_t bytes) |
Private Member Functions | |
| bool | Fail () |
Private Attributes | |
| bool | _failed = false |
| std::istream & | _in |
| uint32_t | _remaining |
Reads the fields of one packet (or one record inside it) without ever consuming more than its declared size.
A read past the end fails, and a failed reader fails its stream, so the packet loop reports a short packet.
Payload layouts of the Multi-GPU packets:
Definition at line 200 of file frameDataCodec.h.
|
inline |
Definition at line 203 of file frameDataCodec.h.
|
inlineprivate |
Definition at line 316 of file frameDataCodec.h.
Referenced by Read(), ReadBytes(), ReadFixedListHeader(), ReadRecord(), ReadVariableListCount(), and Skip().
|
inline |
|
inline |
Definition at line 208 of file frameDataCodec.h.
References _failed, _in, _remaining, Fail(), and carla::multigpu::detail::ReadPod().
Referenced by carla::multigpu::FrameTime::Read(), carla::multigpu::MirroredPositions::Read(), carla::multigpu::MirroredVehicleParts::Read(), carla::multigpu::SensorTicks::Read(), carla::multigpu::SensorStates::Read(), carla::multigpu::WorldGlobals::Read(), carla::multigpu::WorldObjects::Read(), carla::multigpu::ActorAppearances::Read(), ReadFields(), ReadFixedListHeader(), ReadSizedRecord(), ReadVariableListCount(), and carla::multigpu::SensorStates::ReadVector().
|
inline |
Definition at line 216 of file frameDataCodec.h.
References _failed, _in, _remaining, and Fail().
Referenced by carla::multigpu::WorldGlobals::Read().
|
inline |
Reads TLV fields until the reader is exhausted.
read(kind, value) reads a known kind and returns true, or returns true without reading to skip an unknown one; false aborts the packet.
Definition at line 292 of file frameDataCodec.h.
References _failed, _remaining, Read(), and ReadRecord().
Referenced by carla::multigpu::MirroredVehicleParts::Read(), carla::multigpu::SensorStates::Read(), carla::multigpu::WorldObjects::Read(), and carla::multigpu::ActorAppearances::Read().
|
inline |
Header of a list of fixed-size records, checked against the bytes left.
Definition at line 256 of file frameDataCodec.h.
References _remaining, Fail(), and Read().
Referenced by carla::multigpu::MirroredPositions::Read(), carla::multigpu::SensorTicks::Read(), and carla::multigpu::MirroredVehicleParts::ReadList().
|
inline |
Runs read(record) on the next bytes as a reader of their own, then skips what it left unread (a record that grew in a newer build).
Definition at line 243 of file frameDataCodec.h.
References _failed, _in, _remaining, Fail(), Failed(), Remaining(), and Skip().
Referenced by carla::multigpu::MirroredPositions::Read(), carla::multigpu::SensorTicks::Read(), ReadFields(), carla::multigpu::MirroredVehicleParts::ReadList(), and ReadSizedRecord().
|
inline |
Reads one [u32 record_size][record] entry of a variable-size list.
Definition at line 283 of file frameDataCodec.h.
References Read(), and ReadRecord().
Referenced by carla::multigpu::MirroredVehicleParts::Read(), carla::multigpu::SensorStates::Read(), and carla::multigpu::ActorAppearances::Read().
|
inline |
Count of a list of variable-size records, checked against the bytes left.
Definition at line 270 of file frameDataCodec.h.
References _remaining, Fail(), and Read().
Referenced by carla::multigpu::MirroredVehicleParts::Read(), carla::multigpu::SensorStates::Read(), and carla::multigpu::ActorAppearances::Read().
|
inline |
Definition at line 306 of file frameDataCodec.h.
References _remaining.
Referenced by carla::multigpu::WorldObjects::Read(), and ReadRecord().
|
inline |
Definition at line 228 of file frameDataCodec.h.
References _failed, _in, _remaining, and Fail().
Referenced by ReadRecord().
|
private |
Definition at line 326 of file frameDataCodec.h.
Referenced by Fail(), Failed(), Read(), ReadBytes(), ReadFields(), ReadRecord(), and Skip().
|
private |
Definition at line 322 of file frameDataCodec.h.
Referenced by Fail(), Read(), ReadBytes(), ReadRecord(), and Skip().
|
private |
Definition at line 324 of file frameDataCodec.h.
Referenced by Read(), ReadBytes(), ReadFields(), ReadFixedListHeader(), ReadRecord(), ReadVariableListCount(), Remaining(), and Skip().