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
50
class
WIRE_HEADER_ATTRIBS_
SecondaryAppMetaHeader
{
51
public
:
52
53
static
CRL_CONSTEXPR
IdType
ID =
ID_DATA_SECONDARY_APP_META
;
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
65
SecondaryAppMetaHeader
():
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
78
class
SecondaryAppMetadata
:
public
SecondaryAppMetaHeader
{
79
public
:
80
81
82
//
83
// Constructors
84
85
SecondaryAppMetadata
(
utility::BufferStreamReader
&r,
VersionType
v) {
86
mRef
=
new
utility::BufferStreamReader
(r);
87
serialize
(r, v);
88
};
89
90
SecondaryAppMetadata
() {};
91
92
~SecondaryAppMetadata
() {
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
120
utility::BufferStreamReader
*
mRef
;
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
source
Wire
include
wire
SecondaryAppMetaMessage.hh
Generated on Tue Mar 18 2025 14:54:04 for LibMultiSense by
1.8.17