47 inline static std::string_view logger_name =
48 "ores.qt.client_result_model";
50 [[nodiscard]]
static auto& lg() {
52 static auto instance = make_logger(logger_name);
74 QObject* parent =
nullptr);
85 int rowCount(
const QModelIndex& parent = QModelIndex())
const override;
86 int columnCount(
const QModelIndex& parent = QModelIndex())
const override;
87 QVariant data(
const QModelIndex& index,
int role = Qt::DisplayRole)
const override;
88 QVariant headerData(
int section, Qt::Orientation orientation,
89 int role = Qt::DisplayRole)
const override;
107 void load_page(std::uint32_t offset, std::uint32_t limit);
117 void set_page_size(std::uint32_t size);
134 void onResultsLoaded();
135 void onPulseStateChanged(
bool isOn);
136 void onPulsingComplete();
139 QVariant recency_foreground_color(
const std::string& code)
const;
143 std::vector<compute::domain::result> results;
144 std::uint32_t total_available_count;
145 QString error_message;
146 QString error_details;
149 void fetch_results(std::uint32_t offset, std::uint32_t limit);
151 ClientManager* clientManager_;
152 HostDisplayNameCache* host_name_cache_{
nullptr};
153 std::vector<compute::domain::result> results_;
154 QFutureWatcher<FetchResult>* watcher_;
155 std::uint32_t page_size_{100};
156 std::uint32_t total_available_count_{0};
157 bool is_fetching_{
false};
160 RecencyTracker<compute::domain::result, ResultKeyExtractor> recencyTracker_;
161 RecencyPulseManager* pulseManager_;