//#include "someip_client.hpp" #include "someip_client_cfg.hpp" #ifndef VSOMEIP_ENABLE_SIGNAL_HANDLING client *my_client_ptr(nullptr); void client_handle_signal(int _signal) { if (my_client_ptr != nullptr && (_signal == SIGINT || _signal == SIGTERM || _signal == SIGKILL)) my_client_ptr->stop(); } #endif void my_someip_client_thread_func(void* arg) { bool use_tcp = false; bool be_quiet = false; uint32_t cycle = 1000; // Default: 1s std::string tcp_enable("--tcp"); std::string udp_enable("--udp"); std::string quiet_enable("--quiet"); std::string cycle_arg("--cycle"); /* int i = 1; while (i < argc) { if (tcp_enable == argv[i]) { use_tcp = true; } else if (udp_enable == argv[i]) { use_tcp = false; } else if (quiet_enable == argv[i]) { be_quiet = true; } else if (cycle_arg == argv[i] && i+1 < argc) { i++; std::stringstream converter; converter << argv[i]; converter >> cycle; } i++; }*/ client my_client(use_tcp, be_quiet, cycle); #ifndef VSOMEIP_ENABLE_SIGNAL_HANDLING my_client_ptr = &my_client; signal(SIGINT, client_handle_signal); signal(SIGTERM, client_handle_signal); signal(SIGKILL, client_handle_signal); #endif if (my_client.init()) { for (auto const &server : request_services){ my_client.start_request_service(server._service, server._instance); } for (auto const &method : request_methods){ my_client.start_request_method(method._service, method._instance, method._method, method._request_method_func, method._message_type, method._massage_handle_func); } for (auto const &event : request_events){ my_client.start_request_event(event._service, event._instance, event._eventgroup, event._event, event._type, event._massage_handle_func); } my_client.start(); //block function /* below to Stop Client */ // for (auto const &method : request_methods){ // my_client.stop_request_method(method._service, method._instance, method._method); // } for (auto const &event : request_events){ my_client.stop_request_event(event._service, event._instance, event._event); } for (auto const &event : request_events){ my_client.stop_request_event_group(event._service, event._instance, event._eventgroup); } for (auto const &server : request_services){ my_client.stop_request_service(server._service, server._instance); } my_client.stop(); return; } else { return; } }