#ifndef SQBASE_H #define SQBASE_H #include "core/qtradecore.h" #include "data/qdatabuffer.h" #include "data/qdataquality.h" #include "data/qorderprocessor.h" #include "data/qbigordermanager.h" #include "data/OrderBookParser.h" #include "network/qfaulttolerance.h" #include "network/qsubscriptionmanager.h" #include "config/qconfigmanager.h" #include "config/qlogmanager.h" #include "utils/qeventbus.h" #include "utils/ObjectPool.h" #include "utils/ordertypedelegate.h" #include "BZStruct.h" namespace Sqbase { enum SystemInitFlags { InitDataBuffer = 0x01, InitDataQuality = 0x02, InitFaultTolerance = 0x04, InitConfigManager = 0x08, InitAll = 0x0F }; enum class SystemStatus { Uninitialized, Initializing, Running, Degraded, Stopping, Stopped, Error }; struct SystemConfig { int bufferSize = 10000; int maxPacketsPerSecond = 1000; int heartbeatInterval = 30000; int reconnectAttempts = 10; bool enableDataValidation = true; bool enableFaultTolerance = true; bool enablePerformanceMonitoring = true; }; class System { public: static QTradeCore* core(); static QDataBuffer* dataBuffer(); static QDataQuality* dataQuality(); static QOrderProcessor* orderProcessor(); static QBigOrderManager* bigOrderManager(); static QFaultTolerance* faultTolerance(); static QSubscriptionManager* subscriptionManager(); static QConfigManager* configManager(); static QLogManager* logManager(); static QEventBus* eventBus(); static bool initialize(const SystemConfig& config = SystemConfig(), int flags = InitAll); static void shutdown(); static SystemStatus status(); static QString statusString(); static QString version(); static QDateTime buildTime(); static QString systemInfo(); }; } #endif