From 7269ff5cc0f901dcf1d03587301f05395f14e329 Mon Sep 17 00:00:00 2001 From: goldenhawking Date: Sat, 3 May 2014 22:02:18 +0800 Subject: [PATCH] congratulations! a pin version, has been founded. this version, cross-svr cluster has been realized. --- FunctionalClientTest/maindialog.cpp | 9 +++++++-- FunctionalClientTest/maindialog.h | 1 + FunctionalClientTest/maindialog.ui | 2 +- .../smartlink/st_client_table.cpp | 4 ++-- .../smartlink/st_client_table.h | 2 +- .../smartlink/st_cross_svr_node.cpp | 18 ++++++++++++------ .../smartlink/st_cross_svr_node.h | 2 ++ 7 files changed, 26 insertions(+), 12 deletions(-) diff --git a/FunctionalClientTest/maindialog.cpp b/FunctionalClientTest/maindialog.cpp index 82cf8bb..465bc5c 100644 --- a/FunctionalClientTest/maindialog.cpp +++ b/FunctionalClientTest/maindialog.cpp @@ -14,6 +14,7 @@ MainDialog::MainDialog(QWidget *parent) : { ui->setupUi(this); m_bLogedIn = false; + m_bBox = false; m_bUUIDGot = false; nTimer = startTimer(100); ui->listView_msg->setModel(&model); @@ -667,6 +668,7 @@ int MainDialog::deal_current_message_block() if (pApp->MsgUnion.msg_HostLogonRsp.DoneCode==0) { m_bLogedIn = true; + m_bBox = true; QMessageBox::information(this,tr("Succeed!"),tr("Log in succeed!")); } else @@ -700,6 +702,7 @@ int MainDialog::deal_current_message_block() if (pApp->MsgUnion.msg_ClientLoginRsp.DoneCode==0) { m_bLogedIn = true; + m_bBox = false; QMessageBox::information(this,tr("Succeed!"),tr("Log in succeed!")); } else @@ -807,8 +810,10 @@ void MainDialog::on_pushButton_sendToClient_clicked() pMsg->Priority = 1; pMsg->Reserved1 = 0; - pMsg->source_id = (quint32)((quint64)(ui->lineEdit_boxid->text().toUInt()) & 0xffffffff ); - + if (m_bBox==true) + pMsg->source_id = (quint32)((quint64)(ui->lineEdit_boxid->text().toUInt()) & 0xffffffff ); + else + pMsg->source_id = (quint32)((quint64)(ui->lineEdit_userid->text().toUInt()) & 0xffffffff ); pMsg->destin_id = (quint32)((quint64)(ui->lineEdit_client_uuid->text().toUInt()) & 0xffffffff );; pMsg->data_length = arrMsg.size(); diff --git a/FunctionalClientTest/maindialog.h b/FunctionalClientTest/maindialog.h index d150c2c..21599f9 100644 --- a/FunctionalClientTest/maindialog.h +++ b/FunctionalClientTest/maindialog.h @@ -29,6 +29,7 @@ private: void saveIni(); bool m_bLogedIn; + bool m_bBox; bool m_bUUIDGot ; //!Message Dealers diff --git a/FunctionalClientTest/maindialog.ui b/FunctionalClientTest/maindialog.ui index 7642282..b3d8677 100644 --- a/FunctionalClientTest/maindialog.ui +++ b/FunctionalClientTest/maindialog.ui @@ -101,7 +101,7 @@ QTabWidget::Triangular - 1 + 0 diff --git a/ZoomPipeline_FuncSvr/smartlink/st_client_table.cpp b/ZoomPipeline_FuncSvr/smartlink/st_client_table.cpp index bab2ab2..fb4016c 100644 --- a/ZoomPipeline_FuncSvr/smartlink/st_client_table.cpp +++ b/ZoomPipeline_FuncSvr/smartlink/st_client_table.cpp @@ -330,10 +330,9 @@ namespace SmartLink{ this->m_pThreadEngine->SendDataToClient(pAppLayer->sock(),msg); bres = true; } - m_hash_mutex.unlock(); - } m_hash_mutex.unlock(); + emit evt_Message(this,tr("Recieved remote user-data to uuid:%1,DATA:%2").arg(uuid).arg(QString("HEX")+QString(msg.toHex()))); return bres; } @@ -363,6 +362,7 @@ namespace SmartLink{ { st_cross_svr_node * pNode = new st_cross_svr_node(pTerm,psock,parent); pNode->setClientTable(this); + //connect (pNode,&st_cross_svr_node::evt_SendToNode,this,&st_client_table::SendToNode,Qt::QueuedConnection); return pNode; } //reg new uuids in m_hash_remoteClient2SvrName diff --git a/ZoomPipeline_FuncSvr/smartlink/st_client_table.h b/ZoomPipeline_FuncSvr/smartlink/st_client_table.h index 5b456c8..c19c7ff 100644 --- a/ZoomPipeline_FuncSvr/smartlink/st_client_table.h +++ b/ZoomPipeline_FuncSvr/smartlink/st_client_table.h @@ -114,7 +114,7 @@ namespace SmartLink{ void on_evt_RemoteData_recieved(const QString &/*svrHandle*/,const QByteArray & /*svrHandle*/ ); //a block of data has been successfuly sent void on_evt_RemoteData_transferred(QObject * /*svrHandle*/,qint64 /*bytes sent*/); - + public slots: //send msg to uuid bool SendToNode(quint32 uuid, const QByteArray & msg); diff --git a/ZoomPipeline_FuncSvr/smartlink/st_cross_svr_node.cpp b/ZoomPipeline_FuncSvr/smartlink/st_cross_svr_node.cpp index 61d1d2c..df60d0e 100644 --- a/ZoomPipeline_FuncSvr/smartlink/st_cross_svr_node.cpp +++ b/ZoomPipeline_FuncSvr/smartlink/st_cross_svr_node.cpp @@ -91,12 +91,18 @@ namespace SmartLink{ if (m_destin_uuid == 0xffffffff) return false; //Send to Client -// //Transfer -// if (false==m_pClientTable->SendToNode(this->m_destin_uuid , m_currStBlock)) -// { - -// } - + //emit evt_SendToNode(this->m_destin_uuid , m_currStBlock); + //Transfer + bool res = false; + if (m_currStMegSize == m_currStBlock.size()) + { + STCROSSSVR_MSG * pMsg = (STCROSSSVR_MSG *) m_currStBlock.constData(); + SMARTLINK_MSG * pSmMsg = (SMARTLINK_MSG *) pMsg->payload.data; + QByteArray blocks((const char *)pSmMsg,m_currStMegSize - sizeof(STCROSSSVR_MSG::tag_msgHearder)); + res=m_pClientTable->SendToNode(this->m_destin_uuid , blocks); + } + else + res=m_pClientTable->SendToNode(this->m_destin_uuid , m_currStBlock); } delCurrBlock = true; break; diff --git a/ZoomPipeline_FuncSvr/smartlink/st_cross_svr_node.h b/ZoomPipeline_FuncSvr/smartlink/st_cross_svr_node.h index cae5f76..54ff59e 100644 --- a/ZoomPipeline_FuncSvr/smartlink/st_cross_svr_node.h +++ b/ZoomPipeline_FuncSvr/smartlink/st_cross_svr_node.h @@ -26,6 +26,8 @@ namespace SmartLink{ //current Header STCROSSSVR_MSG::tag_msgHearder m_st_Header; quint32 m_destin_uuid; + signals: + void evt_SendToNode(quint32 uuid, const QByteArray & msg); }; } #endif // ST_CROSS_SVR_NODE_H -- GitLab