41 inline static std::string_view logger_name =
42 "ores.qt.client_equity_instrument_model";
44 [[nodiscard]]
static auto& lg() {
46 static auto instance = make_logger(logger_name);
65 QObject* parent =
nullptr);
68 int rowCount(
const QModelIndex& parent = QModelIndex())
const override;
69 int columnCount(
const QModelIndex& parent = QModelIndex())
const override;
70 QVariant data(
const QModelIndex& index,
71 int role = Qt::DisplayRole)
const override;
72 QVariant headerData(
int section, Qt::Orientation orientation,
73 int role = Qt::DisplayRole)
const override;
76 void load_page(std::uint32_t offset, std::uint32_t limit);
80 std::uint32_t page_size()
const {
return page_size_; }
81 void set_page_size(std::uint32_t size);
82 std::uint32_t total_available_count()
const {
return total_available_count_; }
86 void loadError(
const QString& error_message,
const QString& details = {});
89 void onEquityInstrumentsLoaded();
90 void onPulseStateChanged(
bool isOn);
91 void onPulsingComplete();
94 QVariant recency_foreground_color(
const std::string& key)
const;
98 std::vector<trading::domain::equity_instrument> instruments;
99 std::uint32_t total_available_count;
100 QString error_message;
101 QString error_details;
104 void fetch_equity_instruments(std::uint32_t offset, std::uint32_t limit);
107 std::vector<trading::domain::equity_instrument> instruments_;
108 QFutureWatcher<FetchResult>* watcher_;
109 std::uint32_t page_size_{100};
110 std::uint32_t total_available_count_{0};
111 bool is_fetching_{
false};