Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
weixin_45630965
zoompipeline
提交
45feefce
zoompipeline
项目概览
weixin_45630965
/
zoompipeline
与 Fork 源项目一致
Fork自
colorEagleStdio / zoompipeline
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
zoompipeline
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
45feefce
编写于
4月 21, 2014
作者:
丁劲犇
😸
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
A lot of improvement
上级
9f8a5e5f
变更
19
隐藏空白更改
内联
并排
Showing
19 changed file
with
344 addition
and
137 deletion
+344
-137
ZoomPipeline_FuncSvr/cluster/cross_svr_messages.h
ZoomPipeline_FuncSvr/cluster/cross_svr_messages.h
+1
-0
ZoomPipeline_FuncSvr/cluster/zp_clusterterm.cpp
ZoomPipeline_FuncSvr/cluster/zp_clusterterm.cpp
+5
-3
ZoomPipeline_FuncSvr/cluster/zp_clusterterm.h
ZoomPipeline_FuncSvr/cluster/zp_clusterterm.h
+2
-2
ZoomPipeline_FuncSvr/database/databaseresource.cpp
ZoomPipeline_FuncSvr/database/databaseresource.cpp
+26
-26
ZoomPipeline_FuncSvr/database/databaseresource.h
ZoomPipeline_FuncSvr/database/databaseresource.h
+1
-1
ZoomPipeline_FuncSvr/network/zp_net_threadpool.cpp
ZoomPipeline_FuncSvr/network/zp_net_threadpool.cpp
+47
-11
ZoomPipeline_FuncSvr/network/zp_net_threadpool.h
ZoomPipeline_FuncSvr/network/zp_net_threadpool.h
+5
-2
ZoomPipeline_FuncSvr/network/zp_netlistenthread.cpp
ZoomPipeline_FuncSvr/network/zp_netlistenthread.cpp
+2
-2
ZoomPipeline_FuncSvr/network/zp_netlistenthread.h
ZoomPipeline_FuncSvr/network/zp_netlistenthread.h
+1
-1
ZoomPipeline_FuncSvr/network/zp_nettransthread.cpp
ZoomPipeline_FuncSvr/network/zp_nettransthread.cpp
+29
-19
ZoomPipeline_FuncSvr/network/zp_nettransthread.h
ZoomPipeline_FuncSvr/network/zp_nettransthread.h
+2
-1
ZoomPipeline_FuncSvr/smartlink/st_client_table.h
ZoomPipeline_FuncSvr/smartlink/st_client_table.h
+1
-1
ZoomPipeline_FuncSvr/smartlink/st_clientnode_app_imp.cpp
ZoomPipeline_FuncSvr/smartlink/st_clientnode_app_imp.cpp
+4
-4
ZoomPipeline_FuncSvr/smartlink/st_clientnode_applayer.cpp
ZoomPipeline_FuncSvr/smartlink/st_clientnode_applayer.cpp
+30
-30
ZoomPipeline_FuncSvr/smartlink/st_clientnode_basetrans.cpp
ZoomPipeline_FuncSvr/smartlink/st_clientnode_basetrans.cpp
+4
-4
ZoomPipeline_FuncSvr/smartlink/st_clientnode_basetrans.h
ZoomPipeline_FuncSvr/smartlink/st_clientnode_basetrans.h
+1
-1
ZoomPipeline_FuncSvr/zpmainframe.cpp
ZoomPipeline_FuncSvr/zpmainframe.cpp
+92
-22
ZoomPipeline_FuncSvr/zpmainframe.h
ZoomPipeline_FuncSvr/zpmainframe.h
+9
-5
ZoomPipeline_FuncSvr/zpmainframe.ui
ZoomPipeline_FuncSvr/zpmainframe.ui
+82
-2
未找到文件。
ZoomPipeline_FuncSvr/cluster/cross_svr_messages.h
浏览文件 @
45feefce
...
...
@@ -35,6 +35,7 @@ namespace ZP_Cluster{
unsigned
__int16
data_length
;
unsigned
__int8
data
[
1
];
}
plainData
;
}
payload
;
}
CROSS_SVR_MSG
;
...
...
ZoomPipeline_FuncSvr/cluster/zp_clusterterm.cpp
浏览文件 @
45feefce
...
...
@@ -8,9 +8,11 @@ namespace ZP_Cluster{
m_pClusterNet
=
new
ZPNetwork
::
zp_net_ThreadPool
(
8192
,
this
);
connect
(
m_pClusterNet
,
&
ZPNetwork
::
zp_net_ThreadPool
::
evt_Message
,
this
,
&
zp_ClusterTerm
::
evt_Message
);
connect
(
m_pClusterNet
,
&
ZPNetwork
::
zp_net_ThreadPool
::
evt_SocketError
,
this
,
&
zp_ClusterTerm
::
evt_SocketError
);
connect
(
m_pClusterNet
,
&
ZPNetwork
::
zp_net_ThreadPool
::
evt_Data_recieved
,
this
,
&
zp_ClusterTerm
::
on_evt_Data_recieved
);
connect
(
m_pClusterNet
,
&
ZPNetwork
::
zp_net_ThreadPool
::
evt_Data_transferred
,
this
,
&
zp_ClusterTerm
::
on_evt_Data_transferred
);
connect
(
m_pClusterNet
,
&
ZPNetwork
::
zp_net_ThreadPool
::
evt_ClientDisconnected
,
this
,
&
zp_ClusterTerm
::
on_evt_ClientDisconnected
);
connect
(
m_pClusterNet
,
&
ZPNetwork
::
zp_net_ThreadPool
::
evt_NewClientConnected
,
this
,
&
zp_ClusterTerm
::
on_evt_NewClientConnected
);
//connect(m_pClusterNet,&ZPNetwork::zp_net_ThreadPool::evt_ClientEncrypted, this,&zp_ClusterTerm::on_evt_ClientEncrypted);
m_nPortPublish
=
0
;
}
...
...
ZoomPipeline_FuncSvr/cluster/zp_clusterterm.h
浏览文件 @
45feefce
...
...
@@ -34,8 +34,8 @@ namespace ZP_Cluster{
ZPNetwork
::
zp_net_ThreadPool
*
m_pClusterNet
;
ZPTaskEngine
::
zp_pipeline
*
m_pClusterEng
;
signals:
//These Message is nessery.-------------------------------------
void
evt_Message
(
const
QString
&
);
void
evt_Message
(
QObject
*
,
const
QString
&
);
//The socket error message
void
evt_SocketError
(
QObject
*
senderSock
,
QAbstractSocket
::
SocketError
socketError
);
protected
slots
:
...
...
ZoomPipeline_FuncSvr/database/databaseresource.cpp
浏览文件 @
45feefce
...
...
@@ -24,8 +24,8 @@ namespace ZPDatabase{
QMutexLocker
locker
(
&
m_mutex_reg
);
if
(
false
==
QSqlDatabase
::
contains
(
strDBName
))
{
QString
msg
=
tr
(
" Connection name "
)
+
strDBName
+
tr
(
" does not exist."
);
emit
evt_Message
(
msg
);
QString
msg
=
"Database:"
+
tr
(
" Connection name "
)
+
strDBName
+
tr
(
" does not exist."
);
emit
evt_Message
(
this
,
msg
);
return
QSqlDatabase
();
}
return
QSqlDatabase
::
database
(
strDBName
);
...
...
@@ -52,14 +52,14 @@ namespace ZPDatabase{
if
(
db
.
isOpen
()
==
true
)
db
.
close
();
QSqlDatabase
::
removeDatabase
(
strDBName
);
QString
msg
=
tr
(
" Connection removed "
)
+
strDBName
+
tr
(
" ."
);
emit
evt_Message
(
msg
);
QString
msg
=
"Database:"
+
tr
(
" Connection removed "
)
+
strDBName
+
tr
(
" ."
);
emit
evt_Message
(
this
,
msg
);
}
else
{
QString
msg
=
tr
(
" Connection name "
)
+
strDBName
+
tr
(
" does not exist."
);
emit
evt_Message
(
msg
);
QString
msg
=
"Database:"
+
tr
(
" Connection name "
)
+
strDBName
+
tr
(
" does not exist."
);
emit
evt_Message
(
this
,
msg
);
}
m_dbNames
.
remove
(
strDBName
)
;
...
...
@@ -111,8 +111,8 @@ namespace ZPDatabase{
if
(
db
.
isOpen
()
==
true
)
db
.
close
();
QSqlDatabase
::
removeDatabase
(
connName
);
QString
msg
=
tr
(
" Connection removed "
)
+
connName
+
tr
(
" ."
);
emit
evt_Message
(
msg
);
QString
msg
=
"Database:"
+
tr
(
" Connection removed "
)
+
connName
+
tr
(
" ."
);
emit
evt_Message
(
this
,
msg
);
}
m_dbNames
[
connName
]
=
para
;
...
...
@@ -125,13 +125,13 @@ namespace ZPDatabase{
db
.
setConnectOptions
(
ExtraOptions
);
if
(
db
.
open
()
==
true
)
{
QString
msg
=
tr
(
" Connection "
)
+
connName
+
tr
(
" Established."
);
emit
evt_Message
(
msg
);
QString
msg
=
"Database:"
+
tr
(
" Connection "
)
+
connName
+
tr
(
" Established."
);
emit
evt_Message
(
this
,
msg
);
return
true
;
}
QString
msg
=
tr
(
" Connection "
)
+
connName
+
tr
(
" Can't be opened. MSG="
);
QString
msg
=
"Database:"
+
tr
(
" Connection "
)
+
connName
+
tr
(
" Can't be opened. MSG="
);
msg
+=
db
.
lastError
().
text
();
emit
evt_Message
(
msg
);
emit
evt_Message
(
this
,
msg
);
QSqlDatabase
::
removeDatabase
(
connName
);
m_dbNames
.
remove
(
connName
)
;
return
false
;
...
...
@@ -149,8 +149,8 @@ namespace ZPDatabase{
QMutexLocker
locker
(
&
m_mutex_reg
);
if
(
false
==
m_dbNames
.
contains
(
connName
))
{
QString
msg
=
tr
(
" Connection "
)
+
connName
+
tr
(
" has not been added."
);
emit
evt_Message
(
msg
);
QString
msg
=
"Database:"
+
tr
(
" Connection "
)
+
connName
+
tr
(
" has not been added."
);
emit
evt_Message
(
this
,
msg
);
return
false
;
}
tagConnectionPara
&
para
=
m_dbNames
[
connName
];
...
...
@@ -166,9 +166,9 @@ namespace ZPDatabase{
query
.
exec
(
para
.
testSQL
);
if
(
query
.
lastError
().
type
()
!=
QSqlError
::
NoError
)
{
QString
msg
=
tr
(
" Connection "
)
+
connName
+
tr
(
" confirm failed. MSG="
);
QString
msg
=
"Database:"
+
tr
(
" Connection "
)
+
connName
+
tr
(
" confirm failed. MSG="
);
msg
+=
query
.
lastError
().
text
();
emit
evt_Message
(
msg
);
emit
evt_Message
(
this
,
msg
);
bNeedDisconnect
=
true
;
}
}
...
...
@@ -181,8 +181,8 @@ namespace ZPDatabase{
else
return
true
;
}
QString
msg
=
tr
(
" Connection "
)
+
connName
+
tr
(
" has not been opened."
);
emit
evt_Message
(
msg
);
QString
msg
=
"Database:"
+
tr
(
" Connection "
)
+
connName
+
tr
(
" has not been opened."
);
emit
evt_Message
(
this
,
msg
);
db
=
QSqlDatabase
::
addDatabase
(
para
.
type
,
para
.
connName
);
db
.
setHostName
(
para
.
HostAddr
);
db
.
setPort
(
para
.
port
);
...
...
@@ -194,14 +194,14 @@ namespace ZPDatabase{
{
para
.
status
=
true
;
para
.
lastError
=
""
;
msg
=
tr
(
" Connection "
)
+
connName
+
tr
(
" Re-Established."
);
emit
evt_Message
(
msg
);
msg
=
"Database:"
+
tr
(
" Connection "
)
+
connName
+
tr
(
" Re-Established."
);
emit
evt_Message
(
this
,
msg
);
return
true
;
}
QSqlDatabase
::
removeDatabase
(
connName
);
msg
=
tr
(
" Connection "
)
+
connName
+
tr
(
" Can't be opened. MSG="
);
msg
=
"Database:"
+
tr
(
" Connection "
)
+
connName
+
tr
(
" Can't be opened. MSG="
);
msg
+=
db
.
lastError
().
text
();
emit
evt_Message
(
msg
);
emit
evt_Message
(
this
,
msg
);
para
.
status
=
false
;
para
.
lastError
=
db
.
lastError
().
text
();
return
false
;
...
...
@@ -218,13 +218,13 @@ namespace ZPDatabase{
{
para
.
status
=
true
;
para
.
lastError
=
""
;
QString
msg
=
tr
(
" Connection "
)
+
connName
+
tr
(
" Re-Established."
);
emit
evt_Message
(
msg
);
QString
msg
=
"Database:"
+
tr
(
" Connection "
)
+
connName
+
tr
(
" Re-Established."
);
emit
evt_Message
(
this
,
msg
);
return
true
;
}
QString
msg
=
tr
(
" Connection "
)
+
connName
+
tr
(
" Can't be opened. MSG="
);
QString
msg
=
"Database:"
+
tr
(
" Connection "
)
+
connName
+
tr
(
" Can't be opened. MSG="
);
msg
+=
db
.
lastError
().
text
();
emit
evt_Message
(
msg
);
emit
evt_Message
(
this
,
msg
);
QSqlDatabase
::
removeDatabase
(
connName
);
para
.
status
=
false
;
para
.
lastError
=
db
.
lastError
().
text
();
...
...
ZoomPipeline_FuncSvr/database/databaseresource.h
浏览文件 @
45feefce
...
...
@@ -68,7 +68,7 @@ namespace ZPDatabase{
QMutex
m_mutex_reg
;
QMap
<
QString
,
tagConnectionPara
>
m_dbNames
;
signals:
void
evt_Message
(
const
QString
&
);
void
evt_Message
(
QObject
*
,
const
QString
&
);
public
slots
:
};
...
...
ZoomPipeline_FuncSvr/network/zp_net_threadpool.cpp
浏览文件 @
45feefce
#include "zp_net_threadpool.h"
#include <QCoreApplication>
#include <QStringList>
#include <QTcpSocket>
#include <QSslSocket>
namespace
ZPNetwork
{
/**
* @brief Construct a net thread pool object.
...
...
@@ -80,6 +82,33 @@ namespace ZPNetwork{
return
0
;
}
QString
zp_net_ThreadPool
::
GenSockMsg
(
QObject
*
pSock
)
{
QString
msg
;
msg
+=
tr
(
"Obj=%1"
).
arg
((
unsigned
int
)
pSock
);
QTcpSocket
*
pSocket
=
qobject_cast
<
QTcpSocket
*>
(
pSock
);
QTcpSocket
*
pSocketSSL
=
qobject_cast
<
QSslSocket
*>
(
pSock
);
if
(
pSocketSSL
)
{
msg
+=
tr
(
",SSLSock,Local=(%1:%2),Peer=%3(%4:%5)"
)
.
arg
(
pSocket
->
localAddress
().
toString
())
.
arg
(
pSocket
->
localPort
())
.
arg
(
pSocket
->
peerName
())
.
arg
(
pSocket
->
peerAddress
().
toString
())
.
arg
(
pSocket
->
peerPort
());
}
else
if
(
pSocket
)
{
msg
+=
tr
(
",TcpSock,Local=(%1:%2),Peer=%3(%4:%5)"
)
.
arg
(
pSocket
->
localAddress
().
toString
())
.
arg
(
pSocket
->
localPort
())
.
arg
(
pSocket
->
peerName
())
.
arg
(
pSocket
->
peerAddress
().
toString
())
.
arg
(
pSocket
->
peerPort
());
}
return
msg
;
}
/**
* @brief Begin a listening socket at special address and port. The socket will be activated as soon as possible
* The Wait-and-Accept approaches are all managed by Listening thread, instead of main-GUI thread.
...
...
@@ -113,7 +142,7 @@ namespace ZPNetwork{
emit
startListen
(
id
);
}
else
emit
evt_Message
(
"Warning>"
+
QString
(
tr
(
"This ID has been used."
)));
emit
evt_Message
(
this
,
"Warning>"
+
QString
(
tr
(
"This ID has been used."
)));
}
/**
...
...
@@ -153,11 +182,11 @@ namespace ZPNetwork{
zp_netListenThread
*
pSource
=
qobject_cast
<
zp_netListenThread
*>
(
sender
());
if
(
!
pSource
)
{
emit
evt_Message
(
"War
ing>"
+
QString
(
tr
(
"Non-zp_netListenThread type detected."
)));
emit
evt_Message
(
this
,
"Warn
ing>"
+
QString
(
tr
(
"Non-zp_netListenThread type detected."
)));
return
;
}
emit
evt_Message
(
"Info>"
+
QString
(
tr
(
"New Client A
rriverd."
)));
emit
evt_Message
(
this
,
"Info>"
+
QString
(
tr
(
"Incomming client a
rriverd."
)));
//m_mutex_trans.lock();
int
nsz
=
m_vec_NetTransThreads
.
size
();
int
nMinPay
=
0x7fffffff
;
...
...
@@ -178,15 +207,15 @@ namespace ZPNetwork{
}
//qDebug()<<i<<" "<<nPat<<" "<<nMinIdx;
}
for
(
int
i
=
0
;
i
<
nsz
;
i
++
)
if
(
m_vec_NetTransThreads
[
i
]
->
isActive
()
==
false
)
TransThreadDel
(
m_vec_NetTransThreads
[
i
]);
//
for (int i=0;i<nsz;i++)
//
if (m_vec_NetTransThreads[i]->isActive()==false )
//
TransThreadDel(m_vec_NetTransThreads[i]);
if
(
nMinIdx
>=
0
&&
nMinIdx
<
nsz
)
emit
evt_EstablishConnection
(
m_vec_NetTransThreads
[
nMinIdx
],
socketDescriptor
);
else
{
emit
evt_Message
(
"War
ing>"
+
QString
(
tr
(
"Need Trans Thread Object for clients."
)));
emit
evt_Message
(
this
,
"Warn
ing>"
+
QString
(
tr
(
"Need Trans Thread Object for clients."
)));
}
//m_mutex_trans.unlock();
}
...
...
@@ -214,6 +243,7 @@ namespace ZPNetwork{
disconnect
(
pListenObj
,
&
zp_netListenThread
::
evt_NewClientArrived
,
this
,
&
zp_net_ThreadPool
::
on_New_Arrived_Client
);
pListenObj
->
deleteLater
();
pThread
->
quit
();
pThread
->
wait
();
pThread
->
deleteLater
();
}
...
...
@@ -248,6 +278,7 @@ namespace ZPNetwork{
connect
(
clientTH
,
&
zp_netTransThread
::
evt_NewClientConnected
,
this
,
&
zp_net_ThreadPool
::
evt_NewClientConnected
,
Qt
::
QueuedConnection
);
connect
(
clientTH
,
&
zp_netTransThread
::
evt_ClientEncrypted
,
this
,
&
zp_net_ThreadPool
::
evt_ClientEncrypted
,
Qt
::
QueuedConnection
);
connect
(
clientTH
,
&
zp_netTransThread
::
evt_SocketError
,
this
,
&
zp_net_ThreadPool
::
evt_SocketError
,
Qt
::
QueuedConnection
);
connect
(
clientTH
,
&
zp_netTransThread
::
evt_Message
,
this
,
&
zp_net_ThreadPool
::
evt_Message
,
Qt
::
QueuedConnection
);
connect
(
this
,
&
zp_net_ThreadPool
::
evt_EstablishConnection
,
clientTH
,
&
zp_netTransThread
::
incomingConnection
,
Qt
::
QueuedConnection
);
connect
(
this
,
&
zp_net_ThreadPool
::
evt_FireConnection
,
clientTH
,
&
zp_netTransThread
::
startConnection
,
Qt
::
QueuedConnection
);
connect
(
this
,
&
zp_net_ThreadPool
::
evt_BroadcastData
,
clientTH
,
&
zp_netTransThread
::
BroadcastData
,
Qt
::
QueuedConnection
);
...
...
@@ -287,6 +318,7 @@ namespace ZPNetwork{
disconnect
(
clientTH
,
&
zp_netTransThread
::
evt_NewClientConnected
,
this
,
&
zp_net_ThreadPool
::
evt_NewClientConnected
);
disconnect
(
clientTH
,
&
zp_netTransThread
::
evt_ClientEncrypted
,
this
,
&
zp_net_ThreadPool
::
evt_ClientEncrypted
);
disconnect
(
clientTH
,
&
zp_netTransThread
::
evt_SocketError
,
this
,
&
zp_net_ThreadPool
::
evt_SocketError
);
disconnect
(
clientTH
,
&
zp_netTransThread
::
evt_Message
,
this
,
&
zp_net_ThreadPool
::
evt_Message
);
disconnect
(
this
,
&
zp_net_ThreadPool
::
evt_EstablishConnection
,
clientTH
,
&
zp_netTransThread
::
incomingConnection
);
disconnect
(
this
,
&
zp_net_ThreadPool
::
evt_FireConnection
,
clientTH
,
&
zp_netTransThread
::
startConnection
);
disconnect
(
this
,
&
zp_net_ThreadPool
::
evt_BroadcastData
,
clientTH
,
&
zp_netTransThread
::
BroadcastData
);
...
...
@@ -294,7 +326,9 @@ namespace ZPNetwork{
disconnect
(
this
,
&
zp_net_ThreadPool
::
evt_KickAll
,
clientTH
,
&
zp_netTransThread
::
KickAllClients
);
disconnect
(
this
,
&
zp_net_ThreadPool
::
evt_DeactivteImmediately
,
clientTH
,
&
zp_netTransThread
::
DeactivateImmediately
);
disconnect
(
this
,
&
zp_net_ThreadPool
::
evt_KickClient
,
clientTH
,
&
zp_netTransThread
::
KickClient
);
m_vec_netInternalTransThreads
[
idx
]
->
quit
();
m_vec_netInternalTransThreads
[
idx
]
->
wait
();
m_vec_netInternalTransThreads
[
idx
]
->
deleteLater
();
m_vec_NetTransThreads
[
idx
]
->
deleteLater
();
m_vec_netInternalTransThreads
.
remove
(
idx
);
...
...
@@ -354,6 +388,8 @@ namespace ZPNetwork{
nCount
++
;
}
}
//Fire TransThreadDel Immediately
this
->
CanExit
();
//m_mutex_trans.unlock();
}
...
...
@@ -447,9 +483,9 @@ namespace ZPNetwork{
}
//qDebug()<<i<<" "<<nPat<<" "<<nMinIdx;
}
for
(
int
i
=
0
;
i
<
nsz
;
i
++
)
if
(
m_vec_NetTransThreads
[
i
]
->
isActive
()
==
false
)
TransThreadDel
(
m_vec_NetTransThreads
[
i
]);
//
for (int i=0;i<nsz;i++)
//
if (m_vec_NetTransThreads[i]->isActive()==false )
//
TransThreadDel(m_vec_NetTransThreads[i]);
if
(
nMinIdx
>=
0
&&
nMinIdx
<
nsz
)
{
...
...
@@ -458,7 +494,7 @@ namespace ZPNetwork{
}
else
{
emit
evt_Message
(
"War
ing>"
+
QString
(
tr
(
"Need Trans Thread Object for clients."
)));
emit
evt_Message
(
this
,
"Warn
ing>"
+
QString
(
tr
(
"Need Trans Thread Object for clients."
)));
}
//m_mutex_trans.unlock();
return
res
;
...
...
ZoomPipeline_FuncSvr/network/zp_net_threadpool.h
浏览文件 @
45feefce
...
...
@@ -28,6 +28,9 @@ namespace ZPNetwork{
public:
explicit
zp_net_ThreadPool
(
int
nPayLoad
=
4096
,
QObject
*
parent
=
0
);
// Dump errmessage
static
QString
GenSockMsg
(
QObject
*
pSock
);
//Listening Ctrl
//Begin a listening socket at special address and port. The socket will be activated as soon as possible
void
AddListeningAddress
(
const
QString
&
id
,
const
QHostAddress
&
address
,
quint16
nPort
,
bool
bSSLConn
=
true
);
...
...
@@ -72,8 +75,8 @@ namespace ZPNetwork{
QVector
<
QThread
*>
m_vec_netInternalTransThreads
;
bool
TransThreadDel
(
zp_netTransThread
*
pThreadObj
);
signals:
//These Message is nessery.-------------------------------------
void
evt_Message
(
const
QString
&
);
void
evt_Message
(
QObject
*
pSource
,
const
QString
&
);
//The socket error message
void
evt_SocketError
(
QObject
*
senderSock
,
QAbstractSocket
::
SocketError
socketError
);
//this event indicates new client connected.
...
...
ZoomPipeline_FuncSvr/network/zp_netlistenthread.cpp
浏览文件 @
45feefce
...
...
@@ -31,7 +31,7 @@ namespace ZPNetwork{
if
(
false
==
m_tcpServer
->
listen
(
m_address
,
m_port
))
{
disconnect
(
m_tcpServer
,
&
ZP_TcpServer
::
evt_NewClientArrived
,
this
,
&
zp_netListenThread
::
evt_NewClientArrived
);
emit
evt_Message
(
"Error>"
+
QString
(
tr
(
"Can not start listen!"
)));
emit
evt_Message
(
this
,
"Error>"
+
QString
(
tr
(
"Can not start listen!"
)));
m_tcpServer
->
deleteLater
();
m_tcpServer
=
0
;
//Close this thread.
...
...
@@ -57,7 +57,7 @@ namespace ZPNetwork{
m_tcpServer
->
deleteLater
();
m_tcpServer
=
0
;
//Close this thread.
emit
evt_Message
(
"Info>"
+
QString
(
tr
(
"Listen Closed!"
)));
emit
evt_Message
(
this
,
"Info>"
+
QString
(
tr
(
"Listen Closed!"
)));
emit
evt_ListenClosed
(
m_id
);
}
}
...
...
ZoomPipeline_FuncSvr/network/zp_netlistenthread.h
浏览文件 @
45feefce
...
...
@@ -27,7 +27,7 @@ namespace ZPNetwork{
explicit
zp_netListenThread
(
const
QString
&
id
,
QHostAddress
address
,
quint16
port
,
bool
bSSL
=
true
,
QObject
*
parent
=
0
);
bool
bSSLConn
(){
return
m_bSSLConn
;}
signals:
void
evt_Message
(
const
QString
&
);
void
evt_Message
(
QObject
*
,
const
QString
&
);
void
evt_ListenClosed
(
const
QString
&
);
//This message will tell thread pool, a new incoming connection has arrived.
void
evt_NewClientArrived
(
qintptr
socketDescriptor
);
...
...
ZoomPipeline_FuncSvr/network/zp_nettransthread.cpp
浏览文件 @
45feefce
...
...
@@ -5,6 +5,7 @@
#include <QDebug>
#include <QCoreApplication>
#include <QHostAddress>
#include "zp_net_threadpool.h"
namespace
ZPNetwork
{
zp_netTransThread
::
zp_netTransThread
(
zp_net_ThreadPool
*
pThreadPool
,
int
nPayLoad
,
QObject
*
parent
)
:
QObject
(
parent
)
...
...
@@ -111,6 +112,7 @@ namespace ZPNetwork{
psslsock
->
startServerEncryption
();
}
emit
evt_NewClientConnected
(
sock_client
);
emit
evt_Message
(
sock_client
,
"Info>"
+
QString
(
tr
(
"Client Accepted."
)));
}
else
sock_client
->
deleteLater
();
...
...
@@ -151,7 +153,7 @@ namespace ZPNetwork{
connect
(
sock_client
,
&
QTcpSocket
::
connected
,
this
,
&
zp_netTransThread
::
on_connected
,
Qt
::
QueuedConnection
);
connect
(
psslsock
,
&
QSslSocket
::
encrypted
,
this
,
&
zp_netTransThread
::
on_encrypted
,
Qt
::
QueuedConnection
);
m_mutex_protect
.
lock
();
m_clientList
[
sock_client
]
=
0
;
m_clientList
[
sock_client
]
=
1
;
m_mutex_protect
.
unlock
();
psslsock
->
connectToHostEncrypted
(
addr
.
toString
(),
port
);
...
...
@@ -164,7 +166,7 @@ namespace ZPNetwork{
connect
(
sock_client
,
&
QTcpSocket
::
bytesWritten
,
this
,
&
zp_netTransThread
::
some_data_sended
,
Qt
::
QueuedConnection
);
connect
(
sock_client
,
&
QTcpSocket
::
connected
,
this
,
&
zp_netTransThread
::
on_connected
,
Qt
::
QueuedConnection
);
m_mutex_protect
.
lock
();
m_clientList
[
sock_client
]
=
0
;
m_clientList
[
sock_client
]
=
1
;
m_mutex_protect
.
unlock
();
sock_client
->
connectToHost
(
addr
,
port
);
...
...
@@ -177,12 +179,14 @@ namespace ZPNetwork{
{
QTcpSocket
*
pSock
=
qobject_cast
<
QTcpSocket
*>
(
sender
());
emit
evt_NewClientConnected
(
pSock
);
emit
evt_Message
(
pSock
,
"Info>"
+
QString
(
tr
(
"Client connected."
)));
}
void
zp_netTransThread
::
on_encrypted
()
{
QTcpSocket
*
pSock
=
qobject_cast
<
QTcpSocket
*>
(
sender
());
emit
evt_ClientEncrypted
(
pSock
);
emit
evt_Message
(
pSock
,
"Info>"
+
QString
(
tr
(
"Client Encrypted."
)));
}
void
zp_netTransThread
::
client_closed
()
...
...
@@ -200,6 +204,8 @@ namespace ZPNetwork{
disconnect
(
pSock
,
&
QTcpSocket
::
disconnected
,
this
,
&
zp_netTransThread
::
client_closed
);
disconnect
(
pSock
,
SIGNAL
(
error
(
QAbstractSocket
::
SocketError
)),
this
,
SLOT
(
displayError
(
QAbstractSocket
::
SocketError
)));
disconnect
(
pSock
,
&
QTcpSocket
::
bytesWritten
,
this
,
&
zp_netTransThread
::
some_data_sended
);
disconnect
(
pSock
,
&
QTcpSocket
::
connected
,
this
,
&
zp_netTransThread
::
on_connected
);
m_buffer_sending
.
remove
(
pSock
);
m_buffer_sending_offset
.
remove
(
pSock
);
m_mutex_protect
.
lock
();
...
...
@@ -207,6 +213,7 @@ namespace ZPNetwork{
m_mutex_protect
.
unlock
();
pSock
->
deleteLater
();
emit
evt_ClientDisconnected
(
pSock
);
emit
evt_Message
(
pSock
,
"Info>"
+
QString
(
tr
(
"Client Closed."
)));
}
}
void
zp_netTransThread
::
new_data_recieved
()
...
...
@@ -254,21 +261,21 @@ namespace ZPNetwork{
if
(
pSock
)
{
emit
evt_SocketError
(
pSock
,
socketError
);
qDebug
()
<<
(
pSock
->
errorString
());
emit
evt_Message
(
pSock
,
"Debug:"
+
pSock
->
errorString
());
pSock
->
abort
();
}
}
void
zp_netTransThread
::
SendDataToClient
(
QObject
*
objClient
,
const
QByteArray
&
dtarray
)
{
//
m_mutex_protect.lock();
//
if (m_clientList.find(objClient)==m_clientList.end())
if
(
objClient
->
parent
()
!=
this
)
//this approach is very effective
m_mutex_protect
.
lock
();
if
(
m_clientList
.
find
(
objClient
)
==
m_clientList
.
end
())
// if (objClient->parent()!=this)//this approach is very effective, but can cause memory problems
{
//
m_mutex_protect.unlock();
m_mutex_protect
.
unlock
();
return
;
}
//
m_mutex_protect.unlock();
m_mutex_protect
.
unlock
();
QTcpSocket
*
pSock
=
qobject_cast
<
QTcpSocket
*>
(
objClient
);
if
(
pSock
&&
dtarray
.
size
())
{
...
...
@@ -325,32 +332,35 @@ namespace ZPNetwork{
return
;
m_mutex_protect
.
lock
();
QList
<
QObject
*>
clientList
=
m_clientList
.
keys
();
m_mutex_protect
.
unlock
();
foreach
(
QObject
*
obj
,
clientList
)
{
QTcpSocket
*
pSock
=
qobject_cast
<
QTcpSocket
*>
(
obj
);
if
(
pSock
)
{
if
(
m_clientList
[
pSock
]
==
0
)
pSock
->
abort
();
}
else
pSock
->
disconnectFromHost
();
}
m_mutex_protect
.
unlock
();
}
void
zp_netTransThread
::
KickClient
(
QObject
*
objClient
)
{
//
m_mutex_protect.lock();
//
if (m_clientList.find(objClient)==m_clientList.end())
if
(
objClient
->
parent
()
!=
this
)
//this approach is very effective
m_mutex_protect
.
lock
();
if
(
m_clientList
.
find
(
objClient
)
==
m_clientList
.
end
())
// if (objClient->parent()!=this)//this approach is very effective, but will cause memory crush .
{
//
m_mutex_protect.unlock();
m_mutex_protect
.
unlock
();
return
;
}
//
m_mutex_protect.unlock();
m_mutex_protect
.
unlock
();
QTcpSocket
*
pSock
=
qobject_cast
<
QTcpSocket
*>
(
objClient
);
if
(
pSock
)
{
pSock
->
abort
();
if
(
m_clientList
[
objClient
]
==
0
)
pSock
->
abort
();
else
pSock
->
disconnectFromHost
();
}
}
...
...
ZoomPipeline_FuncSvr/network/zp_nettransthread.h
浏览文件 @
45feefce
...
...
@@ -38,6 +38,7 @@ namespace ZPNetwork{
QMap
<
QObject
*
,
QList
<
QByteArray
>
>
m_buffer_sending
;
QMap
<
QObject
*
,
QList
<
qint64
>
>
m_buffer_sending_offset
;
//The socket and the connection-direction, 0 is passive, 1 is postive.
QMap
<
QObject
*
,
int
>
m_clientList
;
int
m_nPayLoad
;
QMutex
m_mutex_protect
;
...
...
@@ -71,7 +72,7 @@ namespace ZPNetwork{
//SSL Encrypted started
void
on_encrypted
();
signals:
void
evt_Message
(
QObject
*
psource
,
const
QString
&
);
void
evt_SocketError
(
QObject
*
senderSock
,
QAbstractSocket
::
SocketError
socketError
);
void
evt_NewClientConnected
(
QObject
*
client
);
void
evt_ClientEncrypted
(
QObject
*
client
);
...
...
ZoomPipeline_FuncSvr/smartlink/st_client_table.h
浏览文件 @
45feefce
...
...
@@ -61,7 +61,7 @@ namespace SmartLink{
signals:
void
evt_Message
(
const
QString
&
);
void
evt_Message
(
QObject
*
psource
,
const
QString
&
);
public
slots
:
//this event indicates new client connected.
...
...
ZoomPipeline_FuncSvr/smartlink/st_clientnode_app_imp.cpp
浏览文件 @
45feefce
...
...
@@ -116,7 +116,7 @@ namespace SmartLink{
else
{
//strcpy(reply.TextInfo,"Server Access Error.");
emit
evt_Message
(
tr
(
"Database Access Error :"
)
+
query
.
lastError
().
text
());
emit
evt_Message
(
t
his
,
t
r
(
"Database Access Error :"
)
+
query
.
lastError
().
text
());
}
}
else
...
...
@@ -232,7 +232,7 @@ namespace SmartLink{
else
{
//strcpy(reply.TextInfo,"Server Access Error.");
emit
evt_Message
(
tr
(
"Database Access Error :"
)
+
query
.
lastError
().
text
());
emit
evt_Message
(
t
his
,
t
r
(
"Database Access Error :"
)
+
query
.
lastError
().
text
());
}
}
else
...
...
@@ -351,7 +351,7 @@ namespace SmartLink{
else
{
//strcpy(reply.TextInfo,"Server Access Error.");
emit
evt_Message
(
tr
(
"Database Access Error :"
)
+
query
.
lastError
().
text
());
emit
evt_Message
(
t
his
,
t
r
(
"Database Access Error :"
)
+
query
.
lastError
().
text
());
}
}
else
...
...
@@ -430,7 +430,7 @@ namespace SmartLink{
+
sizeof
(
quint32
)
*
(
pAppLayer
->
MsgUnion
.
msg_UploadUserListReq
.
UserNum
)
)
{
emit
evt_Message
(
tr
(
"Broken Message stMsg_UploadUserListReq, size not correct."
));
emit
evt_Message
(
t
his
,
t
r
(
"Broken Message stMsg_UploadUserListReq, size not correct."
));
return
false
;
}
...
...
ZoomPipeline_FuncSvr/smartlink/st_clientnode_applayer.cpp
浏览文件 @
45feefce
...
...
@@ -27,7 +27,7 @@ namespace SmartLink{
sql
+=
"equip_id from relations where user_id = ?;"
;
else
{
emit
evt_Message
(
tr
(
"try to save relations before login!"
));
emit
evt_Message
(
t
his
,
t
r
(
"try to save relations before login!"
));
return
false
;
}
QSqlQuery
query
(
db
);
...
...
@@ -35,7 +35,7 @@ namespace SmartLink{
query
.
addBindValue
((
quint32
)
m_uuid
);
if
(
false
==
query
.
exec
())
{
emit
evt_Message
(
tr
(
"try to get relations Failed! "
)
+
query
.
lastError
().
text
());
emit
evt_Message
(
t
his
,
t
r
(
"try to get relations Failed! "
)
+
query
.
lastError
().
text
());
return
false
;
}
...
...
@@ -50,7 +50,7 @@ namespace SmartLink{
else
{
//Server db is currently not accessable, wait.
emit
evt_Message
(
"Server Not Accessable Now."
);
emit
evt_Message
(
this
,
"Server Not Accessable Now."
);
}
return
false
;
}
...
...
@@ -69,7 +69,7 @@ namespace SmartLink{
query
.
addBindValue
((
quint32
)
m_uuid
);
if
(
false
==
query
.
exec
())
{
emit
evt_Message
(
tr
(
"try to del old relations Failed! "
)
+
query
.
lastError
().
text
());
emit
evt_Message
(
t
his
,
t
r
(
"try to del old relations Failed! "
)
+
query
.
lastError
().
text
());
return
false
;
}
}
...
...
@@ -81,13 +81,13 @@ namespace SmartLink{
query
.
addBindValue
((
quint32
)
m_uuid
);
if
(
false
==
query
.
exec
())
{
emit
evt_Message
(
tr
(
"try to del old relations Failed! "
)
+
query
.
lastError
().
text
());
emit
evt_Message
(
t
his
,
t
r
(
"try to del old relations Failed! "
)
+
query
.
lastError
().
text
());
return
false
;
}
}
else
{
emit
evt_Message
(
tr
(
"try to save relations before login!"
));
emit
evt_Message
(
t
his
,
t
r
(
"try to save relations before login!"
));
return
false
;
}
...
...
@@ -116,7 +116,7 @@ namespace SmartLink{
}
if
(
false
==
query
.
exec
())
{
emit
evt_Message
(
tr
(
"try to insert new relations Failed! "
)
+
query
.
lastError
().
text
());
emit
evt_Message
(
t
his
,
t
r
(
"try to insert new relations Failed! "
)
+
query
.
lastError
().
text
());
return
false
;
}
}
...
...
@@ -125,7 +125,7 @@ namespace SmartLink{
else
{
//Server db is currently not accessable, wait.
emit
evt_Message
(
"Server Not Accessable Now."
);
emit
evt_Message
(
this
,
"Server Not Accessable Now."
);
}
return
false
;
}
...
...
@@ -135,7 +135,7 @@ namespace SmartLink{
{
//then , Start deal to-server messages
//Server - deal messages
emit
evt_Message
(
"Debug:"
+
m_currentBlock
.
toHex
());
emit
evt_Message
(
this
,
"Debug:"
+
m_currentBlock
.
toHex
());
if
(
m_currentHeader
.
destin_id
==
0x00000001
)
{
if
(
this
->
m_bLoggedIn
==
false
||
this
->
m_bUUIDRecieved
==
false
)
...
...
@@ -144,7 +144,7 @@ namespace SmartLink{
if
(
false
==
Deal_ToServer_Handshakes
())
{
m_currentBlock
=
QByteArray
();
emit
evt_Message
(
tr
(
"To-server Message Failed."
));
emit
evt_Message
(
t
his
,
t
r
(
"To-server Message Failed."
));
emit
evt_close_client
(
this
->
sock
());
}
}
...
...
@@ -156,7 +156,7 @@ namespace SmartLink{
if
(
false
==
Deal_Node2Svr_Msgs
())
{
m_currentBlock
=
QByteArray
();
emit
evt_Message
(
tr
(
"Box To Server Message Failed."
));
emit
evt_Message
(
t
his
,
t
r
(
"Box To Server Message Failed."
));
emit
evt_close_client
(
this
->
sock
());
}
}
...
...
@@ -166,20 +166,20 @@ namespace SmartLink{
if
(
false
==
Deal_Node2Svr_Msgs
())
{
m_currentBlock
=
QByteArray
();
emit
evt_Message
(
tr
(
"Client To Server Message Failed."
));
emit
evt_Message
(
t
his
,
t
r
(
"Client To Server Message Failed."
));
emit
evt_close_client
(
this
->
sock
());
}
}
else
if
(
m_currentHeader
.
source_id
==
0xFFFFFFFF
)
{
m_currentBlock
=
QByteArray
();
emit
evt_Message
(
tr
(
"warning, UUID 0xFFFFFFFF.ignore"
));
emit
evt_Message
(
t
his
,
t
r
(
"warning, UUID 0xFFFFFFFF.ignore"
));
}
else
{
m_currentBlock
=
QByteArray
();
emit
evt_Message
(
tr
(
"Bad UUID %1. Client Kicked out"
).
arg
(
m_currentHeader
.
source_id
));
emit
evt_Message
(
t
his
,
t
r
(
"Bad UUID %1. Client Kicked out"
).
arg
(
m_currentHeader
.
source_id
));
emit
evt_close_client
(
this
->
sock
());
}
}
...
...
@@ -190,14 +190,14 @@ namespace SmartLink{
{
//need furture works.
//Do Nothing
emit
evt_Message
(
tr
(
"Broadcast Message is not currently supported."
));
emit
evt_Message
(
t
his
,
t
r
(
"Broadcast Message is not currently supported."
));
m_currentBlock
=
QByteArray
();
}
else
if
(
m_currentHeader
.
destin_id
==
0xFFFFFFFD
)
{
//need furture works.
//Do Nothing
emit
evt_Message
(
tr
(
"Broadcast Message is not currently supported."
));
emit
evt_Message
(
t
his
,
t
r
(
"Broadcast Message is not currently supported."
));
m_currentBlock
=
QByteArray
();
}
else
...
...
@@ -209,7 +209,7 @@ namespace SmartLink{
//need further dev, insert into db, or catched on disk.
//destin client is un-reachable, or in another function server.
//need server-to-server channels to re-post this message.
emit
evt_Message
(
tr
(
"Destin ID "
)
+
QString
(
"%1"
).
arg
(
m_currentHeader
.
destin_id
)
+
tr
(
" is not currently logged in."
));
emit
evt_Message
(
t
his
,
t
r
(
"Destin ID "
)
+
QString
(
"%1"
).
arg
(
m_currentHeader
.
destin_id
)
+
tr
(
" is not currently logged in."
));
//Do Nothing
}
...
...
@@ -247,12 +247,12 @@ namespace SmartLink{
);
if
(
m_current_app_header
.
header
.
MsgFmtVersion
!=
0x01
)
{
emit
evt_Message
(
tr
(
"Application Layer Version too new."
));
emit
evt_Message
(
t
his
,
t
r
(
"Application Layer Version too new."
));
emit
evt_close_client
(
this
->
sock
());
return
false
;
}
//do
qDebug
()
<<
m_current_app_header
.
header
.
MsgType
<<
"
\n
"
;
//
qDebug()<<m_current_app_header.header.MsgType<<"\n";
switch
(
m_current_app_header
.
header
.
MsgType
)
{
case
0x1000
:
...
...
@@ -264,7 +264,7 @@ namespace SmartLink{
+
sizeof
(
SMARTLINK_MSG_APP
::
tag_app_layer_header
)
+
sizeof
(
stMsg_HostRegistReq
)
+
64
)
{
emit
evt_Message
(
tr
(
"Broken Message stMsg_HostRegistReq, size not correct."
));
emit
evt_Message
(
t
his
,
t
r
(
"Broken Message stMsg_HostRegistReq, size not correct."
));
res
=
false
;
}
else
...
...
@@ -279,7 +279,7 @@ namespace SmartLink{
+
sizeof
(
SMARTLINK_MSG_APP
::
tag_app_layer_header
)
+
sizeof
(
stMsg_HostLogonReq
)
+
64
)
{
emit
evt_Message
(
tr
(
"Broken Message stMsg_HostLogonReq, size not correct."
));
emit
evt_Message
(
t
his
,
t
r
(
"Broken Message stMsg_HostLogonReq, size not correct."
));
res
=
false
;
}
else
...
...
@@ -294,14 +294,14 @@ namespace SmartLink{
+
sizeof
(
SMARTLINK_MSG_APP
::
tag_app_layer_header
)
+
sizeof
(
stMsg_ClientLoginReq
)
+
66
)
{
emit
evt_Message
(
tr
(
"Broken Message stMsg_ClientLoginReq, size not correct."
));
emit
evt_Message
(
t
his
,
t
r
(
"Broken Message stMsg_ClientLoginReq, size not correct."
));
res
=
false
;
}
else
res
=
this
->
LoginClient
();
break
;
default:
emit
evt_Message
(
tr
(
"Message type not supported."
));
emit
evt_Message
(
t
his
,
t
r
(
"Message type not supported."
));
res
=
false
;
break
;
}
...
...
@@ -332,7 +332,7 @@ namespace SmartLink{
);
if
(
m_current_app_header
.
header
.
MsgFmtVersion
!=
0x01
)
{
emit
evt_Message
(
tr
(
"Application Layer Version too new."
));
emit
evt_Message
(
t
his
,
t
r
(
"Application Layer Version too new."
));
emit
evt_close_client
(
this
->
sock
());
return
false
;
}
...
...
@@ -348,7 +348,7 @@ namespace SmartLink{
+
sizeof
(
SMARTLINK_MSG_APP
::
tag_app_layer_header
)
/*+ sizeof (stMsg_HostTimeCorrectReq)*/
)
{
emit
evt_Message
(
tr
(
"Broken Message stMsg_HostRegistReq, size not correct."
));
emit
evt_Message
(
t
his
,
t
r
(
"Broken Message stMsg_HostRegistReq, size not correct."
));
res
=
false
;
}
else
...
...
@@ -363,7 +363,7 @@ namespace SmartLink{
+
sizeof
(
SMARTLINK_MSG_APP
::
tag_app_layer_header
)
+
sizeof
(
stMsg_UploadUserListReq
)
-
sizeof
(
quint32
))
{
emit
evt_Message
(
tr
(
"Broken Message stMsg_UploadUserListReq, size not correct."
));
emit
evt_Message
(
t
his
,
t
r
(
"Broken Message stMsg_UploadUserListReq, size not correct."
));
res
=
false
;
}
else
...
...
@@ -378,7 +378,7 @@ namespace SmartLink{
+
sizeof
(
SMARTLINK_MSG_APP
::
tag_app_layer_header
)
/*+ sizeof (stMsg_DownloadUserListReq)*/
)
{
emit
evt_Message
(
tr
(
"Broken Message stMsg_DownloadUserListReq, size not correct."
));
emit
evt_Message
(
t
his
,
t
r
(
"Broken Message stMsg_DownloadUserListReq, size not correct."
));
res
=
false
;
}
else
...
...
@@ -393,7 +393,7 @@ namespace SmartLink{
+
sizeof
(
SMARTLINK_MSG_APP
::
tag_app_layer_header
)
+
sizeof
(
stMsg_ClientLogoutReq
))
{
emit
evt_Message
(
tr
(
"Broken Message stMsg_ClientLogoutReq, size not correct."
));
emit
evt_Message
(
t
his
,
t
r
(
"Broken Message stMsg_ClientLogoutReq, size not correct."
));
res
=
false
;
}
else
...
...
@@ -408,14 +408,14 @@ namespace SmartLink{
+
sizeof
(
SMARTLINK_MSG_APP
::
tag_app_layer_header
)
/*+ sizeof (stMsg_GetHostListReq)*/
)
{
emit
evt_Message
(
tr
(
"Broken Message stMsg_GetHostListReq, size not correct."
));
emit
evt_Message
(
t
his
,
t
r
(
"Broken Message stMsg_GetHostListReq, size not correct."
));
res
=
false
;
}
else
res
=
this
->
GetHostList
();
break
;
default:
emit
evt_Message
(
tr
(
"Message type not supported."
));
emit
evt_Message
(
t
his
,
t
r
(
"Message type not supported."
));
res
=
false
;
break
;
}
...
...
ZoomPipeline_FuncSvr/smartlink/st_clientnode_basetrans.cpp
浏览文件 @
45feefce
...
...
@@ -176,7 +176,7 @@ namespace SmartLink{
}
//end deal trans message
else
{
emit
evt_Message
(
tr
(
"Client Send a unknown start Header %1 %2. Close client immediately."
)
emit
evt_Message
(
t
his
,
t
r
(
"Client Send a unknown start Header %1 %2. Close client immediately."
)
.
arg
((
int
)(
ptrCurrData
[
0
])).
arg
((
int
)(
ptrCurrData
[
1
])));
m_currentMessageSize
=
0
;
m_currentBlock
=
QByteArray
();
...
...
@@ -213,7 +213,7 @@ namespace SmartLink{
}
else
//Invalid
{
emit
evt_Message
(
tr
(
"Client ID is invalid! Close client immediatly."
));
emit
evt_Message
(
t
his
,
t
r
(
"Client ID is invalid! Close client immediatly."
));
m_currentBlock
=
QByteArray
();
emit
evt_close_client
(
this
->
sock
());
}
...
...
@@ -227,7 +227,7 @@ namespace SmartLink{
(
m_currentHeader
.
source_id
==
0xffffffff
)
))
{
emit
evt_Message
(
tr
(
"Client ID is invalid! Close client immediatly."
));
emit
evt_Message
(
t
his
,
t
r
(
"Client ID is invalid! Close client immediatly."
));
m_currentBlock
=
QByteArray
();
emit
evt_close_client
(
this
->
sock
());
}
...
...
@@ -242,7 +242,7 @@ namespace SmartLink{
qint64
usc
=
this
->
m_last_Report
.
secsTo
(
dtm
);
if
(
usc
>=
m_pClientTable
->
heartBeatingThrd
())
{
emit
evt_Message
(
tr
(
"Client "
)
+
QString
(
"%1"
).
arg
((
unsigned
int
)((
quint64
)
this
))
+
tr
(
" is dead, kick out."
));
emit
evt_Message
(
t
his
,
t
r
(
"Client "
)
+
QString
(
"%1"
).
arg
((
unsigned
int
)((
quint64
)
this
))
+
tr
(
" is dead, kick out."
));
emit
evt_close_client
(
this
->
sock
());
}
}
...
...
ZoomPipeline_FuncSvr/smartlink/st_clientnode_basetrans.h
浏览文件 @
45feefce
...
...
@@ -79,7 +79,7 @@ namespace SmartLink{
void
evt_SendDataToClient
(
QObject
*
objClient
,
const
QByteArray
&
dtarray
);
void
evt_BroadcastData
(
QObject
*
objFromClient
,
const
QByteArray
&
dtarray
);
void
evt_close_client
(
QObject
*
objClient
);
void
evt_Message
(
const
QString
&
);
void
evt_Message
(
QObject
*
psource
,
const
QString
&
);
};
}
...
...
ZoomPipeline_FuncSvr/zpmainframe.cpp
浏览文件 @
45feefce
...
...
@@ -32,7 +32,7 @@ ZPMainFrame::ZPMainFrame(QWidget *parent) :
//Create databases
m_pDatabases
=
new
ZPDatabase
::
DatabaseResource
(
this
);
connect
(
m_pDatabases
,
&
ZPDatabase
::
DatabaseResource
::
evt_Message
,
this
,
&
ZPMainFrame
::
on_evt_Message
);
connect
(
m_pDatabases
,
&
ZPDatabase
::
DatabaseResource
::
evt_Message
,
this
,
&
ZPMainFrame
::
on_evt_Message
_Database
);
m_pDatabases
->
start
();
//Create Smartlink client table
...
...
@@ -40,7 +40,7 @@ ZPMainFrame::ZPMainFrame(QWidget *parent) :
m_taskEngine
,
m_pDatabases
,
this
);
connect
(
m_clientTable
,
&
SmartLink
::
st_client_table
::
evt_Message
,
this
,
&
ZPMainFrame
::
on_evt_Message
);
connect
(
m_clientTable
,
&
SmartLink
::
st_client_table
::
evt_Message
,
this
,
&
ZPMainFrame
::
on_evt_Message
_Smartlink
);
m_nTimerId
=
startTimer
(
2000
);
...
...
@@ -92,7 +92,14 @@ void ZPMainFrame::initUI()
//Message Shown model
m_pMsgModel
=
new
QStandardItemModel
(
this
);
ui
->
listView_msg
->
setModel
(
m_pMsgModel
);
m_pMsgModelCluster
=
new
QStandardItemModel
(
this
);
ui
->
listView_msg_cluster
->
setModel
(
m_pMsgModelCluster
);
m_pMsgModelDebug
=
new
QStandardItemModel
(
this
);
ui
->
listView_msg_debug
->
setModel
(
m_pMsgModelDebug
);
m_pMsgModelDatabase
=
new
QStandardItemModel
(
this
);
ui
->
listView_msg_database
->
setModel
(
m_pMsgModelDatabase
);
m_pMsgModelSmartlink
=
new
QStandardItemModel
(
this
);
ui
->
listView_msg_smartlink
->
setModel
(
m_pMsgModelSmartlink
);
//Network listeners setting model
m_pListenerModel
=
new
QStandardItemModel
(
0
,
4
,
this
);
m_pListenerModel
->
setHeaderData
(
0
,
Qt
::
Horizontal
,
tr
(
"Name"
));
...
...
@@ -121,15 +128,67 @@ void ZPMainFrame::initUI()
ui
->
comboBox_db_type
->
setModel
(
pCombo
);
}
//These Message is nessery.-------------------------------------
void
ZPMainFrame
::
on_evt_Message
(
const
QString
&
strMsg
)
void
ZPMainFrame
::
on_evt_Message
(
QObject
*
psource
,
const
QString
&
strMsg
)
{
QDateTime
dtm
=
QDateTime
::
currentDateTime
();
QString
msg
=
dtm
.
toString
(
"yyyy-MM-dd HH:mm:ss.zzz"
)
+
" "
+
strMsg
;
int
nrows
=
m_pMsgModel
->
rowCount
();
m_pMsgModel
->
insertRow
(
0
,
new
QStandardItem
(
msg
));
while
(
nrows
--
>
16384
)
m_pMsgModel
->
removeRow
(
m_pMsgModel
->
rowCount
()
-
1
);
if
(
strMsg
.
left
(
5
)
==
QString
(
"Debug"
))
{
int
nrows
=
m_pMsgModelDebug
->
rowCount
();
m_pMsgModelDebug
->
insertRow
(
0
,
new
QStandardItem
(
msg
));
while
(
nrows
--
>
16384
)
m_pMsgModelDebug
->
removeRow
(
m_pMsgModelDebug
->
rowCount
()
-
1
);
}
else
{
int
nrows
=
m_pMsgModel
->
rowCount
();
m_pMsgModel
->
insertRow
(
0
,
new
QStandardItem
(
msg
));
while
(
nrows
--
>
16384
)
m_pMsgModel
->
removeRow
(
m_pMsgModel
->
rowCount
()
-
1
);
}
}
void
ZPMainFrame
::
on_evt_Message_Database
(
QObject
*
psource
,
const
QString
&
strMsg
)
{
QDateTime
dtm
=
QDateTime
::
currentDateTime
();
QString
msg
=
dtm
.
toString
(
"yyyy-MM-dd HH:mm:ss.zzz"
)
+
" "
+
strMsg
;
if
(
strMsg
.
left
(
5
)
==
QString
(
"Debug"
))
{
int
nrows
=
m_pMsgModelDebug
->
rowCount
();
m_pMsgModelDebug
->
insertRow
(
0
,
new
QStandardItem
(
msg
));
while
(
nrows
--
>
16384
)
m_pMsgModelDebug
->
removeRow
(
m_pMsgModelDebug
->
rowCount
()
-
1
);
}
else
{
int
nrows
=
m_pMsgModelDatabase
->
rowCount
();
m_pMsgModelDatabase
->
insertRow
(
0
,
new
QStandardItem
(
msg
));
while
(
nrows
--
>
16384
)
m_pMsgModelDatabase
->
removeRow
(
m_pMsgModelDatabase
->
rowCount
()
-
1
);
}
}
void
ZPMainFrame
::
on_evt_Message_Smartlink
(
QObject
*
psource
,
const
QString
&
strMsg
)
{
QDateTime
dtm
=
QDateTime
::
currentDateTime
();
QString
msg
=
dtm
.
toString
(
"yyyy-MM-dd HH:mm:ss.zzz"
)
+
" "
+
strMsg
;
if
(
strMsg
.
left
(
5
)
==
QString
(
"Debug"
))
{
int
nrows
=
m_pMsgModelDebug
->
rowCount
();
m_pMsgModelDebug
->
insertRow
(
0
,
new
QStandardItem
(
msg
));
while
(
nrows
--
>
16384
)
m_pMsgModelDebug
->
removeRow
(
m_pMsgModelDebug
->
rowCount
()
-
1
);
}
else
{
int
nrows
=
m_pMsgModelSmartlink
->
rowCount
();
m_pMsgModelSmartlink
->
insertRow
(
0
,
new
QStandardItem
(
msg
));
while
(
nrows
--
>
16384
)
m_pMsgModelSmartlink
->
removeRow
(
m_pMsgModelSmartlink
->
rowCount
()
-
1
);
}
}
//The socket error message
...
...
@@ -138,21 +197,32 @@ void ZPMainFrame::on_evt_SocketError(QObject * senderSock ,QAbstractSocket::Soc
QDateTime
dtm
=
QDateTime
::
currentDateTime
();
QString
msg
=
dtm
.
toString
(
"yyyy-MM-dd HH:mm:ss.zzz"
)
+
" "
+
QString
(
"SockError %1 with code %2"
)
.
arg
((
quint64
)
senderSock
).
arg
((
quint32
)
socketError
);
int
nrows
=
m_pMsgModel
->
rowCount
();
m_pMsgModel
->
insertRow
(
0
,
new
QStandardItem
(
msg
));
int
nrows
=
m_pMsgModel
Debug
->
rowCount
();
m_pMsgModel
Debug
->
insertRow
(
0
,
new
QStandardItem
(
msg
));
while
(
nrows
--
>
16384
)
m_pMsgModel
->
removeRow
(
m_pMsgModel
->
rowCount
()
-
1
);
m_pMsgModel
Debug
->
removeRow
(
m_pMsgModelDebug
->
rowCount
()
-
1
);
}
//These Message is nessery.-------------------------------------
void
ZPMainFrame
::
on_evt_Message_Cluster
(
const
QString
&
strMsg
)
void
ZPMainFrame
::
on_evt_Message_Cluster
(
QObject
*
psource
,
const
QString
&
strMsg
)
{
QDateTime
dtm
=
QDateTime
::
currentDateTime
();
QString
msg
=
dtm
.
toString
(
"yyyy-MM-dd HH:mm:ss.zzz"
)
+
" (Cluster)"
+
strMsg
;
int
nrows
=
m_pMsgModel
->
rowCount
();
m_pMsgModel
->
insertRow
(
0
,
new
QStandardItem
(
msg
));
while
(
nrows
--
>
16384
)
m_pMsgModel
->
removeRow
(
m_pMsgModel
->
rowCount
()
-
1
);
QString
msg
=
dtm
.
toString
(
"yyyy-MM-dd HH:mm:ss.zzz"
)
+
" "
+
strMsg
;
if
(
strMsg
.
left
(
5
)
==
QString
(
"Debug"
))
{
int
nrows
=
m_pMsgModelDebug
->
rowCount
();
m_pMsgModelDebug
->
insertRow
(
0
,
new
QStandardItem
(
msg
));
while
(
nrows
--
>
16384
)
m_pMsgModelDebug
->
removeRow
(
m_pMsgModelDebug
->
rowCount
()
-
1
);
}
else
{
int
nrows
=
m_pMsgModelCluster
->
rowCount
();
m_pMsgModelCluster
->
insertRow
(
0
,
new
QStandardItem
(
msg
));
while
(
nrows
--
>
16384
)
m_pMsgModelCluster
->
removeRow
(
m_pMsgModelCluster
->
rowCount
()
-
1
);
}
}
//The socket error message
...
...
@@ -161,10 +231,10 @@ void ZPMainFrame::on_evt_SocketError_Cluster(QObject * senderSock ,QAbstractSoc
QDateTime
dtm
=
QDateTime
::
currentDateTime
();
QString
msg
=
dtm
.
toString
(
"yyyy-MM-dd HH:mm:ss.zzz"
)
+
" (Cluster)"
+
QString
(
"SockError %1 with code %2"
)
.
arg
((
quint64
)
senderSock
).
arg
((
quint32
)
socketError
);
int
nrows
=
m_pMsgModel
->
rowCount
();
m_pMsgModel
->
insertRow
(
0
,
new
QStandardItem
(
msg
));
int
nrows
=
m_pMsgModel
Debug
->
rowCount
();
m_pMsgModel
Debug
->
insertRow
(
0
,
new
QStandardItem
(
msg
));
while
(
nrows
--
>
16384
)
m_pMsgModel
->
removeRow
(
m_pMsgModel
->
rowCount
()
-
1
);
m_pMsgModel
Debug
->
removeRow
(
m_pMsgModelDebug
->
rowCount
()
-
1
);
}
...
...
ZoomPipeline_FuncSvr/zpmainframe.h
浏览文件 @
45feefce
...
...
@@ -25,7 +25,10 @@ public:
protected:
void
changeEvent
(
QEvent
*
e
);
QStandardItemModel
*
m_pMsgModel
;
QStandardItemModel
*
m_pMsgModelCluster
;
QStandardItemModel
*
m_pMsgModelDatabase
;
QStandardItemModel
*
m_pMsgModelSmartlink
;
QStandardItemModel
*
m_pMsgModelDebug
;
//Config File Name
QString
m_currentConffile
;
//Listeners settings
...
...
@@ -53,12 +56,13 @@ private:
void
SaveSettings
(
const
QString
&
config_file
);
void
forkServer
(
const
QString
&
config_file
);
protected
slots
:
//These Message is nessery.-------------------------------------
void
on_evt_Message
(
const
QString
&
);
void
on_evt_Message
(
QObject
*
psource
,
const
QString
&
);
//The socket error message
void
on_evt_SocketError
(
QObject
*
senderSock
,
QAbstractSocket
::
SocketError
socketError
);
//These Message is nessery.-------------------------------------
void
on_evt_Message_Cluster
(
const
QString
&
);
void
on_evt_Message_Cluster
(
QObject
*
psource
,
const
QString
&
);
void
on_evt_Message_Database
(
QObject
*
psource
,
const
QString
&
);
void
on_evt_Message_Smartlink
(
QObject
*
psource
,
const
QString
&
);
//The socket error message
void
on_evt_SocketError_Cluster
(
QObject
*
senderSock
,
QAbstractSocket
::
SocketError
socketError
);
public
slots
:
...
...
ZoomPipeline_FuncSvr/zpmainframe.ui
浏览文件 @
45feefce
...
...
@@ -870,9 +870,89 @@
<attribute
name=
"title"
>
<string>
Messages
</string>
</attribute>
<layout
class=
"QHBoxLayout"
name=
"horizontalLayout_
2
"
>
<layout
class=
"QHBoxLayout"
name=
"horizontalLayout_
18
"
>
<item>
<widget
class=
"QListView"
name=
"listView_msg"
/>
<widget
class=
"QTabWidget"
name=
"tabWidget_msgs"
>
<property
name=
"tabPosition"
>
<enum>
QTabWidget::South
</enum>
</property>
<property
name=
"tabShape"
>
<enum>
QTabWidget::Triangular
</enum>
</property>
<property
name=
"currentIndex"
>
<number>
0
</number>
</property>
<widget
class=
"QWidget"
name=
"tab_msg_nodes"
>
<attribute
name=
"icon"
>
<iconset
resource=
"resource.qrc"
>
<normaloff>
:/icons/Resources/019-1.png
</normaloff>
:/icons/Resources/019-1.png
</iconset>
</attribute>
<attribute
name=
"title"
>
<string>
Nodes
</string>
</attribute>
<layout
class=
"QHBoxLayout"
name=
"horizontalLayout_2"
>
<item>
<widget
class=
"QListView"
name=
"listView_msg"
/>
</item>
</layout>
</widget>
<widget
class=
"QWidget"
name=
"tab_msg_db"
>
<attribute
name=
"icon"
>
<iconset
resource=
"resource.qrc"
>
<normaloff>
:/icons/Resources/Backup drive.png
</normaloff>
:/icons/Resources/Backup drive.png
</iconset>
</attribute>
<attribute
name=
"title"
>
<string>
Database
</string>
</attribute>
<layout
class=
"QVBoxLayout"
name=
"verticalLayout_7"
>
<item>
<widget
class=
"QListView"
name=
"listView_msg_database"
/>
</item>
</layout>
</widget>
<widget
class=
"QWidget"
name=
"tab_msg_cluster"
>
<attribute
name=
"icon"
>
<iconset
resource=
"resource.qrc"
>
<normaloff>
:/icons/Resources/hanukkah_03.png
</normaloff>
:/icons/Resources/hanukkah_03.png
</iconset>
</attribute>
<attribute
name=
"title"
>
<string>
Cluster
</string>
</attribute>
<layout
class=
"QHBoxLayout"
name=
"horizontalLayout_19"
>
<item>
<widget
class=
"QListView"
name=
"listView_msg_cluster"
/>
</item>
</layout>
</widget>
<widget
class=
"QWidget"
name=
"tab_msg_smartlink"
>
<attribute
name=
"icon"
>
<iconset
resource=
"resource.qrc"
>
<normaloff>
:/icons/Resources/+_Sign_Alt.png
</normaloff>
:/icons/Resources/+_Sign_Alt.png
</iconset>
</attribute>
<attribute
name=
"title"
>
<string>
Smartlink
</string>
</attribute>
<layout
class=
"QVBoxLayout"
name=
"verticalLayout_8"
>
<item>
<widget
class=
"QListView"
name=
"listView_msg_smartlink"
/>
</item>
</layout>
</widget>
<widget
class=
"QWidget"
name=
"tab_msg_debug"
>
<attribute
name=
"icon"
>
<iconset
resource=
"resource.qrc"
>
<normaloff>
:/icons/Resources/BackUp-4.png
</normaloff>
:/icons/Resources/BackUp-4.png
</iconset>
</attribute>
<attribute
name=
"title"
>
<string>
Debug
</string>
</attribute>
<layout
class=
"QHBoxLayout"
name=
"horizontalLayout_20"
>
<item>
<widget
class=
"QListView"
name=
"listView_msg_debug"
/>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录