Unravel Engine C++ Reference
Loading...
Searching...
No Matches
loading_screen.h
Go to the documentation of this file.
1#pragma once
2
3#include <functional>
4#include <string>
5
6namespace unravel
7{
8
10{
11 using visualizer_fn = std::function<void(const loading_screen&)>;
12 using on_fail_fn = std::function<void(const std::string& module, const std::string& message)>;
13
15 void set_on_fail(on_fail_fn fn);
16
17 void begin_module(const std::string& module_name);
18 void progress(size_t completed, size_t total, const std::string& current_job = {});
19 void log(const std::string& message);
20 void fail(const std::string& message);
21
23 auto check(bool result) -> bool;
24
25 auto has_failed() const -> bool;
26 auto error_message() const -> const std::string&;
27 auto current_module() const -> const std::string&;
28 auto completed() const -> size_t;
29 auto total() const -> size_t;
30 auto current_job() const -> const std::string&;
31
32private:
33 void notify_visualizer();
34
35 std::string module_;
36 size_t completed_{};
37 size_t total_{};
38 std::string current_job_;
39
40 bool failed_{};
41 std::string error_msg_;
42
43 visualizer_fn visualizer_;
44 on_fail_fn on_fail_;
45};
46
47} // namespace unravel
Hash specialization for batch_key to enable use in std::unordered_map.
auto current_module() const -> const std::string &
void progress(size_t completed, size_t total, const std::string &current_job={})
std::function< void(const loading_screen &)> visualizer_fn
auto completed() const -> size_t
void begin_module(const std::string &module_name)
void set_visualizer(visualizer_fn fn)
void log(const std::string &message)
auto current_job() const -> const std::string &
auto error_message() const -> const std::string &
auto has_failed() const -> bool
std::function< void(const std::string &module, const std::string &message)> on_fail_fn
void set_on_fail(on_fail_fn fn)
auto check(bool result) -> bool
Convenience: if result is false and no error was set, auto-fails with the current module name.
auto total() const -> size_t
void fail(const std::string &message)