// DataProcessor.cpp #include "dataProcessor.h" #include #include #include #include DataProcessor* DataProcessor::instance() { static DataProcessor* instance = nullptr; static QMutex mutex; if (!instance) { QMutexLocker locker(&mutex); if (!instance) { instance = new DataProcessor; } } return instance; } DataProcessor::DataProcessor(QObject* parent) : QObject(parent) { qDebug() << "DataProcessor initialized"; } void DataProcessor::processData(const QVariant& data,int conType) { qDebug() << "data_size:" << data.toJsonObject().size(); // 根据数据类型处理 if (data.canConvert()) { processJson(data.toJsonObject(),conType); } else if(data.canConvert()){ processJsonArray(data); } } void DataProcessor::processNullData(const QVariant& data) { emit httpProcessed("subscriptionTest",data); } void DataProcessor::processJson( const QVariant& data,int conType) { QJsonObject dataObj = data.toJsonObject(); if(conType == 0){ if(dataObj.contains("client_id")){ //实时数据相关 emit httpProcessed("subscriptions",data); } } else if(conType == 1){ if(dataObj.contains("targets")){ //实时数据相关 emit websocketProcessed(data); } } } void DataProcessor::processJsonArray(const QVariant& data) { emit httpProcessed("recommend",data); } QVariant DataProcessor::getProcessedData(const QString& key) const { QMutexLocker locker(&m_mutex); return m_dataCache.value(key); } void DataProcessor::clearAllData() { QMutexLocker locker(&m_mutex); m_dataCache.clear(); qDebug() << "已清除所有处理数据"; }