#ifndef QBIGORDERMANAGER_H #define QBIGORDERMANAGER_H #include #include #include #include #include #include #include #include #include #include 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(QSharedPointer &order); void bigOrdersUpdated();*/ void bigOrderAdded(const BigOrderInfo &order); // 修改参数类型 //void bigOrdersUpdated(); 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; //QMap m_bigOrderID; 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 // QBIGORDERMANAGER_H