blob: 686ea8e9ce93cc138f7fef330726015edacc73a9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
|
// Copyright (C) 2014-2017 Bayerische Motoren Werke Aktiengesellschaft (BMW AG)
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
#ifndef VSOMEIP_INTERNAL_HPP
#define VSOMEIP_INTERNAL_HPP
#include <cstdint>
#include <limits>
#define VSOMEIP_ENV_APPLICATION_NAME "VSOMEIP_APPLICATION_NAME"
#define VSOMEIP_ENV_CONFIGURATION "VSOMEIP_CONFIGURATION"
#define VSOMEIP_ENV_CONFIGURATION_MODULE "VSOMEIP_CONFIGURATION_MODULE"
#define VSOMEIP_ENV_MANDATORY_CONFIGURATION_FILES "VSOMEIP_MANDATORY_CONFIGURATION_FILES"
#define VSOMEIP_DEFAULT_CONFIGURATION_FILE "/etc/vsomeip.json"
#define VSOMEIP_LOCAL_CONFIGURATION_FILE "./vsomeip.json"
#define VSOMEIP_MANDATORY_CONFIGURATION_FILES "vsomeip_std.json,vsomeip_app.json,vsomeip_plc.json"
#define VSOMEIP_DEFAULT_CONFIGURATION_FOLDER "/etc/vsomeip"
#define VSOMEIP_LOCAL_CONFIGURATION_FOLDER "./vsomeip"
#define VSOMEIP_BASE_PATH "/tmp/vsomeip-"
#define VSOMEIP_CFG_LIBRARY "libvsomeip-cfg.so.@VSOMEIP_MAJOR_VERSION@"
#define VSOMEIP_CFG_RUNTIME_SYMBOL VSOMEIP_CFG_RUNTIME
#define VSOMEIP_CFG_RUNTIME_SYMBOL_STRING "VSOMEIP_CFG_RUNTIME"
#define VSOMEIP_SD_LIBRARY "libvsomeip-sd.so.@VSOMEIP_MAJOR_VERSION@"
#define VSOMEIP_SD_RUNTIME_SYMBOL VSOMEIP_SD_RUNTIME
#define VSOMEIP_SD_RUNTIME_SYMBOL_STRING "VSOMEIP_SD_RUNTIME"
#define VSOMEIP_ROUTING "@VSOMEIP_ROUTING@"
#define VSOMEIP_ROUTING_CLIENT 0
#define VSOMEIP_ROUTING_INFO_SIZE_INIT 256
#ifdef _WIN32
#define VSOMEIP_INTERNAL_BASE_PORT 51234
#define __func__ __FUNCTION__
#endif
#define VSOMEIP_UNICAST_ADDRESS "@VSOMEIP_UNICAST_ADDRESS@"
#define VSOMEIP_DEFAULT_CONNECT_TIMEOUT 100
#define VSOMEIP_MAX_CONNECT_TIMEOUT 1600
#define VSOMEIP_DEFAULT_FLUSH_TIMEOUT 1000
#define VSOMEIP_DEFAULT_WATCHDOG_TIMEOUT 5000
#define VSOMEIP_DEFAULT_MAX_MISSING_PONGS 3
#define VSOMEIP_IO_THREAD_COUNT 2
#define VSOMEIP_MAX_DISPATCHERS 10
#define VSOMEIP_MAX_DISPATCH_TIME 100
#define VSOMEIP_MAX_DESERIALIZER 5
#define VSOMEIP_COMMAND_HEADER_SIZE 7
#define VSOMEIP_COMMAND_TYPE_POS 0
#define VSOMEIP_COMMAND_CLIENT_POS 1
#define VSOMEIP_COMMAND_SIZE_POS_MIN 3
#define VSOMEIP_COMMAND_SIZE_POS_MAX 5
#define VSOMEIP_COMMAND_PAYLOAD_POS 7
#define VSOMEIP_REGISTER_APPLICATION 0x00
#define VSOMEIP_DEREGISTER_APPLICATION 0x01
#define VSOMEIP_APPLICATION_LOST 0x02
#define VSOMEIP_ROUTING_INFO 0x03
#define VSOMEIP_REGISTERED_ACK 0x04
#define VSOMEIP_PING 0x0E
#define VSOMEIP_PONG 0x0F
#define VSOMEIP_OFFER_SERVICE 0x10
#define VSOMEIP_STOP_OFFER_SERVICE 0x11
#define VSOMEIP_SUBSCRIBE 0x12
#define VSOMEIP_UNSUBSCRIBE 0x13
#define VSOMEIP_REQUEST_SERVICE 0x14
#define VSOMEIP_RELEASE_SERVICE 0x15
#define VSOMEIP_SUBSCRIBE_NACK 0x16
#define VSOMEIP_SUBSCRIBE_ACK 0x17
#define VSOMEIP_SEND 0x18
#define VSOMEIP_NOTIFY 0x19
#define VSOMEIP_NOTIFY_ONE 0x1A
#define VSOMEIP_REGISTER_EVENT 0x1B
#define VSOMEIP_UNREGISTER_EVENT 0x1C
#define VSOMEIP_ID_RESPONSE 0x1D
#define VSOMEIP_OFFER_SERVICE_COMMAND_SIZE 16
#define VSOMEIP_REQUEST_SERVICE_COMMAND_SIZE 17
#define VSOMEIP_RELEASE_SERVICE_COMMAND_SIZE 11
#define VSOMEIP_STOP_OFFER_SERVICE_COMMAND_SIZE 16
#define VSOMEIP_SUBSCRIBE_COMMAND_SIZE 18
#define VSOMEIP_SUBSCRIBE_ACK_COMMAND_SIZE 17
#define VSOMEIP_SUBSCRIBE_NACK_COMMAND_SIZE 17
#define VSOMEIP_UNSUBSCRIBE_COMMAND_SIZE 16
#define VSOMEIP_REGISTER_EVENT_COMMAND_SIZE 15
#define VSOMEIP_UNREGISTER_EVENT_COMMAND_SIZE 14
#define VSOMEIP_ID_RESPONSE_COMMAND_SIZE 12
#ifndef _WIN32
#include <pthread.h>
#endif
#define VSOMEIP_DATA_ID 0x677D
#define VSOMEIP_SHM_NAME "/vsomeip"
#define VSOMEIP_DIAGNOSIS_ADDRESS @VSOMEIP_DIAGNOSIS_ADDRESS@
#define VSOMEIP_DEFAULT_SHM_PERMISSION 0666
#define VSOMEIP_DEFAULT_UMASK_LOCAL_ENDPOINTS 0000
#define VSOMEIP_MAX_CLIENTS 255
#define VSOMEIP_ROUTING_READY_MESSAGE "@VSOMEIP_ROUTING_READY_MESSAGE@"
namespace vsomeip {
typedef enum {
RIE_ADD_CLIENT = 0x0,
RIE_ADD_SERVICE_INSTANCE = 0x1,
RIE_DEL_SERVICE_INSTANCE = 0x2,
RIE_DEL_CLIENT = 0x3,
} routing_info_entry_e;
struct configuration_data_t {
#ifndef _WIN32
volatile char initialized_;
pthread_mutex_t mutex_;
#endif
unsigned short client_base_;
unsigned short used_client_ids_[VSOMEIP_MAX_CLIENTS];
int max_used_client_ids_index_;
unsigned char max_assigned_client_id_low_byte_;
unsigned short routing_manager_host_;
};
#ifndef _WIN32
constexpr std::uint32_t MESSAGE_SIZE_UNLIMITED = std::numeric_limits<std::uint32_t>::max();
#elif _MSC_VER >= 1900
constexpr std::uint32_t MESSAGE_SIZE_UNLIMITED = (std::numeric_limits<std::uint32_t>::max)();
#else
const std::uint32_t MESSAGE_SIZE_UNLIMITED = (std::numeric_limits<std::uint32_t>::max)();
#endif
} // namespace vsomeip
#endif // VSOMEIP_INTERNAL_HPP
|