feat():initial version
This commit is contained in:
85
source/example/someip_client.cpp
Normal file
85
source/example/someip_client.cpp
Normal file
@@ -0,0 +1,85 @@
|
||||
//#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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user