#ifndef QBIGORDERMANAGER_H #define QBIGORDERMANAGER_H #include #include #include #include #include #include #include #include #include #include #include "qeventbus.h" class QBigOrderManager : public QObject { Q_OBJECT public: static QBigOrderManager* instance(); static void destroy(); bool addBigOrder(const BigOrderInfo &order); QList> getAllBigOrders() const; QList> getBigOrdersByStock(const QString &stockCode) const; QList> getBigOrdersByType(const QString &orderType) const; void setAutoSave(bool enabled); void setAutoSavePath(const QString &path); void setAutoSaveInterval(int hours); QString m_historyPath; signals: void bigOrderAdded(const BigOrderInfo &order); void saveOverRefreshView(); void markBigOrderSignal(); protected: explicit QBigOrderManager(QObject *parent = nullptr); ~QBigOrderManager(); private: static std::atomic s_instance; static QMutex s_mutex; mutable QMutex m_orderMutex; QList> m_bigOrders; QSet m_bigOrderID; QTimer* m_autoSaveTimer; QString m_autoSavePath; int m_autoSaveInterval = 5; bool m_autoSaveEnabled = true; void saveToFile(); void loadFromFile(); void autoSave(); void cleanupOldData(int maxDays = 30); }; #endif