MCPcopy Create free account
hub / github.com/COVESA/vsomeip / main

Function main

examples/request-sample.cpp:153–225  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

151};
152
153int main(int argc, char** argv) {
154 bool use_tcp = false;
155 bool be_quiet = false;
156 uint32_t cycle = 1000; // Default: 1s
157
158 std::string tcp_enable("--tcp");
159 std::string udp_enable("--udp");
160 std::string quiet_enable("--quiet");
161 std::string cycle_arg("--cycle");
162
163 int i = 1;
164 while (i < argc) {
165 if (tcp_enable == argv[i]) {
166 use_tcp = true;
167 } else if (udp_enable == argv[i]) {
168 use_tcp = false;
169 } else if (quiet_enable == argv[i]) {
170 be_quiet = true;
171 } else if (cycle_arg == argv[i] && i + 1 < argc) {
172 i++;
173 std::stringstream converter;
174 converter << argv[i];
175 converter >> cycle;
176 }
177 i++;
178 }
179
180#ifndef VSOMEIP_ENABLE_SIGNAL_HANDLING
181#if defined(__linux__) || defined(__QNX__)
182 sigset_t its_signals;
183 sigemptyset(&its_signals);
184 sigaddset(&its_signals, SIGINT);
185 sigaddset(&its_signals, SIGTERM);
186 pthread_sigmask(SIG_BLOCK, &its_signals, nullptr);
187#endif
188#endif
189
190 client_sample its_sample(use_tcp, be_quiet, cycle);
191 if (its_sample.init()) {
192#ifndef VSOMEIP_ENABLE_SIGNAL_HANDLING
193#if defined(__linux__) || defined(__QNX__)
194 std::thread signal_watcher([&its_sample]() {
195 sigset_t its_wait_set;
196 sigemptyset(&its_wait_set);
197 sigaddset(&its_wait_set, SIGINT);
198 sigaddset(&its_wait_set, SIGTERM);
199
200 int its_signal = 0;
201 while (sigwait(&its_wait_set, &its_signal) == 0) {
202 if (its_signal == SIGINT || its_signal == SIGTERM) {
203 its_sample.stop();
204 return;
205 }
206 }
207 });
208#endif
209#endif
210 its_sample.start();

Callers

nothing calls this directly

Calls 4

initMethod · 0.45
stopMethod · 0.45
startMethod · 0.45
joinMethod · 0.45

Tested by

no test coverage detected