Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
freeopcua
include
opc
ua
protocol
binary
include/opc/ua/protocol/binary/common.h
Go to the documentation of this file.
1
11
#ifndef __OPC_UA_BINARY_COMMON_H__
12
#define __OPC_UA_BINARY_COMMON_H__
13
14
#include <
opc/ua/protocol/types.h
>
15
#include <
opc/ua/protocol/extension_identifiers.h
>
16
#include <
opc/ua/protocol/message_identifiers.h
>
17
18
#include <algorithm>
19
#include <stdint.h>
20
#include <string>
21
#include <vector>
22
23
namespace
OpcUa
24
{
25
namespace
Binary
26
{
27
template
<
typename
T>
28
std::size_t
RawSize
(
const
T & obj);
29
30
template
<
typename
T>
31
std::size_t
RawSizeContainer
(
const
T & container)
32
{
33
const
std::size_t headerSize = 4;
34
std::size_t totalSize = headerSize;
35
std::for_each(container.begin(), container.end(), [&](
const
typename
T::value_type & val) {totalSize +=
RawSize
(val);});
36
return
totalSize;
37
}
38
39
40
enum
MessageType
41
{
42
MT_INVALID
= 0,
43
MT_HELLO
= 1,
44
MT_ACKNOWLEDGE
,
45
MT_ERROR
,
46
MT_SECURE_OPEN
,
47
MT_SECURE_CLOSE
,
48
MT_SECURE_MESSAGE
,
49
};
50
51
enum
ChunkType
52
{
53
CHT_INVALID
= 0,
54
CHT_SINGLE
= 1,
55
CHT_INTERMEDIATE
,
56
CHT_FINAL
,
57
};
58
59
struct
Header
60
{
61
MessageType
Type
;
62
ChunkType
Chunk
;
63
uint32_t
Size
;
64
65
Header
();
66
explicit
Header
(
MessageType
type,
ChunkType
chunk);
67
std::size_t
AddSize
(std::size_t size);
68
std::size_t
MessageSize
()
const
;
69
void
ResetSize
();
70
};
71
72
73
// Hello
74
// os << Header << Hello << flush
75
// is >> Header >> Acknowledge;
76
77
struct
Hello
78
{
79
uint32_t
ProtocolVersion
;
80
uint32_t
ReceiveBufferSize
;
81
uint32_t
SendBufferSize
;
82
uint32_t
MaxMessageSize
;
83
uint32_t
MaxChunkCount
;
84
std::string
EndpointUrl
;
85
86
Hello
();
87
};
88
89
struct
Acknowledge
90
{
91
uint32_t
ProtocolVersion
;
92
uint32_t
ReceiveBufferSize
;
93
uint32_t
SendBufferSize
;
94
uint32_t
MaxMessageSize
;
95
uint32_t
MaxChunkCount
;
96
97
Acknowledge
();
98
};
99
100
struct
Error
101
{
102
uint32_t
Code
;
103
std::string
Reason
;
104
105
Error
();
106
};
107
108
struct
SecureHeader
109
{
110
MessageType
Type
;
111
ChunkType
Chunk
;
112
uint32_t
Size
;
113
uint32_t
ChannelId
;
114
115
SecureHeader
();
116
explicit
SecureHeader
(
MessageType
type,
ChunkType
chunk, uint32_t channelId);
117
118
std::size_t
AddSize
(std::size_t size);
119
std::size_t
MessageSize
()
const
;
120
void
ResetSize
();
121
};
122
123
struct
AsymmetricAlgorithmHeader
124
{
125
std::string
SecurityPolicyUri
;
126
std::vector<uint8_t>
SenderCertificate
;
127
std::vector<uint8_t>
ReceiverCertificateThumbPrint
;
128
};
129
130
struct
SymmetricAlgorithmHeader
131
{
132
uint32_t
TokenId
;
133
134
SymmetricAlgorithmHeader
();
135
};
136
137
struct
SequenceHeader
138
{
139
uint32_t
SequenceNumber
;
140
uint32_t
RequestId
;
141
142
SequenceHeader
();
143
};
144
145
}
// namespace Binary
146
}
// namespace OpcUa
147
148
149
#endif // __OPC_UA_BINARY_COMMON_H__
150
OpcUa::Binary::Hello
Definition:
include/opc/ua/protocol/binary/common.h:77
types.h
OpcUa::Binary::MT_ACKNOWLEDGE
Definition:
include/opc/ua/protocol/binary/common.h:44
OpcUa::Binary::Header::ResetSize
void ResetSize()
Definition:
binary_messages.cpp:53
OpcUa::Binary::SymmetricAlgorithmHeader
Definition:
include/opc/ua/protocol/binary/common.h:130
OpcUa::Binary::AsymmetricAlgorithmHeader::ReceiverCertificateThumbPrint
std::vector< uint8_t > ReceiverCertificateThumbPrint
Definition:
include/opc/ua/protocol/binary/common.h:127
OpcUa::Binary::AsymmetricAlgorithmHeader::SecurityPolicyUri
std::string SecurityPolicyUri
Definition:
include/opc/ua/protocol/binary/common.h:125
OpcUa::Binary::SymmetricAlgorithmHeader::TokenId
uint32_t TokenId
Definition:
include/opc/ua/protocol/binary/common.h:132
OpcUa::Binary::SequenceHeader
Definition:
include/opc/ua/protocol/binary/common.h:137
testing::internal::string
::std::string string
Definition:
gmock/fused-src/gtest/gtest.h:2070
OpcUa::Binary::Acknowledge
Definition:
include/opc/ua/protocol/binary/common.h:89
OpcUa::Binary::AsymmetricAlgorithmHeader::SenderCertificate
std::vector< uint8_t > SenderCertificate
Definition:
include/opc/ua/protocol/binary/common.h:126
OpcUa::Binary::SecureHeader::Chunk
ChunkType Chunk
Definition:
include/opc/ua/protocol/binary/common.h:111
OpcUa::Binary::Acknowledge::MaxMessageSize
uint32_t MaxMessageSize
Definition:
include/opc/ua/protocol/binary/common.h:94
OpcUa::Binary::SecureHeader::ChannelId
uint32_t ChannelId
Definition:
include/opc/ua/protocol/binary/common.h:113
OpcUa::Binary::Hello::SendBufferSize
uint32_t SendBufferSize
Definition:
include/opc/ua/protocol/binary/common.h:81
OpcUa::Binary::Error::Code
uint32_t Code
Definition:
include/opc/ua/protocol/binary/common.h:102
OpcUa::Binary::MT_ERROR
Definition:
include/opc/ua/protocol/binary/common.h:45
OpcUa::Binary::Hello::EndpointUrl
std::string EndpointUrl
Definition:
include/opc/ua/protocol/binary/common.h:84
OpcUa::Binary::MT_HELLO
Definition:
include/opc/ua/protocol/binary/common.h:43
OpcUa::Binary::Acknowledge::ProtocolVersion
uint32_t ProtocolVersion
Definition:
include/opc/ua/protocol/binary/common.h:91
OpcUa::Binary::Hello::MaxChunkCount
uint32_t MaxChunkCount
Definition:
include/opc/ua/protocol/binary/common.h:83
OpcUa::Binary::Header
Definition:
include/opc/ua/protocol/binary/common.h:59
OpcUa::Binary::Header::AddSize
std::size_t AddSize(std::size_t size)
Definition:
binary_messages.cpp:41
OpcUa::Binary::Header::Type
MessageType Type
Definition:
include/opc/ua/protocol/binary/common.h:61
OpcUa::Binary::SecureHeader::Type
MessageType Type
Definition:
include/opc/ua/protocol/binary/common.h:110
OpcUa::Binary::Header::Chunk
ChunkType Chunk
Definition:
include/opc/ua/protocol/binary/common.h:62
extension_identifiers.h
OpcUa::Binary::MT_SECURE_OPEN
Definition:
include/opc/ua/protocol/binary/common.h:46
OpcUa
OPC UA Address space part. GNU LGPL.
Definition:
ua/client/addon.h:18
OpcUa::Binary::AsymmetricAlgorithmHeader
Definition:
include/opc/ua/protocol/binary/common.h:123
OpcUa::Binary::Header::Header
Header()
Definition:
binary_messages.cpp:25
testing::gmock_generated_actions_test::Binary
const char * Binary(const char *input, short n)
Definition:
gmock-generated-actions_test.cc:95
OpcUa::Binary::Hello::MaxMessageSize
uint32_t MaxMessageSize
Definition:
include/opc/ua/protocol/binary/common.h:82
OpcUa::Binary::Acknowledge::SendBufferSize
uint32_t SendBufferSize
Definition:
include/opc/ua/protocol/binary/common.h:93
OpcUa::Binary::SecureHeader
Definition:
include/opc/ua/protocol/binary/common.h:108
OpcUa::Binary::CHT_INVALID
Definition:
include/opc/ua/protocol/binary/common.h:53
message_identifiers.h
OpcUa::Binary::MT_INVALID
Definition:
include/opc/ua/protocol/binary/common.h:42
OpcUa::Binary::SequenceHeader::SequenceNumber
uint32_t SequenceNumber
Definition:
include/opc/ua/protocol/binary/common.h:139
OpcUa::Binary::Error
Definition:
include/opc/ua/protocol/binary/common.h:100
OpcUa::Binary::Hello::ProtocolVersion
uint32_t ProtocolVersion
Definition:
include/opc/ua/protocol/binary/common.h:79
OpcUa::Binary::Header::MessageSize
std::size_t MessageSize() const
Definition:
binary_messages.cpp:48
OpcUa::Binary::SecureHeader::Size
uint32_t Size
Definition:
include/opc/ua/protocol/binary/common.h:112
OpcUa::Binary::CHT_SINGLE
Definition:
include/opc/ua/protocol/binary/common.h:54
OpcUa::Binary::MessageType
MessageType
Definition:
include/opc/ua/protocol/binary/common.h:40
OpcUa::Binary::SequenceHeader::RequestId
uint32_t RequestId
Definition:
include/opc/ua/protocol/binary/common.h:140
OpcUa::Binary::Acknowledge::ReceiveBufferSize
uint32_t ReceiveBufferSize
Definition:
include/opc/ua/protocol/binary/common.h:92
OpcUa::Binary::CHT_INTERMEDIATE
Definition:
include/opc/ua/protocol/binary/common.h:55
OpcUa::Binary::Acknowledge::MaxChunkCount
uint32_t MaxChunkCount
Definition:
include/opc/ua/protocol/binary/common.h:95
OpcUa::Binary::CHT_FINAL
Definition:
include/opc/ua/protocol/binary/common.h:56
OpcUa::Binary::Header::Size
uint32_t Size
Definition:
include/opc/ua/protocol/binary/common.h:63
OpcUa::Binary::Error::Reason
std::string Reason
Definition:
include/opc/ua/protocol/binary/common.h:103
OpcUa::Binary::MT_SECURE_MESSAGE
Definition:
include/opc/ua/protocol/binary/common.h:48
OpcUa::Binary::RawSizeContainer
std::size_t RawSizeContainer(const T &container)
Definition:
include/opc/ua/protocol/binary/common.h:31
OpcUa::Binary::Hello::ReceiveBufferSize
uint32_t ReceiveBufferSize
Definition:
include/opc/ua/protocol/binary/common.h:80
OpcUa::Binary::RawSize
std::size_t RawSize(const T &obj)
OpcUa::Binary::ChunkType
ChunkType
Definition:
include/opc/ua/protocol/binary/common.h:51
OpcUa::Binary::MT_SECURE_CLOSE
Definition:
include/opc/ua/protocol/binary/common.h:47
ros_opcua_impl_freeopcua
Author(s): Denis Štogl
autogenerated on Tue Jan 19 2021 03:06:04