CARLA
ObstacleDetectionEventSerializer.h
Go to the documentation of this file.
1 // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma
2 // de Barcelona (UAB).
3 //
4 // This work is licensed under the terms of the MIT license.
5 // For a copy, see <https://opensource.org/licenses/MIT>.
6 
7 #pragma once
8 
9 #include "carla/Buffer.h"
10 #include "carla/Debug.h"
11 #include "carla/Memory.h"
12 #include "carla/rpc/Actor.h"
13 #include "carla/sensor/RawData.h"
14 
15 namespace carla {
16 namespace sensor {
17 
18  class SensorData;
19 
20 namespace s11n {
21 
22  /// Serializes the current state of the whole episode.
24  public:
25 
26  struct Data {
27 
29 
31 
32  float distance;
33 
34  MSGPACK_DEFINE_ARRAY(self_actor, other_actor, distance)
35  };
36 
37  constexpr static auto header_offset = 0u;
38 
39  static Data DeserializeRawData(const RawData &message) {
40  return MsgPack::UnPack<Data>(message.begin(), message.size());
41  }
42 
43  template <typename SensorT>
44  static Buffer Serialize(
45  const SensorT &,
48  float distance) {
49  return MsgPack::Pack(Data{self_actor, other_actor, distance});
50  }
51 
53  };
54 
55 } // namespace s11n
56 } // namespace sensor
57 } // namespace carla
static Buffer Pack(const T &obj)
Definition: MsgPack.h:19
boost::shared_ptr< T > SharedPtr
Use this SharedPtr (boost::shared_ptr) to keep compatibility with boost::python, but it would be nice...
Definition: Memory.h:20
This file contains definitions of common data structures used in traffic manager. ...
Definition: Carla.cpp:133
auto begin() noexcept
Begin iterator to the data generated by the sensor.
Definition: RawData.h:51
size_t size() const
Size in bytes of the data generated by the sensor.
Definition: RawData.h:82
static Buffer Serialize(const SensorT &, rpc::Actor self_actor, rpc::Actor other_actor, float distance)
A piece of raw data.
Definition: carla/Buffer.h:41
Serializes the current state of the whole episode.
Wrapper around the raw data generated by a sensor plus some useful meta-information.
Definition: RawData.h:20
static SharedPtr< SensorData > Deserialize(RawData &&data)