SRS-control 0.1.4
Loading...
Searching...
No Matches
SRSWorld.hpp
Go to the documentation of this file.
1#pragma once
2
3#include "srs/SRSEmulator.hpp"
6#include <cstddef>
7#include <cstdint>
8#include <memory>
9#include <optional>
10#include <spdlog/spdlog.h>
11#include <string>
12#include <string_view>
13#include <thread>
14
15namespace srs::test
16{
17 class World
18 {
19 public:
20 explicit World(std::string_view input_filename);
21
22 auto launch_server() -> std::optional<std::string>;
23
24 auto set_continue_output(bool is_continue) { srs_server_->set_continue_output(is_continue); }
25
26 auto set_delay_time_us(std::size_t time) { srs_server_->set_delay_time(time); }
27
28 auto get_server() -> auto* { return srs_server_.get(); }
29
30 void init();
31
32 auto get_app() -> App& { return app_; }
33 [[nodiscard]] auto get_error_msg() const -> const auto& { return error_msg_; }
34 [[nodiscard]] auto get_event_nums() const -> const auto& { return event_nums_; }
35
36 private:
39 std::unique_ptr<SRSEmulator> srs_server_;
40 std::string error_msg_;
41 uint64_t event_nums_ = 0;
42 std::jthread srs_server_thread_;
43 };
44
45} // namespace srs::test
The primary interface class of SRS-Control.
auto get_server() -> auto *
Definition SRSWorld.hpp:28
std::string error_msg_
Definition SRSWorld.hpp:40
std::jthread srs_server_thread_
Definition SRSWorld.hpp:42
std::unique_ptr< SRSEmulator > srs_server_
Definition SRSWorld.hpp:39
auto set_continue_output(bool is_continue)
Definition SRSWorld.hpp:24
auto launch_server() -> std::optional< std::string >
Definition SRSWorld.cpp:24
auto get_event_nums() const -> const auto &
Definition SRSWorld.hpp:34
World(std::string_view input_filename)
Definition SRSWorld.cpp:12
auto get_app() -> App &
Definition SRSWorld.hpp:32
auto set_delay_time_us(std::size_t time)
Definition SRSWorld.hpp:26
auto get_error_msg() const -> const auto &
Definition SRSWorld.hpp:33
Config & app_config_
Definition SRSWorld.hpp:38
uint64_t event_nums_
Definition SRSWorld.hpp:41
Main configuration struct.