DiagramDesigner/diagramCommunication/source/dataProcessor.cpp

81 lines
2.1 KiB
C++
Raw Normal View History

2025-12-12 17:46:37 +08:00
// DataProcessor.cpp
#include "dataProcessor.h"
#include <QDebug>
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
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() << "处理数据_size:" << data.toString().size();
// 根据数据类型处理
processJson(data.toJsonObject(),conType);
}
void DataProcessor::processJson( const QVariant& data,int conType)
{
QJsonObject dataObj = data.toJsonObject();
if(conType == 0){
if(dataObj.contains("client_id")){ //实时数据相关
emit httpProcessed("recommend",data);
}
else if(dataObj.contains("input")){
emit httpProcessed("subscriptions",data);
}
}
else if(conType == 1){
if(dataObj.contains("targets")){ //实时数据相关
emit websocketProcessed(data);
}
}
if(dataObj.contains("client_id")){ //实时数据相关
/*QString clientId = dataObj.value("client_id").toString();
QJsonArray arrTarget = dataObj.value("targets").toArray();
for (const QJsonValue& value : arrTarget) {
QJsonObject obj = value.toObject();
QString targetId = obj["id"].toString();
QString sCode = obj["code"].toString();
}*/
}
else if(dataObj.contains("input")){
2025-12-15 14:38:17 +08:00
2025-12-12 17:46:37 +08:00
}
//QMutexLocker locker(&m_mutex);
//m_dataCache[dataType] = 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() << "已清除所有处理数据";
}