4646using namespace eprosima ;
4747using namespace eprosima ::ddsrouter;
4848
49+ int exit (const ui::ProcessReturnCode& code);
50+
4951int main (
5052 int argc,
5153 char ** argv)
@@ -59,15 +61,15 @@ int main(
5961
6062 if (arg_parse_result == ui::ProcessReturnCode::help_argument)
6163 {
62- return static_cast < int > (ui::ProcessReturnCode::success);
64+ return exit (ui::ProcessReturnCode::success);
6365 }
6466 else if (arg_parse_result == ui::ProcessReturnCode::version_argument)
6567 {
66- return static_cast < int > (ui::ProcessReturnCode::success);
68+ return exit (ui::ProcessReturnCode::success);
6769 }
6870 else if (arg_parse_result != ui::ProcessReturnCode::success)
6971 {
70- return static_cast < int > (arg_parse_result);
72+ return exit (arg_parse_result);
7173 }
7274
7375 // Check file is in args, else get the default file
@@ -87,7 +89,8 @@ int main(
8789 EPROSIMA_LOG_ERROR (
8890 DDSROUTER_ARGS,
8991 " File '" << commandline_args.file_path << " ' does not exist or it is not accessible." );
90- return static_cast <int >(ui::ProcessReturnCode::required_argument_failed);
92+
93+ return exit (ui::ProcessReturnCode::required_argument_failed);
9194 }
9295
9396 logUser (DDSROUTER_EXECUTION, " Starting DDS Router Tool execution." );
@@ -274,23 +277,27 @@ int main(
274277 " Error Loading DDS Router Configuration from file " << commandline_args.file_path <<
275278 " . Error message:\n " <<
276279 e.what ());
277- return static_cast <int >(ui::ProcessReturnCode::execution_failed);
280+
281+ return exit (ui::ProcessReturnCode::execution_failed);
278282 }
279283 catch (const eprosima::utils::InitializationException& e)
280284 {
281285 EPROSIMA_LOG_ERROR (DDSROUTER_ERROR,
282286 " Error Initializing DDS Router. Error message:\n " <<
283287 e.what ());
284- return static_cast <int >(ui::ProcessReturnCode::execution_failed);
288+
289+ return exit (ui::ProcessReturnCode::execution_failed);
285290 }
286291
287292 logUser (DDSROUTER_EXECUTION, " Finishing DDS Router Tool execution correctly." );
288293
289- // Force print every log before closing
290- eprosima::utils::Log::Flush ();
294+ return exit (ui::ProcessReturnCode::success);
295+ }
291296
297+ int exit (const ui::ProcessReturnCode& code)
298+ {
292299 // Delete the consumers before closing
293300 eprosima::utils::Log::ClearConsumers ();
294301
295- return static_cast <int >(ui::ProcessReturnCode::success );
302+ return static_cast <int >(code );
296303}
0 commit comments