5#include <boost/asio/ip/udp.hpp>
6#include <boost/asio/signal_set.hpp>
7#include <boost/asio/thread_pool.hpp>
62 void read_data(
bool is_non_stop =
true);
65 void start_workflow(
bool is_blocking =
true);
66 void wait_for_finish();
70 return status_.wait_for_status(std::forward<
decltype(condition)>(condition), time_duration);
74 void set_remote_endpoint(std::string_view remote_ip,
int port_number);
80 void set_output_filenames(
const std::vector<std::string>& filenames);
96 using udp = asio::ip::udp;
AppExitHelper(AppExitHelper &&)=delete
~AppExitHelper() noexcept
AppExitHelper & operator=(AppExitHelper &&)=delete
AppExitHelper & operator=(const AppExitHelper &)=default
AppExitHelper(const AppExitHelper &)=default
asio::executor_work_guard< io_context_type::executor_type > io_work_guard_
void set_fec_data_receiv_port(int port_num)
auto get_data_reader() -> connection::DataReader *
App & operator=(const App &)=delete
void set_status_acq_on(bool val=true)
auto get_status() const -> const auto &
uint16_t channel_address_
std::string error_string_
std::shared_ptr< connection::DataReader > data_reader_
asio::signal_set signal_set_
AppExitHelper exit_helper_
auto get_error_string() const -> const std::string &
void notify_status_change()
auto get_workflow_handler() const -> const auto &
std::jthread working_thread_
std::unique_ptr< workflow::Handler > workflow_handler_
auto get_channel_address() const -> uint16_t
App & operator=(App &&)=delete
void set_status_is_reading(bool val=true)
auto wait_for_status(auto &&condition, std::chrono::seconds time_duration=common::DEFAULT_STATUS_WAITING_TIME_SECONDS) -> bool
auto get_io_context() -> auto &
udp::endpoint remote_endpoint_
io_context_type io_context_
void wait_for_reading_finish()
void set_error_string(std::string_view err_msg)
void set_status_acq_off(bool val=true)
asio::thread_pool io_context_type
constexpr auto DEFAULT_CHANNEL_ADDRE
constexpr auto DEFAULT_STATUS_WAITING_TIME_SECONDS