소스 검색

0407 处理类存map

caizm 2 년 전
부모
커밋
7bf8181f65

+ 1 - 6
CAE_Solution/src/main.cpp

@@ -43,7 +43,7 @@ int main(int argc, char *argv[])
     stateMachine* recvstate= new stateMachine("recvClient");
     QThread *thread_recvsate = new QThread();
     QThread *thread_sendstate = new QThread();
-    QThread *thread_handlePool = new QThread();
+    //QThread *thread_handlePool = new QThread();
     stateMachine* sendstate= new stateMachine("sendClient") ;
     handlePool *handle = new handlePool();
 
@@ -59,9 +59,4 @@ int main(int argc, char *argv[])
     QObject::connect(handle,SIGNAL(sendWidget_handlePoolToWidget(QWidget*)),&w,SLOT(getWidget_handlePoolToWidget(QWidget*)));
 
     return a.exec();
-//    std::string recvmsg="{\"usrId\":\"20b49733a2934704ac338a7d27b8f23f\",\"solverConfigid\":\"ac21409a892047a68fe2beabc3f24f14\",\"proId\":\"13538bee645c49f599dd10a7f77665c4\",\"paramJson\":\"\",\"action\":\"init\"}";
-//    cout<<"recvmsg="<<recvmsg<<endl;
-//    cout<<"recvmsg.c_str() = "<<recvmsg.c_str()<<endl;
-//    vtkJsonObject* json_object = new vtkJsonObject();
-//    json_object->FromJSON(recvmsg);
 }

+ 17 - 43
CAE_Solution/src/threadPool_and_statemachine/dealWith/handlepool.cpp

@@ -8,7 +8,6 @@
  */
 handlePool::handlePool(QObject *parent) : QObject(parent)
 {
-    jsonObject = new vtkJsonObject();
 }
 
 /*
@@ -19,18 +18,8 @@ handlePool::handlePool(QObject *parent) : QObject(parent)
  */
 handlePool::~handlePool()
 {
-    if(render){
-        delete render;
-        render = NULL;
-    }
-    if(jsonObject){
-        delete jsonObject;
-        jsonObject = NULL;
-    }
-    qDeleteAll(vector_render.begin(),vector_render.end());
-    vector_render.clear();
-    qDeleteAll(vector_json.begin(),vector_json.end());
-    vector_json.clear();
+    qDeleteAll(map_render);
+
 }
 
 /*
@@ -42,39 +31,24 @@ handlePool::~handlePool()
 void handlePool::getmsg_recvstateTohandlePool(std::string recvmsg)
 {
     vtkJsonObject* json_object = new vtkJsonObject();
+    QVTKRenderer* render_;
     json_object->FromJSON(recvmsg);
-    int numOfUID = judgeMsgUID(json_object);
-//    QVTKRenderer* render_;
-//    if(numOfUID == -1){
-//        render_ = new QVTKRenderer();
-//        vector_render.append(render_);
-//        vector_json.append(json_object);
-//    }else{
-//        render_ = vector_render[numOfUID];
-//    }
 
-//    operateRender(json_object->action,render_);
+    if(map_render.contains(json_object->action)){
+        render_ = map_render.value(json_object->action);
+    }else{
+        render_ = new QVTKRenderer();
+        map_render.insert(json_object->action,render_);
+    }
 
-//    std::string img_ = render_->img.toStdString();
-//    std::string json_ = json_object->ToJson(img_);
-//    emit sendImg_handlePoolToSendstate(json_);//信号
-}
+    operateRender(json_object->action,render_);
 
-/*
- * @brief: judge msg's uid is it inside the vector(通过消息中的uid判断是否需要生成新的处理类)
- * @param: jsonobject
- * @ret:num of jsonobj
- * @birth: creadted by czm in 20230406
- */
-int handlePool::judgeMsgUID(vtkJsonObject *obj)
-{
-    for(int i=0;i<vector_json.size();i++){
-        if(obj->usrId == vector_json[i]->usrId)
-            return i;
-    }
-    return -1;
+    std::string img_ = render_->img.toStdString();
+    std::string json_ = json_object->ToJson(img_);
+    emit sendImg_handlePoolToSendstate(json_);//信号
 }
 
+
 /*
  * @brief: Operate render according to commands(根据命令操作render)
  * @param: jsonObject->action render
@@ -83,12 +57,12 @@ int handlePool::judgeMsgUID(vtkJsonObject *obj)
  */
 void handlePool::operateRender(QString action,QVTKRenderer* render_)
 {
-    //if(action == "init"){
+    if(action == "init"){
         render_->init();
         emit sendWidget_handlePoolToWidget(render_->GetWidget());
-    //}else{
+    }else{
         cout<<"action:"<<action.toStdString()<<endl;
-    //}
+    }
     render_->CaptureWindowImages();
 }
 

+ 1 - 5
CAE_Solution/src/threadPool_and_statemachine/dealWith/handlepool.h

@@ -15,15 +15,11 @@ public:
     explicit handlePool(QObject *parent = nullptr);
     ~handlePool();
 
-    int judgeMsgUID(vtkJsonObject*);
     void operateRender(QString,QVTKRenderer*);
 
 
 public:
-    QVector<QVTKRenderer*> vector_render;
-    QVector<vtkJsonObject*> vector_json;
-    QVTKRenderer *render;
-    vtkJsonObject *jsonObject;
+    QMap<QString,QVTKRenderer*> map_render;
 
 
 signals: