LibMultiSense
LibMultiSense Documentation
SecondaryAppMetaMessage.hh
Go to the documentation of this file.
1 
37 #ifndef LibMultiSense_SecondaryAppMetaData
38 #define LibMultiSense_SecondaryAppMetaData
39 
40 #include <typeinfo>
41 #include <cmath>
42 
43 #include "MultiSense/details/utility/Portability.hh"
44 
45 namespace crl {
46 namespace multisense {
47 namespace details {
48 namespace wire {
49 
51 public:
52 
54 static CRL_CONSTEXPR VersionType VERSION = 1;
55 
56 #ifdef SENSORPOD_FIRMWARE
57  IdType id;
58  VersionType version;
59 #endif // SENSORPOD_FIRMWARE
60 
61  int64_t frameId;
62  uint32_t dataLength;
63  void * dataP;
64 
66 #ifdef SENSORDPOD_FIRMWARE
67  id(ID),
68  version(VERSION),
69 #endif // SENSORPOD_FIRMWARE
70  frameId(0),
71  dataLength(0),
72  dataP(nullptr)
73  {};
74 };
75 
76 #ifndef SENSORPOD_FIRMWARE
77 
79 public:
80 
81 
82  //
83  // Constructors
84 
87  serialize(r, v);
88  };
89 
91 
93  if (mRef)
94  delete mRef;
95  };
96 
97  //
98  // Serialization routine
99 
100  template<class Archive>
101  void serialize(Archive& message,
102  const VersionType version)
103  {
104  (void) version;
105 
106  if (typeid(Archive) == typeid(utility::BufferStreamWriter)) {
107 
108  message.write(dataP, dataLength);
109 
110  } else {
111  message & frameId;
112  message & dataLength;
113 
114  dataP = message.peek();
115  message.seek(message.tell() + dataLength);
116  }
117 
118  }
119 
121 };
122 
123 #endif // !SENSORPOD_FIRMWARE
124 
125 }}}} // namespaces
126 
127 #endif
crl::multisense::details::wire::SecondaryAppMetaHeader::frameId
int64_t frameId
Definition: SecondaryAppMetaMessage.hh:61
crl::multisense::details::wire::SecondaryAppMetadata::SecondaryAppMetadata
SecondaryAppMetadata(utility::BufferStreamReader &r, VersionType v)
Definition: SecondaryAppMetaMessage.hh:85
crl::multisense::details::wire::SecondaryAppMetaHeader::dataP
void * dataP
Definition: SecondaryAppMetaMessage.hh:63
WIRE_HEADER_ATTRIBS_
#define WIRE_HEADER_ATTRIBS_
Definition: Protocol.hh:65
CRL_CONSTEXPR
#define CRL_CONSTEXPR
Definition: Portability.hh:49
crl::multisense::details::wire::SecondaryAppMetaHeader
Definition: SecondaryAppMetaMessage.hh:50
crl::multisense::details::wire::SecondaryAppMetaHeader::dataLength
uint32_t dataLength
Definition: SecondaryAppMetaMessage.hh:62
crl
Definition: BufferStream.hh:51
crl::multisense::details::wire::SecondaryAppMetadata::~SecondaryAppMetadata
~SecondaryAppMetadata()
Definition: SecondaryAppMetaMessage.hh:92
crl::multisense::details::wire::SecondaryAppMetadata::serialize
void serialize(Archive &message, const VersionType version)
Definition: SecondaryAppMetaMessage.hh:101
crl::multisense::details::wire::VersionType
uint16_t VersionType
Definition: Protocol.hh:137
crl::multisense::details::utility::BufferStreamWriter
Definition: BufferStream.hh:259
crl::multisense::details::wire::SecondaryAppMetadata
Definition: SecondaryAppMetaMessage.hh:78
crl::multisense::details::wire::SecondaryAppMetadata::SecondaryAppMetadata
SecondaryAppMetadata()
Definition: SecondaryAppMetaMessage.hh:90
crl::multisense::details::utility::BufferStreamReader
Definition: BufferStream.hh:192
multisense
Definition: MultiSenseChannel.hh:44
crl::multisense::details::wire::SecondaryAppMetaHeader::SecondaryAppMetaHeader
SecondaryAppMetaHeader()
Definition: SecondaryAppMetaMessage.hh:65
crl::multisense::details::wire::SecondaryAppMetadata::mRef
utility::BufferStreamReader * mRef
Definition: SecondaryAppMetaMessage.hh:120
crl::multisense::details::wire::IdType
uint16_t IdType
Definition: Protocol.hh:136
crl::multisense::details::wire::ID_DATA_SECONDARY_APP_META
static CRL_CONSTEXPR IdType ID_DATA_SECONDARY_APP_META
Definition: Protocol.hh:241