Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
595321e
build: simplify change of C++ version in CMakeLists.txt
JochenHiller Jan 20, 2026
9ef09e3
build: change more C++ standard references to use build variable VSOM…
JochenHiller Jan 22, 2026
1cd7649
tests: add regression test
Nov 4, 2025
9481656
Fix and document second_address tests
Nov 4, 2025
7c9d6fb
Revert "IO threads exit mitigation "
Nov 4, 2025
318b78b
Fix network_tests/routing_tests
Nov 4, 2025
813275e
tests: updates shebang line to interpret as bash
Nov 4, 2025
63e0b0e
Support compilation with gcc15
lutzbichler Nov 5, 2025
b69aac5
Fix/doc offer_test
Nov 5, 2025
a3da7e7
Fix payload tests return codes
Nov 5, 2025
f420074
fix race condition in connections_ map changes
Nov 5, 2025
cbf53fd
rmi: create local receiver on start
Nov 5, 2025
21ef05e
Introduce a thread-safe timer utility
Nov 5, 2025
bee06c7
tests: add another fake_socket test
Nov 6, 2025
15312f5
app: fail early, fail fast for unknown messages
Nov 6, 2025
6ef7b4e
endpoint: no waiting when stopping due to error
Nov 6, 2025
e1e8068
build: enable CMAKE_EXPORT_COMPILE_COMMANDS
Nov 6, 2025
11a69d0
zuul: catch all valgrind failures
Nov 6, 2025
f168c17
Update subscribe_notify_test_one_tests.md
Nov 7, 2025
46aee6f
endpoint: drop unused state
Nov 7, 2025
007211c
new network-test for start-stop-start application
Nov 7, 2025
7b0f010
Fix remote subscription expiration
Nov 10, 2025
8a7e9da
set tcp quick ack
andrefesilva Nov 10, 2025
98f2fec
Deliver service availability only after endpoint creation
Nov 10, 2025
eb22fea
vSomeIP-Lib 3.6.1 Release
Nov 11, 2025
0db5a55
build: simplify change of C++ version in CMakeLists.txt
JochenHiller Jan 20, 2026
cd4a490
build: change more C++ standard references to use build variable VSOM…
JochenHiller Jan 22, 2026
ce988fc
Merge remote-tracking branch 'origin/enhanceChangeCppVersion' into en…
JochenHiller Jan 23, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Android.bp
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ cc_library_shared {

cflags: [
"-DWITHOUT_SYSTEMD",
"-DVSOMEIP_VERSION=\"3.6.0\"",
"-DVSOMEIP_VERSION=\"3.6.1\"",
"-DVSOMEIP_BASE_PATH=\"/vendor/run/someip/\"",
],

Expand Down
4 changes: 2 additions & 2 deletions Android.mk
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ LOCAL_CFLAGS := \
-frtti \
-fexceptions \
-DWITHOUT_SYSTEMD \
-DVSOMEIP_VERSION=\"3.6.0\" \
-DVSOMEIP_VERSION=\"3.6.1\" \
-DVSOMEIP_BASE_PATH=\"/vendor/run/someip/\" \
-Wno-unused-parameter \
-Wno-non-virtual-dtor \
Expand Down Expand Up @@ -160,7 +160,7 @@ LOCAL_CFLAGS := \
-frtti \
-fexceptions \
-DWITHOUT_SYSTEMD \
-DVSOMEIP_VERSION=\"3.6.0\" \
-DVSOMEIP_VERSION=\"3.6.1\" \
-DVSOMEIP_BASE_PATH=\"/vendor/run/someip/\" \
-Wno-unused-parameter \
-Wno-non-virtual-dtor \
Expand Down
32 changes: 32 additions & 0 deletions CHANGES
Original file line number Diff line number Diff line change
@@ -1,6 +1,38 @@
Changes
=======

v3.6.1
- global
- support compilation with gcc15
- enable CMAKE_EXPORT_COMPILE_COMMANDS
- introduce a thread-safe timer utility

- application
- fail early, fail fast for unknown messages
- revert "IO threads exit mitigation"

- routing
- create local receiver on start
- fix remote subscription expiration
- deliver service availability only after endpoint creation

- tests
- add regression test - client ignores server connections for a while
- add another fake_socket test
- update subscribe notify tests documentation
- update shebang line to interpret as bash
- new network-test for start-stop-start application
- doc and fix second address tests
- doc and fix offer_test
- doc and fix routing tests
- fix payload tests return codes

- endpoints
- fix race condition in connections_ map changes
- drop unused state
- no waiting when stopping due to error
- set tcp quick ack

v3.6.0
- global
- drop vsomeip2 compatibility
Expand Down
22 changes: 14 additions & 8 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ set (VSOMEIP_NAME vsomeip3)

set (VSOMEIP_MAJOR_VERSION 3)
set (VSOMEIP_MINOR_VERSION 6)
set (VSOMEIP_PATCH_VERSION 0)
set (VSOMEIP_PATCH_VERSION 1)
set (VSOMEIP_HOTFIX_VERSION 0)

set (VSOMEIP_VERSION ${VSOMEIP_MAJOR_VERSION}.${VSOMEIP_MINOR_VERSION}.${VSOMEIP_PATCH_VERSION})
Expand Down Expand Up @@ -54,6 +54,9 @@ foreach (p LIB BIN INCLUDE CMAKE)
endforeach ()

###################################################################################################

set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

# Set a default build type if none was specified
set(default_build_type "RelWithDebInfo")
if(NOT CMAKE_BUILD_TYPE)
Expand All @@ -63,7 +66,10 @@ if(NOT CMAKE_BUILD_TYPE)
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
endif()

set(CMAKE_CXX_STANDARD 17)
if(NOT DEFINED VSOMEIP_CXX_STANDARD)
set (VSOMEIP_CXX_STANDARD 17)
endif()
set(CMAKE_CXX_STANDARD ${VSOMEIP_CXX_STANDARD})

# OS
if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
Expand Down Expand Up @@ -149,11 +155,11 @@ if (NOT MSVC)
endif ()

if (VALGRIND_TYPE STREQUAL "massif")
set(TEST_ENTRYPOINT ${TEST_ENTRYPOINT} --massif-out-file=${VALGRIND_LOGS_DIR}/test_name.out)
set(TEST_ENTRYPOINT ${TEST_ENTRYPOINT} --massif-out-file=${VALGRIND_LOGS_DIR}/test_name.%p.out)
endif ()

if (VALGRIND_TYPE STREQUAL "memcheck")
set(TEST_ENTRYPOINT ${TEST_ENTRYPOINT} --leak-check=yes --suppressions=${VALGRIND_SUPPRESS_FILE} --log-file=${VALGRIND_LOGS_DIR}/test_name.out)
set(TEST_ENTRYPOINT ${TEST_ENTRYPOINT} --leak-check=yes --suppressions=${VALGRIND_SUPPRESS_FILE} --log-file=${VALGRIND_LOGS_DIR}/test_name.%p.out)
endif ()
endif ()
endif (NOT MSVC)
Expand Down Expand Up @@ -291,7 +297,7 @@ list(SORT ${VSOMEIP_NAME}-cfg_SRC)
if (VSOMEIP_ENABLE_MULTIPLE_ROUTING_MANAGERS EQUAL 0)
add_library(${VSOMEIP_NAME}-cfg SHARED ${${VSOMEIP_NAME}-cfg_SRC})
set_target_properties (${VSOMEIP_NAME}-cfg PROPERTIES VERSION ${VSOMEIP_VERSION} SOVERSION ${VSOMEIP_MAJOR_VERSION})
target_compile_features(${VSOMEIP_NAME}-cfg PRIVATE cxx_std_17)
target_compile_features(${VSOMEIP_NAME}-cfg PRIVATE cxx_std_${VSOMEIP_CXX_STANDARD})
if (MSVC)
set_target_properties(${VSOMEIP_NAME}-cfg PROPERTIES COMPILE_DEFINITIONS "VSOMEIP_DLL_COMPILATION_PLUGIN")
endif()
Expand Down Expand Up @@ -326,7 +332,7 @@ list(SORT ${VSOMEIP_NAME}_SRC)

add_library(${VSOMEIP_NAME} SHARED ${${VSOMEIP_NAME}_SRC})
set_target_properties (${VSOMEIP_NAME} PROPERTIES VERSION ${VSOMEIP_VERSION} SOVERSION ${VSOMEIP_MAJOR_VERSION})
target_compile_features(${VSOMEIP_NAME} PRIVATE cxx_std_17)
target_compile_features(${VSOMEIP_NAME} PRIVATE cxx_std_${VSOMEIP_CXX_STANDARD})
if (MSVC)
set_target_properties(${VSOMEIP_NAME} PROPERTIES COMPILE_DEFINITIONS "VSOMEIP_DLL_COMPILATION")
set_target_properties(${VSOMEIP_NAME} PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON)
Expand Down Expand Up @@ -363,7 +369,7 @@ file(GLOB ${VSOMEIP_NAME}-sd_SRC
list(SORT ${VSOMEIP_NAME}-sd_SRC)

add_library(${VSOMEIP_NAME}-sd SHARED ${${VSOMEIP_NAME}-sd_SRC})
target_compile_features(${VSOMEIP_NAME}-sd PRIVATE cxx_std_17)
target_compile_features(${VSOMEIP_NAME}-sd PRIVATE cxx_std_${VSOMEIP_CXX_STANDARD})
set_target_properties (${VSOMEIP_NAME}-sd PROPERTIES VERSION ${VSOMEIP_VERSION} SOVERSION ${VSOMEIP_MAJOR_VERSION})
if (MSVC)
set_target_properties(${VSOMEIP_NAME}-sd PROPERTIES COMPILE_DEFINITIONS "VSOMEIP_DLL_COMPILATION_PLUGIN")
Expand All @@ -381,7 +387,7 @@ file(GLOB_RECURSE ${VSOMEIP_NAME}-e2e_SRC
list(SORT ${VSOMEIP_NAME}-e2e_SRC)

add_library(${VSOMEIP_NAME}-e2e SHARED ${${VSOMEIP_NAME}-e2e_SRC})
target_compile_features(${VSOMEIP_NAME}-e2e PRIVATE cxx_std_17)
target_compile_features(${VSOMEIP_NAME}-e2e PRIVATE cxx_std_${VSOMEIP_CXX_STANDARD})
set_target_properties (${VSOMEIP_NAME}-e2e PROPERTIES VERSION ${VSOMEIP_VERSION} SOVERSION ${VSOMEIP_MAJOR_VERSION})
if (MSVC)
set_target_properties(${VSOMEIP_NAME}-e2e PROPERTIES COMPILE_DEFINITIONS "VSOMEIP_DLL_COMPILATION_PLUGIN")
Expand Down
2 changes: 1 addition & 1 deletion build_qnx/common.mk
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ EXTRA_LIBVPATH = $(USE_ROOT_LIB)/io-sock

CMAKE_ARGS = -DCMAKE_TOOLCHAIN_FILE=$(PROJECT_ROOT)/qnx.nto.toolchain.cmake \
-DCMAKE_INSTALL_PREFIX=$(VSOMEIP_INSTALL_ROOT)/$(CPUVARDIR)/usr \
-DCMAKE_CXX_STANDARD=17 \
-DCMAKE_CXX_STANDARD=$(VSOMEIP_CXX_STANDARD) \
-DCMAKE_NO_SYSTEM_FROM_IMPORTED=TRUE \
-DVSOMEIP_EXTERNAL_DEPS_INSTALL=$(VSOMEIP_EXTERNAL_DEPS_INSTALL) \
-DCMAKE_BUILD_TYPE=$(CMAKE_BUILD_TYPE) \
Expand Down
4 changes: 4 additions & 0 deletions build_qnx/qnx.nto.toolchain.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@ set(CMAKE_CXX_COMPILER ${QNX_HOST}/usr/bin/qcc)
set(CMAKE_AR "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-ar${HOST_EXECUTABLE_SUFFIX}" CACHE PATH "archiver")
set(CMAKE_RANLIB "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-ranlib${HOST_EXECUTABLE_SUFFIX}" CACHE PATH "ranlib")

if(NOT DEFINED VSOMEIP_CXX_STANDARD)
set (VSOMEIP_CXX_STANDARD 17)
endif()

if ("${GCC_VER}" STREQUAL "")
set(GCC_VERSION "" CACHE STRING "gcc_ver")
else()
Expand Down
4 changes: 0 additions & 4 deletions documentation/vsomeipConfiguration.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,7 @@
## Logging

- **logging** - Used to configure the log messages of vSomeIP

- **console** - Specifies whether logging via console is enabled, valid values are `true` or `false`. The default value is `true`.

- **file**:
- **enable** - Specifies whether a log file should be created, valid values are `true` or `false`. The default value is `false`.
- **path** - The absolute path of the log file. The default value is `/tmp/vsomeip.log`.
Expand Down Expand Up @@ -75,7 +73,6 @@
## Routing

- **routing** (optional) - Specifies the properties of the routing. Either a string that specifies the application that hosts the routing component or a structure that specifies all properties of the routing. If the routing is not specified, the first started application will host the routing component.

- **host** - Properties of the routing manager.
- **name** - Name of the application that hosts the routing component.
- **uid** - User identifier of the process that runs the routing component. Must be specified if credential checks are enabled by check_credentials set to true.
Expand Down Expand Up @@ -229,7 +226,6 @@ The following example assumes that different machines (i.e., with different IP a
- **additional** - Generic way to define configuration data for plugins.
- **debounce** - Client/Application specific configuration of debouncing.
- **has_session_handling** - Configures the session handling. Mostly used for E2E use cases when the application handles the CRC calculation over the SOME/IP header by themself, and need the ability to switch off the session handling as otherwise their calculated checksum does not match reality after vsomeip inserts the session identifier. Valid values are `true` or `false`. The default value is `true`.
- **event_loop_periodicity** (optional) - If set to a positive value, it enables the io_context object's event processing run_for implementation to run the loop based on duration instead of running it until the work queue has work to be done. The default value is `0` seconds, which uses the io_context run interface.

<details><summary>Example of Applications configuration</summary>

Expand Down
2 changes: 1 addition & 1 deletion examples/hello_world/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ function(create_target executable)
target_sources(vsomeip_hello_world_${executable} INTERFACE
"${CMAKE_CURRENT_SOURCE_DIR}/hello_world_${executable}.hpp"
)
target_compile_features(vsomeip_hello_world_${executable} INTERFACE cxx_std_17)
target_compile_features(vsomeip_hello_world_${executable} INTERFACE cxx_std_${VSOMEIP_CXX_STANDARD})

target_include_directories(vsomeip_hello_world_${executable} INTERFACE
${CMAKE_CURRENT_SOURCE_DIR}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ struct application_configuration {
std::size_t max_detach_thread_wait_time_;
std::size_t thread_count_;
std::size_t request_debounce_time_;
std::size_t event_loop_periodicity_;
std::map<plugin_type_e, std::set<std::string>> plugins_;
int nice_level_;
debounce_configuration_t debounces_;
Expand Down
40 changes: 28 additions & 12 deletions implementation/configuration/include/configuration.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,19 @@
#ifndef VSOMEIP_V3_CONFIGURATION_HPP
#define VSOMEIP_V3_CONFIGURATION_HPP

#include <chrono>
#include <cstdint>
#include <map>
#include <memory>
#include <set>
#include <string>
#include <chrono>
#include <utility>

#include <boost/asio/ip/address.hpp>
#include <boost/icl/interval_set.hpp>

#include <vsomeip/export.hpp>
#include <vsomeip/defines.hpp>
#include <vsomeip/export.hpp>
#include <vsomeip/plugin.hpp>
#include <vsomeip/primitive_types.hpp>
#include <vsomeip/vsomeip_sec.h>
Expand All @@ -42,6 +44,7 @@ class policy_manager_impl;
class security;
class event;
struct debounce_filter_impl_t;
struct port_range_t;

class configuration {
public:
Expand Down Expand Up @@ -127,15 +130,6 @@ class configuration {
virtual std::size_t get_request_debounce_time(const std::string& _name) const = 0;
virtual bool has_session_handling(const std::string& _name) const = 0;

/**
* @brief Get the boost asio context event loop periodicity.
* If set to a value greather than 0, run for is used with the defined period.
*
* @param _name Application name
* @return std::size_t event loop period.
*/
virtual std::size_t get_event_loop_periodicity(const std::string& _name) const = 0;

virtual std::uint32_t get_max_message_size_local() const = 0;
virtual std::uint32_t get_max_message_size_reliable(const std::string& _address, std::uint16_t _port) const = 0;
virtual std::uint32_t get_max_message_size_unreliable() const = 0;
Expand Down Expand Up @@ -246,7 +240,6 @@ class configuration {
virtual bool is_protected_port(const boost::asio::ip::address& _address, std::uint16_t _port, bool _reliable) const = 0;
virtual bool is_secure_port(const boost::asio::ip::address& _address, std::uint16_t _port, bool _reliable) const = 0;

typedef std::pair<std::uint16_t, std::uint16_t> port_range_t;
virtual void set_sd_acceptance_rule(const boost::asio::ip::address& _address, port_range_t _port_range, port_type_e _type,
const std::string& _path, bool _reliable, bool _enable, bool _default) = 0;

Expand Down Expand Up @@ -303,6 +296,29 @@ class configuration {
virtual std::shared_ptr<security> get_security() const = 0;
};

/// Inclusive port range.
struct port_range_t {
/// Start of the port range.
std::uint16_t start_{ANY_PORT};

/// End (inclusive) of the port range.
std::uint16_t end_{ANY_PORT};

/// Creates a new `port_range_t`.
port_range_t(const std::uint16_t _start, const std::uint16_t _end) : start_(_start), end_(_end) {
// Fix swapped values.
if (start_ > end_) {
std::swap(start_, end_);
}
}

/// Whether the given value is within this port range.
[[nodiscard]] bool contains(const std::uint16_t _value) const { return _value >= start_ && _value <= end_; }

/// Whether both ends of this range are set to `ANY_PORT`.
[[nodiscard]] bool is_any() const { return start_ == ANY_PORT && end_ == ANY_PORT; }
};

} // namespace vsomeip_v3

#endif // VSOMEIP_V3_CONFIGURATION_HPP
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,6 @@ class configuration_impl : public configuration, public std::enable_shared_from_
VSOMEIP_EXPORT int get_io_thread_nice_level(const std::string& _name) const;
VSOMEIP_EXPORT std::size_t get_request_debounce_time(const std::string& _name) const;
VSOMEIP_EXPORT bool has_session_handling(const std::string& _name) const;
VSOMEIP_EXPORT std::size_t get_event_loop_periodicity(const std::string& _name) const;

VSOMEIP_EXPORT std::set<std::pair<service_t, instance_t>> get_remote_services() const;

Expand Down
2 changes: 0 additions & 2 deletions implementation/configuration/include/internal.hpp.in
Original file line number Diff line number Diff line change
Expand Up @@ -128,8 +128,6 @@
#define VSOMEIP_MINIMUM_CHECK_TTL_TIMEOUT 100
#define VSOMEIP_SETSOCKOPT_TIMEOUT_US 500000 // us

#define VSOMEIP_DEFAULT_EVENT_LOOP_PERIODICITY 0 // seconds

#define LOCAL_TCP_PORT_WAIT_TIME @VSOMEIP_LOCAL_TCP_PORT_WAIT_TIME@
#define LOCAL_TCP_PORT_MAX_WAIT_TIME @VSOMEIP_LOCAL_TCP_PORT_MAX_WAIT_TIME@

Expand Down
2 changes: 0 additions & 2 deletions implementation/configuration/include/internal_android.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -111,8 +111,6 @@
#define VSOMEIP_MINIMUM_CHECK_TTL_TIMEOUT 100
#define VSOMEIP_SETSOCKOPT_TIMEOUT_US 500000 // us

#define VSOMEIP_DEFAULT_EVENT_LOOP_PERIODICITY 0 // seconds

#define LOCAL_TCP_PORT_WAIT_TIME 100
#define LOCAL_TCP_PORT_MAX_WAIT_TIME 10000

Expand Down
16 changes: 0 additions & 16 deletions implementation/configuration/src/configuration_impl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -894,7 +894,6 @@ void configuration_impl::load_application_data(const boost::property_tree::ptree
std::size_t its_max_detached_thread_wait_time(VSOMEIP_MAX_WAIT_TIME_DETACHED_THREADS);
std::size_t its_io_thread_count(VSOMEIP_DEFAULT_IO_THREAD_COUNT);
std::size_t its_request_debounce_time(VSOMEIP_REQUEST_DEBOUNCE_TIME);
std::size_t its_event_loop_periodicity{VSOMEIP_DEFAULT_EVENT_LOOP_PERIODICITY};
std::map<plugin_type_e, std::set<std::string>> plugins;
int its_io_thread_nice_level(VSOMEIP_DEFAULT_IO_THREAD_NICE_LEVEL);
debounce_configuration_t its_debounces;
Expand Down Expand Up @@ -953,9 +952,6 @@ void configuration_impl::load_application_data(const boost::property_tree::ptree
}
} else if (its_key == "has_session_handling") {
has_session_handling = (its_value != "false");
} else if (its_key == "event_loop_periodicity") {
its_converter << std::dec << its_value;
its_converter >> its_event_loop_periodicity;
}
}
if (its_name != "") {
Expand All @@ -977,7 +973,6 @@ void configuration_impl::load_application_data(const boost::property_tree::ptree
its_max_detached_thread_wait_time,
its_io_thread_count,
its_request_debounce_time,
its_event_loop_periodicity,
plugins,
its_io_thread_nice_level,
its_debounces,
Expand Down Expand Up @@ -3080,17 +3075,6 @@ bool configuration_impl::has_session_handling(const std::string& _name) const {
return its_value;
}

std::size_t configuration_impl::get_event_loop_periodicity(const std::string& _name) const {
std::size_t its_event_loop_periodicity = VSOMEIP_DEFAULT_EVENT_LOOP_PERIODICITY;

auto found_application = applications_.find(_name);
if (found_application != applications_.end()) {
its_event_loop_periodicity = found_application->second.event_loop_periodicity_;
}

return its_event_loop_periodicity;
}

std::set<std::pair<service_t, instance_t>> configuration_impl::get_remote_services() const {
std::lock_guard<std::mutex> its_lock(services_mutex_);
std::set<std::pair<service_t, instance_t>> its_remote_services;
Expand Down
9 changes: 6 additions & 3 deletions implementation/endpoints/include/abstract_socket_factory.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,16 @@
#ifndef VSOMEIP_V3_ABSTRACT_SOCKET_FACTORY_HPP_
#define VSOMEIP_V3_ABSTRACT_SOCKET_FACTORY_HPP_

#include "abstract_netlink_connector.hpp"
#include "abstract_timer.hpp"
#include "tcp_socket.hpp"

#include <boost/asio/ip/udp.hpp>
#if defined(__linux__) || defined(__QNX__)
#include <boost/asio/local/stream_protocol.hpp>
#endif
#include <functional>

#include "abstract_netlink_connector.hpp"
#include "tcp_socket.hpp"

namespace vsomeip_v3 {

class abstract_socket_factory {
Expand Down Expand Up @@ -44,6 +45,8 @@ class abstract_socket_factory {
return std::make_unique<boost::asio::local::stream_protocol::socket>(_io);
}
#endif

virtual std::unique_ptr<abstract_timer> create_timer(boost::asio::io_context& _io) = 0;
};

// In order for this function to change the globally used abstract_socket_factory,
Expand Down
Loading