summaryrefslogtreecommitdiff
path: root/implementation/configuration/include/internal.hpp.in
blob: d10c6d6805a090126d78aa0e421784625c421fd7 (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
// Copyright (C) 2014-2016 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>

#define VSOMEIP_ENV_APPLICATION_NAME            "VSOMEIP_APPLICATION_NAME"
#define VSOMEIP_ENV_CONFIGURATION               "VSOMEIP_CONFIGURATION"
#define VSOMEIP_ENV_CONFIGURATION_MODULE        "VSOMEIP_CONFIGURATION_MODULE"

#define VSOMEIP_DEFAULT_CONFIGURATION_FILE      "/etc/vsomeip.json"
#define VSOMEIP_LOCAL_CONFIGURATION_FILE        "./vsomeip.json"

#define VSOMEIP_DEFAULT_CONFIGURATION_FOLDER     "/etc/vsomeip"
#define VSOMEIP_LOCAL_CONFIGURATION_FOLDER       "./vsomeip"

#define VSOMEIP_BASE_PATH                       "/tmp/vsomeip-"

#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             1000
#define VSOMEIP_DEFAULT_FLUSH_TIMEOUT           1000

#define VSOMEIP_DEFAULT_WATCHDOG_TIMEOUT        5000
#define VSOMEIP_DEFAULT_MAX_MISSING_PONGS       3

#define VSOMEIP_MAX_DISPATCHERS                 10
#define VSOMEIP_MAX_DISPATCH_TIME               100

#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_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          16
#define VSOMEIP_SUBSCRIBE_ACK_COMMAND_SIZE      13
#define VSOMEIP_SUBSCRIBE_NACK_COMMAND_SIZE     13
#define VSOMEIP_UNSUBSCRIBE_COMMAND_SIZE        14
#define VSOMEIP_REGISTER_EVENT_COMMAND_SIZE     15
#define VSOMEIP_UNREGISTER_EVENT_COMMAND_SIZE   14

#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

namespace vsomeip {

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_;
};

} // namespace vsomeip

#endif // VSOMEIP_INTERNAL_HPP