Vector BLF
Loading...
Searching...
No Matches
DistributedObjectMember.h
1// SPDX-FileCopyrightText: 2013-2021 Tobias Lorenz <tobias.lorenz@gmx.net>
2//
3// SPDX-License-Identifier: GPL-3.0-or-later
4
5#pragma once
6
7#include <Vector/BLF/platform.h>
8
9#include <vector>
10
11#include <Vector/BLF/AbstractFile.h>
12#include <Vector/BLF/ObjectHeader.h>
13
14#include <Vector/BLF/vector_blf_export.h>
15
16namespace Vector {
17namespace BLF {
18
20struct VECTOR_BLF_EXPORT DistributedObjectMember final : ObjectHeader {
22
23 void read(AbstractFile & is) override;
24 void write(AbstractFile & os) override;
25 uint32_t calculateObjectSize() const override;
26
28 enum MemberType : uint32_t {
29 MemberTypeInvalid = 0,
30 MemberTypeData = 1,
31 MemberTypeMethod = 2,
32 MemberTypeField = 3,
33 MemberTypeEvent = 4,
34 MemberTypeRefMember = 5,
35 MemberTypeRefObject = 6,
36 MemberTypeBindingError = 7
37 };
38
40 enum DetailType : uint32_t {
41 DetailTypeInvalid = 0,
42 DetailTypeValue = 1,
43 DetailTypeFunctionCall = 2,
44 DetailTypeFunctionReturn = 3,
45 DetailTypeFunctionDefaults = 4,
46 DetailTypeSubscriptionState = 5,
47 DetailTypeAnnouncementState = 6,
48 DetailTypeReferencePath = 7,
49 DetailTypeBindingError = 8
50 };
51
52 /* static */
53
55 uint32_t memberType {MemberType::MemberTypeInvalid};
56
58 uint32_t detailType {DetailType::DetailTypeInvalid};
59
61 uint32_t pathLength;
62
64 uint32_t dataLength;
65
66 /* dynamic */
67
69 std::string path;
70
72 std::vector<uint8_t> data;
73};
74
75}
76}
Definition AbstractFile.h:19
Distributed object member (communication setup)
Definition DistributedObjectMember.h:20
uint32_t pathLength
length of variable name in bytes
Definition DistributedObjectMember.h:61
MemberType
type of the distributed object member
Definition DistributedObjectMember.h:28
std::string path
path of the distributed object member
Definition DistributedObjectMember.h:69
std::vector< uint8_t > data
variable data
Definition DistributedObjectMember.h:72
DetailType
detail type of the distributed object
Definition DistributedObjectMember.h:40
uint32_t dataLength
length of variable data in bytes
Definition DistributedObjectMember.h:64
Object header.
Definition ObjectHeader.h:22