Documentation of UrbanFireXDT
Documentation of UrbanFireXDT
Loading...
Searching...
No Matches
status_output.hpp
Go to the documentation of this file.
1/*
2 * status_output.hpp
3 *
4 * This file contains all code for the status output of the simulation
5 * using the ncurses library.
6 *
7 */
8
9#ifndef STATUS_OUTPUT_HPP
10#define STATUS_OUTPUT_HPP
11
12#include <ncurses.h>
13#include <string>
14#include <vector>
15#include <mutex>
16#include <thread>
17#include <atomic>
18#include <fstream>
19
33 public:
38 static void add_status_output(const std::string& message);
39
44 static void add_error_message(const std::string& error);
45
51 static void initialize_ncurses();
52
58 static void shutdown_ncurses();
59
65 static void start_status_updater_thread();
66
72 static void stop_status_updater_thread();
73
74 private:
75 static void update_status_window();
76 static void status_updater();
77
78 static std::mutex log_mutex;
79 static std::mutex error_mutex;
80 static std::mutex status_mutex;
81
82 static std::vector<std::string> log_messages;
83 static std::vector<std::string> error_messages;
84 static std::string current_status;
85
86 static std::atomic<bool> running;
87 static std::atomic<bool> ncurses_initialized;
88 static std::thread updater_thread;
89
90 static WINDOW* log_win;
91 static WINDOW* error_win;
92 static WINDOW* status_win;
93};
94
95#endif // STATUS_OUTPUT_HPP
A thread-safe logging and status output system using ncurses.
Definition status_output.hpp:32
static void shutdown_ncurses()
Shuts down the ncurses interface.
Definition status_output.cpp:54
static void add_status_output(const std::string &message)
Adds a message to the simulation output log.
Definition status_output.cpp:61
static void start_status_updater_thread()
Starts the background thread that periodically updates the status display.
Definition status_output.cpp:131
static void add_error_message(const std::string &error)
Adds an error message to the error log.
Definition status_output.cpp:72
static void initialize_ncurses()
Initializes the ncurses interface.
Definition status_output.cpp:28
static void stop_status_updater_thread()
Stops the background status updater thread.
Definition status_output.cpp:138