From 337adce3b32612903dce4b963c7db6c8ba0202a4 Mon Sep 17 00:00:00 2001
From: w1146869587 <wah1146869587@126.com>
Date: 星期二, 09 十一月 2021 14:11:55 +0800
Subject: [PATCH] bak
---
mbwatch/mbwatchuserdb.cpp | 210 +++++++++++++++++++++++++
mbwatch/mbwatchusermgr.cpp | 18 ++
mbwatch/efsw.pri | 10 +
mbwatch/mbwatch.pro | 25 ++-
mbwatch/mbwatchusermgr.h | 4
bak/mb_watch_user.db | 0
mbwatch/mbtaskmgr.h | 26 +++
mbwatch/mbwatchuserdb.h | 22 ++
mbwatch/mbwatchmgr.h | 14 +
mbwatch/mbtasklog.h | 21 ++
bak/mbwatch.txt | 2
mbwatch/mbtaskmgr.cpp | 39 ++++
mbwatch/mbwatchmain.cpp | 23 ++
mbwatch/mbwatchmgr.cpp | 37 ++++
mbwatch/mbtasklog.cpp | 23 ++
15 files changed, 448 insertions(+), 26 deletions(-)
diff --git a/bak/mb_watch_user.db b/bak/mb_watch_user.db
index 342db2a..7956ab2 100644
--- a/bak/mb_watch_user.db
+++ b/bak/mb_watch_user.db
Binary files differ
diff --git a/bak/mbwatch.txt b/bak/mbwatch.txt
index a7d830a..be63da3 100644
--- a/bak/mbwatch.txt
+++ b/bak/mbwatch.txt
@@ -2,7 +2,7 @@
CN_S_LOGIN VARCHAR (128) NOT NULL,
CN_S_SERVER_ID VARCHAR (128) NOT NULL,
CN_S_BACKUP_DIR VARCHAR (512) NOT NULL,
- CN_S_SERVER_PATH VARCHAR (512) NOT NULL,
+ CN_S_SERVER_PATH VARCHAR (512),
CN_S_ISLOGIN CHAR (2) DEFAULT N,
PRIMARY KEY (
CN_S_LOGIN,
diff --git a/mbwatch/efsw.pri b/mbwatch/efsw.pri
new file mode 100644
index 0000000..e5020c7
--- /dev/null
+++ b/mbwatch/efsw.pri
@@ -0,0 +1,10 @@
+INCLUDEPATH += $$PWD/../efsw
+
+CONFIG(debug, debug|release) {
+ LIBS += -L$$PWD/../debug -lefsw
+} else {
+ LIBS += -L$$PWD/../release -lefsw
+}
+
+
+
diff --git a/mbwatch/mbtasklog.cpp b/mbwatch/mbtasklog.cpp
new file mode 100644
index 0000000..02adc5a
--- /dev/null
+++ b/mbwatch/mbtasklog.cpp
@@ -0,0 +1,23 @@
+#include "mbtasklog.h"
+#include <QMutex>
+
+CMBTaskLog::CMBTaskLog()
+{
+
+}
+
+CMBTaskLog::~CMBTaskLog()
+{
+}
+
+
+void CMBTaskLog::run()
+{
+
+}
+
+
+
+
+
+
diff --git a/mbwatch/mbtasklog.h b/mbwatch/mbtasklog.h
new file mode 100644
index 0000000..940444e
--- /dev/null
+++ b/mbwatch/mbtasklog.h
@@ -0,0 +1,21 @@
+#ifndef MBTASKLOG_H
+#define MBTASKLOG_H
+
+#include <QRunnable>
+#include <QWaitCondition>
+#include <QMutex>
+
+/************************************************************************/
+/* 鏃ュ織浠诲姟锛岀敤鏉ヨ褰曞浠界洰褰曚笅鐨勬枃浠跺彉鍖� */
+/************************************************************************/
+class CMBTaskLog
+ : public QRunnable
+{
+public:
+ CMBTaskLog();
+ ~CMBTaskLog();
+public:
+ virtual void run();
+};
+
+#endif // MBTASKLOG_H
diff --git a/mbwatch/mbtaskmgr.cpp b/mbwatch/mbtaskmgr.cpp
new file mode 100644
index 0000000..6451fa0
--- /dev/null
+++ b/mbwatch/mbtaskmgr.cpp
@@ -0,0 +1,39 @@
+#include "mbtaskmgr.h"
+
+CMBTaskMgr::CMBTaskMgr()
+{
+ //绾跨▼姹犳渶澶�涓嚎绋�+ m_threadPool.setMaxThreadCount(1);
+}
+
+CMBTaskMgr::~CMBTaskMgr()
+{
+
+}
+
+void CMBTaskMgr::stopThread()
+{
+ m_threadPool.waitForDone(100); // 100姣
+}
+
+void CMBTaskMgr::logTask(QString login, QString svrID, QString backupDir, QString svrPath)
+{
+
+}
+
+
+//void CMBTaskMgr::loginOrgTask(QString ip, int nPort, QString session)
+//{
+// CMBLoginOrgTask *pTask = new CMBLoginOrgTask();
+// pTask->setMDWare(m_pMDWare);
+// pTask->setUserInfo(m_login,m_loginName);
+// pTask->setSvrInfo(ip, nPort, session);
+// pTask->setAutoDelete(true);
+
+// m_threadPool.start(pTask);
+//}
+
+
+
+
+
diff --git a/mbwatch/mbtaskmgr.h b/mbwatch/mbtaskmgr.h
new file mode 100644
index 0000000..b2a0cc8
--- /dev/null
+++ b/mbwatch/mbtaskmgr.h
@@ -0,0 +1,26 @@
+#ifndef MBTASKMGR_H
+#define MBTASKMGR_H
+
+#include <QThreadPool>
+
+
+/************************************************************************/
+/* 浠诲姟绠$悊鍣� */
+/************************************************************************/
+class CMBTaskMgr
+{
+public:
+ CMBTaskMgr();
+ ~CMBTaskMgr();
+private:
+ QThreadPool m_threadPool;
+public:
+ void stopThread();
+public:
+ void logTask( QString login, QString svrID,
+ QString backupDir, QString svrPath );
+};
+
+
+
+#endif // MBTASKMGR_H
diff --git a/mbwatch/mbwatch.pro b/mbwatch/mbwatch.pro
index d8e120c..a481683 100644
--- a/mbwatch/mbwatch.pro
+++ b/mbwatch/mbwatch.pro
@@ -1,5 +1,6 @@
QT -= gui
QT += network
+QT += sql
CONFIG += c++11 console
CONFIG -= app_bundle
@@ -15,6 +16,8 @@
main.cpp \
mbcommfunc.cpp \
mbfileutil.cpp \
+ mbtasklog.cpp \
+ mbtaskmgr.cpp \
mbwatchapp.cpp \
mbwatchconst.cpp \
mbwatchfile.cpp \
@@ -24,18 +27,11 @@
mbwatchuserdb.cpp \
mbwatchusermgr.cpp
-# Default rules for deployment.
-qnx: target.path = /tmp/$${TARGET}/bin
-else: unix:!android: target.path = /opt/$${TARGET}/bin
-!isEmpty(target.path): INSTALLS += target
-
-# cfg
-include(mbwatch.pri)
-include(qtservice/qtservice.pri)
-
HEADERS += \
mbcommfunc.h \
mbfileutil.h \
+ mbtasklog.h \
+ mbtaskmgr.h \
mbwatchapp.h \
mbwatchconst.h \
mbwatchfile.h \
@@ -45,3 +41,14 @@
mbwatchuserdb.h \
mbwatchusermgr.h
+# Default rules for deployment.
+qnx: target.path = /tmp/$${TARGET}/bin
+else: unix:!android: target.path = /opt/$${TARGET}/bin
+!isEmpty(target.path): INSTALLS += target
+
+# cfg
+include(mbwatch.pri)
+include(qtservice/qtservice.pri)
+include(efsw.pri)
+
+
diff --git a/mbwatch/mbwatchmain.cpp b/mbwatch/mbwatchmain.cpp
index d7c5287..6db4ef7 100644
--- a/mbwatch/mbwatchmain.cpp
+++ b/mbwatch/mbwatchmain.cpp
@@ -49,7 +49,7 @@
void CMBWatchMain::stop()
{
-
+ m_pMgr->stop();
}
void CMBWatchMain::pause()
@@ -78,10 +78,31 @@
std::cout << errInfo.toStdString() << std::endl;
return ;
}
+ // 姣旇緝 鏃ュ織锛屽啓
+ QString login, svrID, backupDir, svrPath;
+
+ CMBWatchUserVector::iterator it;
+ CMBWatchUser *pUser = NULL;
+
+ CMBWatchUserVector tmpVector;
+ m_pMgr->getUserMgr()->getVector(tmpVector);
+ for( it = tmpVector.begin();it != tmpVector.end();it++ )
+ {
+ pUser = *it;
+
+ login = pUser->getLogin();
+ svrID = pUser->getSvrID();
+ backupDir = pUser->getBackupDir();
+ svrPath = pUser->getSvrPath();
+
+ m_pMgr->getTaskMgr()->logTask(login, svrID, backupDir, svrPath);
+ }
+
}
void CMBWatchMain::onSigFileChange(QString fileName)
{
+ //
}
diff --git a/mbwatch/mbwatchmgr.cpp b/mbwatch/mbwatchmgr.cpp
index 0ac6cdd..8b38156 100644
--- a/mbwatch/mbwatchmgr.cpp
+++ b/mbwatch/mbwatchmgr.cpp
@@ -3,7 +3,11 @@
CMBWatchMgr::CMBWatchMgr()
{
m_pConst = new CMBWatchConst();
+ m_pTaskMgr = new CMBTaskMgr();
+
+ m_pUserMgr = new CMBWatchUserMgr();
m_pUserDb = new CMBWatchUserDb();
+ m_pUserDb->setUserMgr(m_pUserMgr);
}
CMBWatchMgr::~CMBWatchMgr()
@@ -16,7 +20,14 @@
delete m_pUserDb;
m_pUserDb = NULL;
}
-
+ if(m_pUserMgr){
+ delete m_pUserMgr;
+ m_pUserMgr = NULL;
+ }
+ if( m_pTaskMgr ){
+ delete m_pTaskMgr;
+ m_pTaskMgr = NULL;
+ }
}
CMBWatchConst *CMBWatchMgr::getConst()
@@ -24,12 +35,28 @@
return m_pConst;
}
+CMBWatchUserMgr *CMBWatchMgr::getUserMgr()
+{
+ return m_pUserMgr;
+}
+
+CMBTaskMgr *CMBWatchMgr::getTaskMgr()
+{
+ return m_pTaskMgr;
+}
+
bool CMBWatchMgr::init(QString &errInfo)
{
- QString watchUserDB = m_pConst->getWatchUserDB();
- if(!m_pUserDb->init(watchUserDB,errInfo))
- return false;
+ QString watchUserDB = m_pConst->getWatchUserDB();
+ if(!m_pUserDb->init(watchUserDB,errInfo))
+ return false;
+ return true;
+}
- return true;
+bool CMBWatchMgr::stop()
+{
+ m_pTaskMgr->stopThread();
+
+ return true;
}
diff --git a/mbwatch/mbwatchmgr.h b/mbwatch/mbwatchmgr.h
index e80f60c..2772fe8 100644
--- a/mbwatch/mbwatchmgr.h
+++ b/mbwatch/mbwatchmgr.h
@@ -2,6 +2,7 @@
#define MBWATCHMGR_H
#include "mbwatchconst.h"
#include "mbwatchuserdb.h"
+#include "mbtaskmgr.h"
class CMBWatchMgr
{
@@ -9,13 +10,20 @@
CMBWatchMgr();
~CMBWatchMgr();
private:
- CMBWatchConst *m_pConst;
+ CMBWatchConst *m_pConst;
private:
- CMBWatchUserDb *m_pUserDb;
+ CMBWatchUserDb *m_pUserDb;
+ CMBWatchUserMgr *m_pUserMgr;
+private:
+ CMBTaskMgr *m_pTaskMgr;
public:
- CMBWatchConst *getConst();
+ CMBWatchConst *getConst();
+ CMBWatchUserMgr *getUserMgr();
+ CMBTaskMgr *getTaskMgr();
public:
bool init(QString &errInfo);
+public:
+ bool stop();
};
#endif // MBWATCHMGR_H
diff --git a/mbwatch/mbwatchuserdb.cpp b/mbwatch/mbwatchuserdb.cpp
index 7ebc64c..ee78f5c 100644
--- a/mbwatch/mbwatchuserdb.cpp
+++ b/mbwatch/mbwatchuserdb.cpp
@@ -1,22 +1,224 @@
#include "mbwatchuserdb.h"
+#include <QSqlQuery>
+#include <QSqlError>
+#include <QRandomGenerator>
+#include <QDebug>
CMBWatchUserDb::CMBWatchUserDb()
{
- m_pMgr = new CMBWatchUserMgr();
+ m_pMgr = NULL;
+ m_tableName = "TN_WATCH_USER";
}
CMBWatchUserDb::~CMBWatchUserDb()
{
- if( m_pMgr ){
- delete m_pMgr;
- m_pMgr = NULL;
+
+}
+
+void CMBWatchUserDb::setUserMgr(CMBWatchUserMgr *pMgr)
+{
+ m_pMgr = pMgr;
+}
+
+QSqlDatabase CMBWatchUserDb::openDataBase()
+{
+ quint32 value = QRandomGenerator::global()->generate();
+ QSqlDatabase db;
+ if ( true == QSqlDatabase::contains(QString::number(value)))
+ {
+ db = QSqlDatabase::database(QString::number(value));
+ }
+ else
+ {
+ db = QSqlDatabase::addDatabase("QSQLITE", QString::number(value));
+ db.setDatabaseName(m_path);
+ }
+
+ if (false == db.open())
+ {
+ qDebug() << db.lastError().text();
+ }
+ return db;
+}
+
+void CMBWatchUserDb::closeDataBase(QString connectionName)
+{
+ if( QSqlDatabase::contains(connectionName) ){
+ QSqlDatabase::removeDatabase(connectionName);
}
}
+bool CMBWatchUserDb::execSql(QString sql, QString &errInfo)
+{
+ QMutexLocker locker(&m_mutex);
+
+ QString connectionName;
+ {
+ QSqlDatabase db = openDataBase();
+ connectionName = db.connectionName();
+
+ QSqlQuery query(db);
+ query.prepare(sql);
+
+ if( !query.exec()){
+ errInfo = query.lastError().text();
+ return false;
+ }
+ query.clear();
+ }
+
+ closeDataBase(connectionName);
+
+ return true;
+}
+
+bool CMBWatchUserDb::execSql(QSqlDatabase &db, QString sql, QString &errInfo)
+{
+ QSqlQuery query(db);
+ query.prepare(sql);
+
+ if( !query.exec()){
+ errInfo = query.lastError().text();
+ return false;
+ }
+ query.clear();
+
+ return true;
+}
+
+bool CMBWatchUserDb::getTmpFiledSql(QString sql, QString &tmpValue, QString &errInfo)
+{
+ QMutexLocker locker(&m_mutex);
+
+ QString connectionName;
+ {
+ QSqlDatabase db = openDataBase();
+ connectionName = db.connectionName();
+
+ QSqlQuery query(db);
+ query.prepare(sql);
+
+ if( !query.exec()){
+ errInfo = query.lastError().text();
+ return false;
+ }
+ while(query.next())
+ {
+ tmpValue = query.value("TmpFiled").toString();
+ }
+
+ query.clear();
+ }
+
+ closeDataBase(connectionName);
+
+ return true;
+}
+
+bool CMBWatchUserDb::exsitSql(QString sql, bool &bExsit, QString &errInfo)
+{
+ QMutexLocker locker(&m_mutex);
+
+ bExsit = false;
+
+ QString connectionName;
+ {
+ QSqlDatabase db = openDataBase();
+ connectionName = db.connectionName();
+
+ QSqlQuery query(db);
+ query.prepare(sql);
+
+ if( !query.exec()){
+ errInfo = query.lastError().text();
+ return false;
+ }
+ // 鑾峰彇澶у皬
+ int initialPos = query.at();
+ int nCount = 0;
+ if (query.last())
+ nCount = query.at() + 1;
+ else
+ nCount = 0;
+ query.seek(initialPos);
+ // end 鑾峰彇澶у皬
+ if( nCount >= 1 ){
+ bExsit = true;
+ }
+
+ query.clear();
+ }
+
+ closeDataBase(connectionName);
+ return true;
+}
+
+
bool CMBWatchUserDb::init(QString path,QString &errInfo)
{
+ m_path = path;
+
m_pMgr->removeAll();
+ if( !queryDB(errInfo) )
+ return false;
+
+ return true;
+}
+
+bool CMBWatchUserDb::loadDB(QSqlQuery &query)
+{
+ while(query.next())
+ {
+ QString login = query.value("CN_S_LOGIN").toString();
+ QString svrID = query.value("CN_S_SERVER_ID").toString();
+ QString backupDir = query.value("CN_S_BACKUP_DIR").toString();
+ QString svrPath = query.value("CN_S_SERVER_PATH").toString();
+ QString isLogin = query.value("CN_S_ISLOGIN").toString();
+
+ CMBWatchUser *pUser = new CMBWatchUser();
+ pUser->setLogin(login);
+ pUser->setSvrID(svrID);
+ pUser->setBackupDir(backupDir);
+ pUser->setSvrPath(svrPath);
+ pUser->setIsLogin(isLogin);
+
+ if( !m_pMgr->add(pUser) ){
+ delete pUser;
+ pUser = NULL;
+ }
+ }
+
+ return true;
+}
+
+bool CMBWatchUserDb::queryDB(QString &errInfo)
+{
+ QMutexLocker locker(&m_mutex);
+
+ QString connectionName,sql;
+
+ sql = QString("select * from %1 where CN_S_ISLOGIN='Y'").arg(m_tableName);
+
+ {
+ QSqlDatabase db = openDataBase();
+ connectionName = db.connectionName();
+
+ QSqlQuery query(db);
+ query.prepare(sql);
+
+ if( !query.exec()){
+ errInfo = query.lastError().text();
+ return false;
+ }
+
+ if(!loadDB(query))
+ return false;
+
+ query.clear();
+ }
+
+ closeDataBase(connectionName);
return true;
}
diff --git a/mbwatch/mbwatchuserdb.h b/mbwatch/mbwatchuserdb.h
index c2455aa..d628bdd 100644
--- a/mbwatch/mbwatchuserdb.h
+++ b/mbwatch/mbwatchuserdb.h
@@ -2,6 +2,7 @@
#define MBWATCHUSERDB_H
#include "mbwatchusermgr.h"
#include <QObject>
+#include <QSqlDatabase>
class CMBWatchUserDb
{
@@ -9,9 +10,28 @@
CMBWatchUserDb();
~CMBWatchUserDb();
private:
+ QMutex m_mutex;
+private:
CMBWatchUserMgr *m_pMgr;
+private:
+ QString m_path;
+ QString m_tableName;
public:
- bool init(QString path,QString &errInfo);
+ void setUserMgr(CMBWatchUserMgr *pMgr);
+private:
+ QSqlDatabase openDataBase();
+ void closeDataBase(QString connectionName);
+private:
+ bool execSql( QString sql,QString &errInfo ); // 鎵цsql
+ bool execSql(QSqlDatabase &db,QString sql,QString &errInfo ); // 鎵цsql
+ bool getTmpFiledSql( QString sql,QString &tmpValue,QString &errInfo ); // 鑾峰彇tmp瀛楁鐨勫�
+ bool exsitSql( QString sql,bool &bExsit,QString &errInfo );
+public:
+ bool init(QString path,QString &errInfo);
+private:
+ bool loadDB(QSqlQuery &query);
+public:
+ bool queryDB(QString &errInfo);
};
#endif // MBWATCHUSERDB_H
diff --git a/mbwatch/mbwatchusermgr.cpp b/mbwatch/mbwatchusermgr.cpp
index 9b3729a..1b4df07 100644
--- a/mbwatch/mbwatchusermgr.cpp
+++ b/mbwatch/mbwatchusermgr.cpp
@@ -2,16 +2,18 @@
CMBWatchUserMgr::CMBWatchUserMgr()
{
-
+ removeAll();
}
CMBWatchUserMgr::~CMBWatchUserMgr()
{
-
+ removeAll();
}
bool CMBWatchUserMgr::add(CMBWatchUser *pUser)
{
+ QMutexLocker locker(&m_mutex);
+
if( NULL == pUser )
return false;
@@ -28,6 +30,8 @@
CMBWatchUser *CMBWatchUserMgr::get(QString login, QString svrID)
{
+ QMutexLocker locker(&m_mutex);
+
login = login.trimmed();
svrID = svrID.trimmed();
if( login.isEmpty() || svrID.isEmpty() )
@@ -52,6 +56,8 @@
bool CMBWatchUserMgr::removeAll()
{
+ QMutexLocker locker(&m_mutex);
+
qDeleteAll(m_vector.begin(),m_vector.end());
m_vector.clear();
@@ -61,9 +67,17 @@
bool CMBWatchUserMgr::is(QString login, QString svrID)
{
+ QMutexLocker locker(&m_mutex);
+
CMBWatchUser *pUser = get(login, svrID);
if( NULL == pUser )
return false;
return true;
}
+
+void CMBWatchUserMgr::getVector(CMBWatchUserVector &vector)
+{
+ vector.clear();
+ vector = m_vector;
+}
diff --git a/mbwatch/mbwatchusermgr.h b/mbwatch/mbwatchusermgr.h
index 6a798f8..0c99558 100644
--- a/mbwatch/mbwatchusermgr.h
+++ b/mbwatch/mbwatchusermgr.h
@@ -1,6 +1,7 @@
#ifndef MBWATCHUSERMGR_H
#define MBWATCHUSERMGR_H
#include "mbwatchuser.h"
+#include <QMutex>
class CMBWatchUserMgr
{
@@ -9,11 +10,14 @@
~CMBWatchUserMgr();
private:
CMBWatchUserVector m_vector;
+private:
+ QMutex m_mutex;
public:
bool add(CMBWatchUser *pUser ); // 娣诲姞鏁版嵁
CMBWatchUser *get(QString login,QString svrID);
bool removeAll(); // 绉婚櫎
bool is(QString login,QString svrID);
+ void getVector(CMBWatchUserVector &vector);
};
#endif // MBWATCHUSERMGR_H
--
Gitblit v1.9.1