// Copyright (C) 2015-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 E2E_TEST_CLIENT_HPP #define E2E_TEST_CLIENT_HPP #include #include #include "../someip_test_globals.hpp" #include #include #include #include class e2e_test_client { public: e2e_test_client(bool _test_external_communication, bool _is_remote_client_allowed); bool init(); void start(); void stop(); void on_state(vsomeip::state_type_e _state); void on_availability(vsomeip::service_t _service, vsomeip::instance_t _instance, bool _is_available); void on_message(const std::shared_ptr &_response); void run(); void join_sender_thread(); private: void shutdown_service(); std::shared_ptr app_; std::mutex mutex_; std::condition_variable condition_; bool is_available_; std::thread sender_; std::atomic received_responses_; std::atomic received_allowed_events_; bool test_external_communication_; bool is_remote_client_allowed_; }; #endif // E2E_TEST_CLIENT_HPP