#ifndef QTRADECORE_H #define QTRADECORE_H #include #include #include class QEventBus; class QSubscriptionManager; class QBigOrderManager; class QLogManager; class QOrderProcessor; class QTradeCore : public QObject { Q_OBJECT public: static QTradeCore* instance(); explicit QTradeCore(QObject *parent = nullptr); ~QTradeCore(); void initialize(); void shutdown(); QSubscriptionManager* subscriptionManager(); QOrderProcessor* orderProcessor(); QBigOrderManager* bigOrderManager(); QLogManager* logManager(); QEventBus* eventBus(); bool isInitialized() const { return m_initialized; } QString getSystemStatus() const; signals: void systemInitialized(); void systemShutdown(); void errorOccurred(const QString& error); private: bool m_initialized = false; QSubscriptionManager* m_subscriptionManager = nullptr; QOrderProcessor* m_orderProcessor = nullptr; QBigOrderManager* m_bigOrderManager = nullptr; QLogManager* m_logManager = nullptr; QEventBus* m_eventBus = nullptr; }; #endif