提交 14350d1c 编写于 作者: 丁劲犇's avatar 丁劲犇 😸

Merge branch 'master' into smartlink_svr

#include "zp_clusterterm.h"
namespace ZP_Cluster{
zp_ClusterTerm::zp_ClusterTerm(const QString & name,int nTransThreads ,QObject *parent ) :
QObject(parent)
,m_strTermName(name)
{
m_pClusterEng = new ZPTaskEngine::zp_pipeline(this);
m_pClusterNet = new ZPNetwork::zp_net_ThreadPool(8192,this);
m_pClusterEng->addThreads(nTransThreads);
}
void zp_ClusterTerm::StartListen(const QHostAddress &addr, int nPort)
{
m_pClusterNet->AddListeningAddress(m_strTermName,addr,nPort,false);
zp_ClusterTerm::zp_ClusterTerm(const QString & name,QObject *parent ) :
QObject(parent)
,m_strTermName(name)
{
m_pClusterEng = new ZPTaskEngine::zp_pipeline(this);
m_pClusterNet = new ZPNetwork::zp_net_ThreadPool(8192,this);
}
bool zp_ClusterTerm::JoinCluster(const QHostAddress &addr, int nPort)
{
return m_pClusterNet->connectTo(addr,nPort);
}
}
void zp_ClusterTerm::StartListen(const QHostAddress &addr, int nPort)
{
m_pClusterNet->AddListeningAddress(m_strTermName,addr,nPort,false);
}
bool zp_ClusterTerm::JoinCluster(const QHostAddress &addr, int nPort)
{
return m_pClusterNet->connectTo(addr,nPort);
}
bool zp_ClusterTerm::canExit()
{
return m_pClusterEng->canClose() && m_pClusterNet->CanExit();
}
}
......@@ -8,35 +8,31 @@
#include "../pipeline/zp_pltaskbase.h"
namespace ZP_Cluster{
//!this class enable server processes can
//! communicate with each other.
class zp_ClusterTerm : public QObject
{
Q_OBJECT
public:
explicit zp_ClusterTerm(const QString & name,int nTransThreads = 4,QObject *parent = 0);
//cluster status
bool isListening(){ return m_pClusterNet->ListenerNames().size()==0?false:true;}
const QString & name() {return m_strTermName;}
int transThreads(){ return m_pClusterNet->TransThreadNum(); }
int transClients(int idx){ return m_pClusterNet->totalClients(idx);}
int payload(){ return m_pClusterEng->payload();}
int threadsCount(){ return m_pClusterEng->threadsCount();}
int threadsIdel(){ return m_pClusterEng->idleThreads();}
protected:
QString m_strTermName;//the Terminal's name
ZPNetwork::zp_net_ThreadPool * m_pClusterNet;
ZPTaskEngine::zp_pipeline * m_pClusterEng;
signals:
//!this class enable server processes can
//! communicate with each other.
class zp_ClusterTerm : public QObject
{
Q_OBJECT
public:
explicit zp_ClusterTerm(const QString & name,QObject *parent = 0);
//cluster status
ZPNetwork::zp_net_ThreadPool * netEng() {return m_pClusterNet;}
ZPTaskEngine::zp_pipeline * taskEng() {return m_pClusterEng;}
bool canExit();
protected:
QString m_strTermName;//the Terminal's name
ZPNetwork::zp_net_ThreadPool * m_pClusterNet;
ZPTaskEngine::zp_pipeline * m_pClusterEng;
signals:
public slots:
//!Start listen, this term can be connected by newly joined terms in future.
void StartListen(const QHostAddress &addr, int nPort);
//!Join cluster, using existing term (addr:nPort)
//!as soon as connection established, more existing terms will be sent to this term,
//!an p2p connection will start
bool JoinCluster(const QHostAddress &addr, int nPort);
public slots:
//!Start listen, this term can be connected by newly joined terms in future.
void StartListen(const QHostAddress &addr, int nPort);
//!Join cluster, using existing term (addr:nPort)
//!as soon as connection established, more existing terms will be sent to this term,
//!an p2p connection will start
bool JoinCluster(const QHostAddress &addr, int nPort);
};
};
}
#endif // ZP_CLUSTERTERM_H
......@@ -9,6 +9,7 @@
#include <QMap>
using namespace ZPNetwork;
using namespace ZPTaskEngine;
using namespace ZP_Cluster;
ZPMainFrame::ZPMainFrame(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::ZPMainFrame)
......@@ -22,6 +23,10 @@ ZPMainFrame::ZPMainFrame(QWidget *parent) :
connect (m_netEngine,&zp_net_ThreadPool::evt_SocketError,this,&ZPMainFrame::on_evt_SocketError);
//Create TaskEngine
m_taskEngine = new zp_pipeline(this);
//Cluster is not created
m_pClusterTerm = 0;
//Create databases
m_pDatabases = new ZPDatabase::DatabaseResource(this);
connect (m_pDatabases,&ZPDatabase::DatabaseResource::evt_Message,this,&ZPMainFrame::on_evt_Message);
......@@ -291,6 +296,7 @@ void ZPMainFrame::forkServer(const QString & config_file)
}
//Smartlink settings
int nHeartbeatingThreadhold = settings.value("Smartlink/HeartbeatingThreadhold",180).toInt();
if (nHeartbeatingThreadhold>=60 && nHeartbeatingThreadhold<=300)
......@@ -409,6 +415,23 @@ void ZPMainFrame::LoadSettings(const QString & config_file)
QString strSL_LargetFolder = settings.value("Smartlink/SL_LargetFolder","NUL").toString();
ui->lineEdit_SL_LargetFolder->setText(strSL_LargetFolder);
//Cluster
QString strClusterTermAddr = settings.value("Cluster/strClusterTermAddr","0.0.0.0").toString();
ui->lineEdit_cluster_term_addr->setText(strClusterTermAddr);
QString strClusterTermPort = settings.value("Cluster/strClusterTermPort","25600").toString();
ui->lineEdit_cluster_term_port->setText(strClusterTermPort);
QString strClusterPubName = settings.value("Cluster/strClusterPubName","Term 001").toString();
ui->lineEdit_cluster_pub_name->setText(strClusterPubName);
QString strClusterPubAddr = settings.value("Cluster/strClusterPubAddr","192.168.1.111").toString();
ui->lineEdit_cluster_pub_Addr->setText(strClusterPubAddr);
QString strClusterPubPort = settings.value("Cluster/strClusterPubPort","25600").toString();
ui->lineEdit_cluster_pub_Port->setText(strClusterPubPort);
int nClusterTransThreads = settings.value("Cluster/nClusterTransThreads","4").toInt();
ui->horizontalSlider_cluster_transThreads->setValue(nClusterTransThreads);
int nClusterWorkingThreads = settings.value("Cluster/nClusterWorkingThreads","4").toInt();
ui->horizontalSlider_cluster_workingThread->setValue(nClusterWorkingThreads);
}
......@@ -480,6 +503,16 @@ void ZPMainFrame::SaveSettings(const QString & config_file)
settings.setValue("Smartlink/SLDB_mainEvt",strSLDB_mainEvent);
QString strSL_LargetFolder = ui->lineEdit_SL_LargetFolder->text();
settings.setValue("Smartlink/SL_LargetFolder",strSL_LargetFolder);
//Cluster
settings.setValue("Cluster/strClusterTermAddr",ui->lineEdit_cluster_term_addr->text());
settings.setValue("Cluster/strClusterTermPort",ui->lineEdit_cluster_term_port->text());
settings.setValue("Cluster/strClusterPubName", ui->lineEdit_cluster_pub_name->text());
settings.setValue("Cluster/strClusterPubAddr",ui->lineEdit_cluster_pub_Addr->text());
settings.setValue("Cluster/strClusterPubPort",ui->lineEdit_cluster_pub_Port->text());
settings.setValue("Cluster/nClusterTransThreads",ui->horizontalSlider_cluster_transThreads->value());
settings.setValue("Cluster/nClusterWorkingThreads", ui->horizontalSlider_cluster_workingThread->value());
}
void ZPMainFrame::on_pushButton_addListener_clicked()
{
......@@ -532,6 +565,16 @@ void ZPMainFrame::on_pushButton_threadsApply_clicked()
{
SaveSettings(m_currentConffile);
}
void ZPMainFrame::on_pushButton_cluster_apply_clicked()
{
SaveSettings(m_currentConffile);
}
void ZPMainFrame::on_pushButton_smartlink_save_clicked()
{
SaveSettings(m_currentConffile);
}
void ZPMainFrame::on_actionReload_config_file_triggered()
{
QString filename = QFileDialog::getOpenFileName(this,tr("Open Conf file"),QCoreApplication::applicationDirPath(),
......
......@@ -9,6 +9,7 @@
#include "pipeline/zp_pipeline.h"
#include "smartlink/st_client_table.h"
#include "database/databaseresource.h"
#include "cluster/zp_clusterterm.h"
namespace Ui {
class ZPMainFrame;
}
......@@ -45,6 +46,7 @@ private:
ZPTaskEngine::zp_pipeline * m_taskEngine;
SmartLink::st_client_table * m_clientTable;
ZPDatabase::DatabaseResource * m_pDatabases;
ZP_Cluster::zp_ClusterTerm * m_pClusterTerm;
int m_nTimerId;
void initUI();
void LoadSettings(const QString & config_file);
......@@ -68,6 +70,9 @@ public slots:
void on_pushButton_db_del_clicked();
void on_pushButton_db_apply_clicked();
void on_pushButton_cluster_apply_clicked();
void on_pushButton_smartlink_save_clicked();
};
#endif // ZPMAINFRAME_H
......@@ -486,6 +486,10 @@
<property name="text">
<string>Save</string>
</property>
<property name="icon">
<iconset resource="resource.qrc">
<normaloff>:/icons/Resources/Color, Sage.png</normaloff>:/icons/Resources/Color, Sage.png</iconset>
</property>
</widget>
</item>
</layout>
......@@ -506,7 +510,7 @@
<item>
<widget class="QLabel" name="label_20">
<property name="text">
<string>Terminal Address</string>
<string>Terminal Listen Address</string>
</property>
</widget>
</item>
......@@ -516,7 +520,7 @@
<item>
<widget class="QLabel" name="label_19">
<property name="text">
<string>Terminal Port</string>
<string>Listen Port</string>
</property>
</widget>
</item>
......@@ -539,17 +543,82 @@
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_13">
<layout class="QHBoxLayout" name="horizontalLayout_16">
<item>
<widget class="QLabel" name="label_23">
<widget class="QLabel" name="label_24">
<property name="text">
<string>Publish Name</string>
<string>TransThreads</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_cluster_pub_name"/>
<widget class="QSlider" name="horizontalSlider_cluster_transThreads">
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>16</number>
</property>
<property name="pageStep">
<number>1</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="tickPosition">
<enum>QSlider::TicksAbove</enum>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_25">
<property name="text">
<string>Working Threads</string>
</property>
</widget>
</item>
<item>
<widget class="QSlider" name="horizontalSlider_cluster_workingThread">
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>16</number>
</property>
<property name="pageStep">
<number>1</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="tickPosition">
<enum>QSlider::TicksAbove</enum>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>Active Terminals</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_14">
<item>
<widget class="QListView" name="listView_activeTerms">
<property name="movement">
<enum>QListView::Static</enum>
</property>
<property name="viewMode">
<enum>QListView::IconMode</enum>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_13">
<item>
<widget class="QLabel" name="label_21">
<property name="text">
......@@ -571,14 +640,34 @@
<widget class="QLineEdit" name="lineEdit_cluster_pub_Port"/>
</item>
<item>
<widget class="QPushButton" name="pushButton_cluster_apply">
<spacer name="horizontalSpacer_7">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_17">
<item>
<widget class="QLabel" name="label_23">
<property name="text">
<string>&amp;Save</string>
<string>Publish Name</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_7">
<widget class="QLineEdit" name="lineEdit_cluster_pub_name"/>
</item>
<item>
<spacer name="horizontalSpacer_9">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
......@@ -590,27 +679,22 @@
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="pushButton_cluster_apply">
<property name="text">
<string>&amp;Save</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_join">
<property name="text">
<string>Participate</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>Active Terminals</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_14">
<item>
<widget class="QListView" name="listView_activeTerms">
<property name="movement">
<enum>QListView::Static</enum>
</property>
<property name="viewMode">
<enum>QListView::IconMode</enum>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab">
......@@ -624,13 +708,6 @@
<layout class="QVBoxLayout" name="verticalLayout_5">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_9">
<item>
<widget class="QPushButton" name="pushButton_smartlink_save">
<property name="text">
<string>&amp;Save</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label">
<property name="text">
......@@ -737,6 +814,30 @@
</property>
</spacer>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_15">
<item>
<spacer name="horizontalSpacer_8">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="pushButton_smartlink_save">
<property name="text">
<string>&amp;Save</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</widget>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册