diff options
Diffstat (limited to 'competition/multilog.h')
-rw-r--r-- | competition/multilog.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/competition/multilog.h b/competition/multilog.h new file mode 100644 index 0000000..ba0ff4d --- /dev/null +++ b/competition/multilog.h @@ -0,0 +1,32 @@ +#pragma once + +#include <vector> +#include <string_view> +#include <mutex> + +using namespace std; + + +// Access is thread-safe +class MultiLog { + struct Item { + int id; + string line; + bool complete = false; + + Item(); + }; + + mutex mut; + vector<Item> items; + + // Methods assume mutex is taken. + size_t findId(int id); + void redrawLine(size_t idx); + +public: + // Returns id of new item + int add(const string_view prefix); + void append(int id, const string_view text); + void complete(int id); +}; |