Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
DownloadLoggerProgress.hpp
Go to the documentation of this file.
1#ifndef IV_SRC_LOGS_DOWNLOADLOGGERPROGRESS_HPP_
2#define IV_SRC_LOGS_DOWNLOADLOGGERPROGRESS_HPP_
3
9#include "logs/enums.hpp"
10#include "ui/gui/CLabel.hpp"
12#include "ui/gui/CProgress.hpp"
13#include "ui/gui/CTree.hpp"
14
15#include <atomic>
16#include <memory>
17
18namespace iv::logs
19{
20
22{
23public:
25
27
28 void updateProgress();
29
30private:
31 void begin() override;
32 void end() override;
33 bool isCancelling() override;
34
35 void visibleProgress(bool isVisible) override;
36 void resetProgress() override;
37
38 void writeCurrentElements(const std::string &header, uint64_t currentElements,
39 const std::string &extraInfo) override;
40 void writeMessage(const std::string &header) override;
41 void writeWithNumElements(const std::string &header, uint64_t currentElements, uint64_t numElements,
42 const std::string &extraInfo) override;
43
44 CLabel *m_message {nullptr};
46
47 std::atomic_bool m_isProgressVisible {false};
48 std::atomic_bool m_requiresReset {false};
49
50 std::mutex m_mutex;
51
52 std::optional<std::string> m_header;
53 std::optional<uint64_t> m_currentElements;
54 std::optional<uint64_t> m_numElements;
55 std::optional<std::string> m_extraInfo;
56};
57
58}// namespace iv::logs
59
60#endif//IV_SRC_LOGS_DOWNLOADLOGGERPROGRESS_HPP_
Definition AbstractComponentGUI.hpp:30
Definition AbstractProgress.hpp:8
Definition CLabel.hpp:17
Definition CProgress.hpp:7
Definition DownloadLoggerProgress.hpp:22
std::atomic_bool m_isProgressVisible
Definition DownloadLoggerProgress.hpp:47
bool isCancelling() override
Definition DownloadLoggerProgress.cpp:82
AbstractComponentGUI * build()
Definition DownloadLoggerProgress.cpp:8
CProgress * m_progress
Definition DownloadLoggerProgress.hpp:45
void resetProgress() override
Definition DownloadLoggerProgress.cpp:92
std::mutex m_mutex
Definition DownloadLoggerProgress.hpp:50
void begin() override
Definition DownloadLoggerProgress.cpp:74
std::optional< std::string > m_extraInfo
Definition DownloadLoggerProgress.hpp:55
std::optional< std::string > m_header
Definition DownloadLoggerProgress.hpp:52
std::optional< uint64_t > m_numElements
Definition DownloadLoggerProgress.hpp:54
std::atomic_bool m_requiresReset
Definition DownloadLoggerProgress.hpp:48
void updateProgress()
Definition DownloadLoggerProgress.cpp:24
CLabel * m_message
Definition DownloadLoggerProgress.hpp:44
void writeCurrentElements(const std::string &header, uint64_t currentElements, const std::string &extraInfo) override
Definition DownloadLoggerProgress.cpp:97
void writeWithNumElements(const std::string &header, uint64_t currentElements, uint64_t numElements, const std::string &extraInfo) override
Definition DownloadLoggerProgress.cpp:118
void end() override
Definition DownloadLoggerProgress.cpp:78
void writeMessage(const std::string &header) override
Definition DownloadLoggerProgress.cpp:108
void visibleProgress(bool isVisible) override
Definition DownloadLoggerProgress.cpp:87
std::optional< uint64_t > m_currentElements
Definition DownloadLoggerProgress.hpp:53
Definition DownloadLogger.cpp:19