去掉用户回调接口,增加获取用户状态接口
This commit is contained in:
parent
a27f35c28a
commit
c1cb7097c0
|
@ -2,8 +2,8 @@
|
||||||
#include "HGPdtToolDbImpl.hpp"
|
#include "HGPdtToolDbImpl.hpp"
|
||||||
#include "base/HGInc.h"
|
#include "base/HGInc.h"
|
||||||
|
|
||||||
HGResult HGAPI HGPdtToolDb_CreateUserMgr(const HGChar* host, HGUShort port, const HGChar* userName, const HGChar* pwd,
|
HGResult HGAPI HGPdtToolDb_CreateUserMgr(const HGChar* host, HGUShort port, const HGChar* userName,
|
||||||
HGPdtToolDbUserEventFunc func, HGPointer param, HGPdtToolDbUserMgr* userMgr)
|
const HGChar* pwd, HGPdtToolDbUserMgr* userMgr)
|
||||||
{
|
{
|
||||||
if (NULL == userMgr)
|
if (NULL == userMgr)
|
||||||
{
|
{
|
||||||
|
@ -11,7 +11,7 @@ HGResult HGAPI HGPdtToolDb_CreateUserMgr(const HGChar* host, HGUShort port, cons
|
||||||
}
|
}
|
||||||
|
|
||||||
HGPdtToolDbUserMgrImpl* userMgrImpl = new HGPdtToolDbUserMgrImpl;
|
HGPdtToolDbUserMgrImpl* userMgrImpl = new HGPdtToolDbUserMgrImpl;
|
||||||
HGResult ret = userMgrImpl->Create(host, port, userName, pwd, func, param);
|
HGResult ret = userMgrImpl->Create(host, port, userName, pwd);
|
||||||
if (HGBASE_ERR_OK != ret)
|
if (HGBASE_ERR_OK != ret)
|
||||||
{
|
{
|
||||||
delete userMgrImpl;
|
delete userMgrImpl;
|
||||||
|
@ -40,6 +40,17 @@ HGResult HGAPI HGPdtToolDb_DestroyUserMgr(HGPdtToolDbUserMgr userMgr)
|
||||||
return HGBASE_ERR_OK;
|
return HGBASE_ERR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HGResult HGAPI HGPdtToolDb_GetUserStatus(HGPdtToolDbUserMgr userMgr, HGUInt* userStatus)
|
||||||
|
{
|
||||||
|
if (NULL == userMgr)
|
||||||
|
{
|
||||||
|
return HGBASE_ERR_INVALIDARG;
|
||||||
|
}
|
||||||
|
|
||||||
|
HGPdtToolDbUserMgrImpl* userMgrImpl = (HGPdtToolDbUserMgrImpl*)userMgr;
|
||||||
|
return userMgrImpl->GetUserStatus(userStatus);
|
||||||
|
}
|
||||||
|
|
||||||
HGResult HGAPI HGPdtToolDb_GetUserType(HGPdtToolDbUserMgr userMgr, HGUInt* userType)
|
HGResult HGAPI HGPdtToolDb_GetUserType(HGPdtToolDbUserMgr userMgr, HGUInt* userType)
|
||||||
{
|
{
|
||||||
if (NULL == userMgr)
|
if (NULL == userMgr)
|
||||||
|
|
|
@ -4,6 +4,7 @@ EXPORTS
|
||||||
|
|
||||||
HGPdtToolDb_CreateUserMgr
|
HGPdtToolDb_CreateUserMgr
|
||||||
HGPdtToolDb_DestroyUserMgr
|
HGPdtToolDb_DestroyUserMgr
|
||||||
|
HGPdtToolDb_GetUserStatus
|
||||||
HGPdtToolDb_GetUserType
|
HGPdtToolDb_GetUserType
|
||||||
HGPdtToolDb_GetUserName
|
HGPdtToolDb_GetUserName
|
||||||
HGPdtToolDb_RefuseUser
|
HGPdtToolDb_RefuseUser
|
||||||
|
|
|
@ -5,12 +5,14 @@
|
||||||
#include "base/HGBaseErr.h"
|
#include "base/HGBaseErr.h"
|
||||||
#include "HGPdtToolDbErr.h"
|
#include "HGPdtToolDbErr.h"
|
||||||
|
|
||||||
|
/* 状态正常 */
|
||||||
|
#define HGPDTTOOLDB_USERSTATUS_OK 0L
|
||||||
/* 账户在其他地方登录 */
|
/* 账户在其他地方登录 */
|
||||||
#define HGPDTTOOLDB_USEREVENT_CONFLICT 1L
|
#define HGPDTTOOLDB_USERSTATUS_CONFLICT 1L
|
||||||
/* 被管理员账户强制下线 */
|
/* 被管理员账户强制下线 */
|
||||||
#define HGPDTTOOLDB_USEREVENT_REFUSE 2L
|
#define HGPDTTOOLDB_USERSTATUS_REFUSE 2L
|
||||||
/* 数据库异常 */
|
/* 数据库异常 */
|
||||||
#define HGPDTTOOLDB_USEREVENT_DBERROR 3L
|
#define HGPDTTOOLDB_USERSTATUS_DBERROR 3L
|
||||||
|
|
||||||
/* 管理员账户 */
|
/* 管理员账户 */
|
||||||
#define HGPDTTOOLDB_USERTYPE_ROOT 1L
|
#define HGPDTTOOLDB_USERTYPE_ROOT 1L
|
||||||
|
@ -102,16 +104,16 @@
|
||||||
HG_DECLARE_HANDLE(HGPdtToolDbUserMgr);
|
HG_DECLARE_HANDLE(HGPdtToolDbUserMgr);
|
||||||
HG_DECLARE_HANDLE(HGPdtToolDbDevice);
|
HG_DECLARE_HANDLE(HGPdtToolDbDevice);
|
||||||
|
|
||||||
/* 用户事件 */
|
|
||||||
typedef void (HGAPI* HGPdtToolDbUserEventFunc)(HGPdtToolDbUserMgr userMgr, HGUInt event, HGPointer param);
|
|
||||||
|
|
||||||
/* 登录 */
|
/* 登录 */
|
||||||
HGEXPORT HGResult HGAPI HGPdtToolDb_CreateUserMgr(const HGChar *host, HGUShort port, const HGChar *userName, const HGChar *pwd,
|
HGEXPORT HGResult HGAPI HGPdtToolDb_CreateUserMgr(const HGChar *host, HGUShort port, const HGChar *userName,
|
||||||
HGPdtToolDbUserEventFunc func, HGPointer param, HGPdtToolDbUserMgr *userMgr);
|
const HGChar *pwd, HGPdtToolDbUserMgr *userMgr);
|
||||||
|
|
||||||
/* 登出 */
|
/* 登出 */
|
||||||
HGEXPORT HGResult HGAPI HGPdtToolDb_DestroyUserMgr(HGPdtToolDbUserMgr userMgr);
|
HGEXPORT HGResult HGAPI HGPdtToolDb_DestroyUserMgr(HGPdtToolDbUserMgr userMgr);
|
||||||
|
|
||||||
|
/* 获取用户状态 */
|
||||||
|
HGEXPORT HGResult HGAPI HGPdtToolDb_GetUserStatus(HGPdtToolDbUserMgr userMgr, HGUInt* userStatus);
|
||||||
|
|
||||||
/* 获取当前账户类型 */
|
/* 获取当前账户类型 */
|
||||||
HGEXPORT HGResult HGAPI HGPdtToolDb_GetUserType(HGPdtToolDbUserMgr userMgr, HGUInt *userType);
|
HGEXPORT HGResult HGAPI HGPdtToolDb_GetUserType(HGPdtToolDbUserMgr userMgr, HGUInt *userType);
|
||||||
|
|
||||||
|
|
|
@ -104,15 +104,6 @@ HGPdtToolDbUserMgrImpl::HGPdtToolDbUserMgrImpl()
|
||||||
m_sql = NULL;
|
m_sql = NULL;
|
||||||
m_userName.clear();
|
m_userName.clear();
|
||||||
m_connectId = -1;
|
m_connectId = -1;
|
||||||
m_func = NULL;
|
|
||||||
m_param = NULL;
|
|
||||||
m_valid = HGFALSE;
|
|
||||||
|
|
||||||
m_lock = NULL;
|
|
||||||
m_event = NULL;
|
|
||||||
m_stopThread = HGFALSE;
|
|
||||||
m_thread = NULL;
|
|
||||||
|
|
||||||
m_deviceList.clear();
|
m_deviceList.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -121,8 +112,7 @@ HGPdtToolDbUserMgrImpl::~HGPdtToolDbUserMgrImpl()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
HGResult HGPdtToolDbUserMgrImpl::Create(const HGChar* host, HGUShort port, const HGChar* userName, const HGChar* pwd,
|
HGResult HGPdtToolDbUserMgrImpl::Create(const HGChar* host, HGUShort port, const HGChar* userName, const HGChar* pwd)
|
||||||
HGPdtToolDbUserEventFunc func, HGPointer param)
|
|
||||||
{
|
{
|
||||||
if (NULL != m_sql)
|
if (NULL != m_sql)
|
||||||
{
|
{
|
||||||
|
@ -188,14 +178,6 @@ HGResult HGPdtToolDbUserMgrImpl::Create(const HGChar* host, HGUShort port, const
|
||||||
m_sql = sql;
|
m_sql = sql;
|
||||||
m_userName = userName;
|
m_userName = userName;
|
||||||
m_connectId = connectId;
|
m_connectId = connectId;
|
||||||
m_func = func;
|
|
||||||
m_param = param;
|
|
||||||
m_valid = HGTRUE;
|
|
||||||
|
|
||||||
HGBase_CreateLock(&m_lock);
|
|
||||||
HGBase_CreateEvent(HGTRUE, HGFALSE, &m_event);
|
|
||||||
m_stopThread = HGFALSE;
|
|
||||||
HGBase_OpenThread(ThreadFunc, this, &m_thread);
|
|
||||||
return HGBASE_ERR_OK;
|
return HGBASE_ERR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -206,29 +188,47 @@ HGResult HGPdtToolDbUserMgrImpl::Destroy()
|
||||||
return HGBASE_ERR_FAIL;
|
return HGBASE_ERR_FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::list<class HGPdtToolDbDeviceImpl*>::iterator iter;
|
while (!m_deviceList.empty())
|
||||||
for (iter = m_deviceList.begin(); iter != m_deviceList.end(); ++iter)
|
|
||||||
{
|
{
|
||||||
delete (*iter);
|
delete (*m_deviceList.begin());
|
||||||
}
|
}
|
||||||
m_deviceList.clear();
|
|
||||||
|
|
||||||
m_stopThread = HGTRUE;
|
|
||||||
HGBase_SetEvent(m_event);
|
|
||||||
HGBase_CloseThread(m_thread);
|
|
||||||
m_thread = NULL;
|
|
||||||
HGBase_DestroyEvent(m_event);
|
|
||||||
m_event = NULL;
|
|
||||||
HGBase_DestroyLock(m_lock);
|
|
||||||
m_lock = NULL;
|
|
||||||
|
|
||||||
mysql_close(m_sql);
|
mysql_close(m_sql);
|
||||||
m_sql = NULL;
|
m_sql = NULL;
|
||||||
m_userName.clear();
|
m_userName.clear();
|
||||||
m_connectId = -1;
|
m_connectId = -1;
|
||||||
m_func = NULL;
|
return HGBASE_ERR_OK;
|
||||||
m_param = NULL;
|
}
|
||||||
m_valid = HGFALSE;
|
|
||||||
|
HGResult HGPdtToolDbUserMgrImpl::GetUserStatus(HGUInt* userStatus)
|
||||||
|
{
|
||||||
|
if (NULL == m_sql)
|
||||||
|
{
|
||||||
|
return HGBASE_ERR_FAIL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (NULL == userStatus)
|
||||||
|
{
|
||||||
|
return HGBASE_ERR_INVALIDARG;
|
||||||
|
}
|
||||||
|
|
||||||
|
*userStatus = HGPDTTOOLDB_USERSTATUS_OK;
|
||||||
|
int connectId = -1;
|
||||||
|
std::string takeUserName;
|
||||||
|
int ret = GetUserLoginInfo(m_sql, m_userName.c_str(), connectId, takeUserName);
|
||||||
|
if (0 != ret)
|
||||||
|
{
|
||||||
|
*userStatus = HGPDTTOOLDB_USERSTATUS_DBERROR;
|
||||||
|
}
|
||||||
|
else if (takeUserName == "root" && takeUserName != m_userName)
|
||||||
|
{
|
||||||
|
*userStatus = HGPDTTOOLDB_USERSTATUS_REFUSE;
|
||||||
|
}
|
||||||
|
else if (connectId != -1 && connectId != m_connectId)
|
||||||
|
{
|
||||||
|
*userStatus = HGPDTTOOLDB_USERSTATUS_CONFLICT;
|
||||||
|
}
|
||||||
|
|
||||||
return HGBASE_ERR_OK;
|
return HGBASE_ERR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -273,10 +273,7 @@ HGResult HGPdtToolDbUserMgrImpl::GetUserName(HGChar* userName, HGUInt maxLen)
|
||||||
|
|
||||||
HGResult HGPdtToolDbUserMgrImpl::RefuseUser(HGChar* userName)
|
HGResult HGPdtToolDbUserMgrImpl::RefuseUser(HGChar* userName)
|
||||||
{
|
{
|
||||||
HGBase_EnterLock(m_lock);
|
if (NULL == m_sql)
|
||||||
HGBool valid = m_valid;
|
|
||||||
HGBase_LeaveLock(m_lock);
|
|
||||||
if (NULL == m_sql || !valid)
|
|
||||||
{
|
{
|
||||||
return HGBASE_ERR_FAIL;
|
return HGBASE_ERR_FAIL;
|
||||||
}
|
}
|
||||||
|
@ -308,10 +305,7 @@ HGResult HGPdtToolDbUserMgrImpl::RefuseUser(HGChar* userName)
|
||||||
|
|
||||||
HGResult HGPdtToolDbUserMgrImpl::GetUserList(HGChar** userNameList, HGUInt maxLen, HGUInt* count)
|
HGResult HGPdtToolDbUserMgrImpl::GetUserList(HGChar** userNameList, HGUInt maxLen, HGUInt* count)
|
||||||
{
|
{
|
||||||
HGBase_EnterLock(m_lock);
|
if (NULL == m_sql)
|
||||||
HGBool valid = m_valid;
|
|
||||||
HGBase_LeaveLock(m_lock);
|
|
||||||
if (NULL == m_sql || !valid)
|
|
||||||
{
|
{
|
||||||
return HGBASE_ERR_FAIL;
|
return HGBASE_ERR_FAIL;
|
||||||
}
|
}
|
||||||
|
@ -379,10 +373,7 @@ HGResult HGPdtToolDbUserMgrImpl::ReleaseUserList(HGChar** userNameList, HGUInt c
|
||||||
|
|
||||||
HGResult HGPdtToolDbUserMgrImpl::CreateUser(const HGChar* userName, const HGChar* defPwd)
|
HGResult HGPdtToolDbUserMgrImpl::CreateUser(const HGChar* userName, const HGChar* defPwd)
|
||||||
{
|
{
|
||||||
HGBase_EnterLock(m_lock);
|
if (NULL == m_sql)
|
||||||
HGBool valid = m_valid;
|
|
||||||
HGBase_LeaveLock(m_lock);
|
|
||||||
if (NULL == m_sql || !valid)
|
|
||||||
{
|
{
|
||||||
return HGBASE_ERR_FAIL;
|
return HGBASE_ERR_FAIL;
|
||||||
}
|
}
|
||||||
|
@ -436,10 +427,7 @@ HGResult HGPdtToolDbUserMgrImpl::CreateUser(const HGChar* userName, const HGChar
|
||||||
|
|
||||||
HGResult HGPdtToolDbUserMgrImpl::DestroyUser(const HGChar* userName)
|
HGResult HGPdtToolDbUserMgrImpl::DestroyUser(const HGChar* userName)
|
||||||
{
|
{
|
||||||
HGBase_EnterLock(m_lock);
|
if (NULL == m_sql)
|
||||||
HGBool valid = m_valid;
|
|
||||||
HGBase_LeaveLock(m_lock);
|
|
||||||
if (NULL == m_sql || !valid)
|
|
||||||
{
|
{
|
||||||
return HGBASE_ERR_FAIL;
|
return HGBASE_ERR_FAIL;
|
||||||
}
|
}
|
||||||
|
@ -493,10 +481,7 @@ HGResult HGPdtToolDbUserMgrImpl::DestroyUser(const HGChar* userName)
|
||||||
|
|
||||||
HGResult HGPdtToolDbUserMgrImpl::SetPassword(const HGChar* userName, const HGChar* pwd)
|
HGResult HGPdtToolDbUserMgrImpl::SetPassword(const HGChar* userName, const HGChar* pwd)
|
||||||
{
|
{
|
||||||
HGBase_EnterLock(m_lock);
|
if (NULL == m_sql)
|
||||||
HGBool valid = m_valid;
|
|
||||||
HGBase_LeaveLock(m_lock);
|
|
||||||
if (NULL == m_sql || !valid)
|
|
||||||
{
|
{
|
||||||
return HGBASE_ERR_FAIL;
|
return HGBASE_ERR_FAIL;
|
||||||
}
|
}
|
||||||
|
@ -521,10 +506,7 @@ HGResult HGPdtToolDbUserMgrImpl::SetPassword(const HGChar* userName, const HGCha
|
||||||
|
|
||||||
HGResult HGPdtToolDbUserMgrImpl::ModifyPassword(const HGChar* oldPwd, const HGChar* newPwd)
|
HGResult HGPdtToolDbUserMgrImpl::ModifyPassword(const HGChar* oldPwd, const HGChar* newPwd)
|
||||||
{
|
{
|
||||||
HGBase_EnterLock(m_lock);
|
if (NULL == m_sql)
|
||||||
HGBool valid = m_valid;
|
|
||||||
HGBase_LeaveLock(m_lock);
|
|
||||||
if (NULL == m_sql || !valid)
|
|
||||||
{
|
{
|
||||||
return HGBASE_ERR_FAIL;
|
return HGBASE_ERR_FAIL;
|
||||||
}
|
}
|
||||||
|
@ -552,10 +534,7 @@ HGResult HGPdtToolDbUserMgrImpl::ModifyPassword(const HGChar* oldPwd, const HGCh
|
||||||
|
|
||||||
HGResult HGPdtToolDbUserMgrImpl::UploadFile(const HGChar* tag, const HGChar* fileName)
|
HGResult HGPdtToolDbUserMgrImpl::UploadFile(const HGChar* tag, const HGChar* fileName)
|
||||||
{
|
{
|
||||||
HGBase_EnterLock(m_lock);
|
if (NULL == m_sql)
|
||||||
HGBool valid = m_valid;
|
|
||||||
HGBase_LeaveLock(m_lock);
|
|
||||||
if (NULL == m_sql || !valid)
|
|
||||||
{
|
{
|
||||||
return HGBASE_ERR_FAIL;
|
return HGBASE_ERR_FAIL;
|
||||||
}
|
}
|
||||||
|
@ -653,10 +632,7 @@ HGResult HGPdtToolDbUserMgrImpl::UploadFile(const HGChar* tag, const HGChar* fil
|
||||||
|
|
||||||
HGResult HGPdtToolDbUserMgrImpl::DownloadFile(const HGChar* tag, const HGChar* fileName)
|
HGResult HGPdtToolDbUserMgrImpl::DownloadFile(const HGChar* tag, const HGChar* fileName)
|
||||||
{
|
{
|
||||||
HGBase_EnterLock(m_lock);
|
if (NULL == m_sql)
|
||||||
HGBool valid = m_valid;
|
|
||||||
HGBase_LeaveLock(m_lock);
|
|
||||||
if (NULL == m_sql || !valid)
|
|
||||||
{
|
{
|
||||||
return HGBASE_ERR_FAIL;
|
return HGBASE_ERR_FAIL;
|
||||||
}
|
}
|
||||||
|
@ -724,10 +700,7 @@ HGResult HGPdtToolDbUserMgrImpl::DownloadFile(const HGChar* tag, const HGChar* f
|
||||||
|
|
||||||
HGResult HGPdtToolDbUserMgrImpl::Export(const HGChar* xlsPath)
|
HGResult HGPdtToolDbUserMgrImpl::Export(const HGChar* xlsPath)
|
||||||
{
|
{
|
||||||
HGBase_EnterLock(m_lock);
|
if (NULL == m_sql)
|
||||||
HGBool valid = m_valid;
|
|
||||||
HGBase_LeaveLock(m_lock);
|
|
||||||
if (NULL == m_sql || !valid)
|
|
||||||
{
|
{
|
||||||
return HGBASE_ERR_FAIL;
|
return HGBASE_ERR_FAIL;
|
||||||
}
|
}
|
||||||
|
@ -872,10 +845,7 @@ HGResult HGPdtToolDbUserMgrImpl::Export(const HGChar* xlsPath)
|
||||||
|
|
||||||
HGResult HGPdtToolDbUserMgrImpl::GetConfig(const HGChar* key, HGChar* value, HGUInt maxLen)
|
HGResult HGPdtToolDbUserMgrImpl::GetConfig(const HGChar* key, HGChar* value, HGUInt maxLen)
|
||||||
{
|
{
|
||||||
HGBase_EnterLock(m_lock);
|
if (NULL == m_sql)
|
||||||
HGBool valid = m_valid;
|
|
||||||
HGBase_LeaveLock(m_lock);
|
|
||||||
if (NULL == m_sql || !valid)
|
|
||||||
{
|
{
|
||||||
return HGBASE_ERR_FAIL;
|
return HGBASE_ERR_FAIL;
|
||||||
}
|
}
|
||||||
|
@ -926,10 +896,7 @@ HGResult HGPdtToolDbUserMgrImpl::GetConfig(const HGChar* key, HGChar* value, HGU
|
||||||
|
|
||||||
HGResult HGPdtToolDbUserMgrImpl::SetConfig(const HGChar* key, const HGChar* value)
|
HGResult HGPdtToolDbUserMgrImpl::SetConfig(const HGChar* key, const HGChar* value)
|
||||||
{
|
{
|
||||||
HGBase_EnterLock(m_lock);
|
if (NULL == m_sql)
|
||||||
HGBool valid = m_valid;
|
|
||||||
HGBase_LeaveLock(m_lock);
|
|
||||||
if (NULL == m_sql || !valid)
|
|
||||||
{
|
{
|
||||||
return HGBASE_ERR_FAIL;
|
return HGBASE_ERR_FAIL;
|
||||||
}
|
}
|
||||||
|
@ -961,10 +928,7 @@ HGResult HGPdtToolDbUserMgrImpl::SetConfig(const HGChar* key, const HGChar* valu
|
||||||
|
|
||||||
HGResult HGPdtToolDbUserMgrImpl::OpenDevice(const HGChar* sn, class HGPdtToolDbDeviceImpl** deviceImpl)
|
HGResult HGPdtToolDbUserMgrImpl::OpenDevice(const HGChar* sn, class HGPdtToolDbDeviceImpl** deviceImpl)
|
||||||
{
|
{
|
||||||
HGBase_EnterLock(m_lock);
|
if (NULL == m_sql)
|
||||||
HGBool valid = m_valid;
|
|
||||||
HGBase_LeaveLock(m_lock);
|
|
||||||
if (NULL == m_sql || !valid)
|
|
||||||
{
|
{
|
||||||
return HGBASE_ERR_FAIL;
|
return HGBASE_ERR_FAIL;
|
||||||
}
|
}
|
||||||
|
@ -999,44 +963,6 @@ HGResult HGPdtToolDbUserMgrImpl::OpenDevice(const HGChar* sn, class HGPdtToolDbD
|
||||||
return HGBASE_ERR_OK;
|
return HGBASE_ERR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
void HGAPI HGPdtToolDbUserMgrImpl::ThreadFunc(HGThread thread, HGPointer param)
|
|
||||||
{
|
|
||||||
HGPdtToolDbUserMgrImpl* p = (HGPdtToolDbUserMgrImpl*)param;
|
|
||||||
while (!p->m_stopThread)
|
|
||||||
{
|
|
||||||
HGUInt event = 0;
|
|
||||||
|
|
||||||
int connectId = -1;
|
|
||||||
std::string takeUserName;
|
|
||||||
int ret = GetUserLoginInfo(p->m_sql, p->m_userName.c_str(), connectId, takeUserName);
|
|
||||||
if (0 != ret)
|
|
||||||
{
|
|
||||||
event = HGPDTTOOLDB_USEREVENT_DBERROR;
|
|
||||||
}
|
|
||||||
else if (takeUserName == "root" && takeUserName != p->m_userName)
|
|
||||||
{
|
|
||||||
event = HGPDTTOOLDB_USEREVENT_REFUSE;
|
|
||||||
}
|
|
||||||
else if (connectId != -1 && connectId != p->m_connectId)
|
|
||||||
{
|
|
||||||
event = HGPDTTOOLDB_USEREVENT_CONFLICT;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (0 != event)
|
|
||||||
{
|
|
||||||
HGBase_EnterLock(p->m_lock);
|
|
||||||
p->m_valid = HGFALSE;
|
|
||||||
HGBase_LeaveLock(p->m_lock);
|
|
||||||
|
|
||||||
if (NULL != p->m_func)
|
|
||||||
p->m_func((HGPdtToolDbUserMgr)p, event, p->m_param);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
HGBase_WaitEventTimeout(p->m_event, 1000);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void HGPdtToolDbUserMgrImpl::RemoveDevice(class HGPdtToolDbDeviceImpl* deviceImpl)
|
void HGPdtToolDbUserMgrImpl::RemoveDevice(class HGPdtToolDbDeviceImpl* deviceImpl)
|
||||||
{
|
{
|
||||||
std::list<class HGPdtToolDbDeviceImpl*>::iterator iter;
|
std::list<class HGPdtToolDbDeviceImpl*>::iterator iter;
|
||||||
|
@ -1337,10 +1263,7 @@ HGPdtToolDbDeviceImpl::~HGPdtToolDbDeviceImpl()
|
||||||
|
|
||||||
HGResult HGPdtToolDbDeviceImpl::GetCurrEntry(HGUInt* entryName)
|
HGResult HGPdtToolDbDeviceImpl::GetCurrEntry(HGUInt* entryName)
|
||||||
{
|
{
|
||||||
HGBase_EnterLock(m_userMgr->m_lock);
|
if (NULL == m_userMgr->m_sql)
|
||||||
HGBool valid = m_userMgr->m_valid;
|
|
||||||
HGBase_LeaveLock(m_userMgr->m_lock);
|
|
||||||
if (NULL == m_userMgr->m_sql || !valid)
|
|
||||||
{
|
{
|
||||||
return HGBASE_ERR_FAIL;
|
return HGBASE_ERR_FAIL;
|
||||||
}
|
}
|
||||||
|
@ -1379,10 +1302,7 @@ HGResult HGPdtToolDbDeviceImpl::GetCurrEntry(HGUInt* entryName)
|
||||||
|
|
||||||
HGResult HGPdtToolDbDeviceImpl::SetCurrEntry(HGUInt entryName)
|
HGResult HGPdtToolDbDeviceImpl::SetCurrEntry(HGUInt entryName)
|
||||||
{
|
{
|
||||||
HGBase_EnterLock(m_userMgr->m_lock);
|
if (NULL == m_userMgr->m_sql)
|
||||||
HGBool valid = m_userMgr->m_valid;
|
|
||||||
HGBase_LeaveLock(m_userMgr->m_lock);
|
|
||||||
if (NULL == m_userMgr->m_sql || !valid)
|
|
||||||
{
|
{
|
||||||
return HGBASE_ERR_FAIL;
|
return HGBASE_ERR_FAIL;
|
||||||
}
|
}
|
||||||
|
@ -1405,10 +1325,7 @@ HGResult HGPdtToolDbDeviceImpl::SetCurrEntry(HGUInt entryName)
|
||||||
|
|
||||||
HGResult HGPdtToolDbDeviceImpl::GetEntryStatus(HGUInt entryName, HGUInt* entryStatus)
|
HGResult HGPdtToolDbDeviceImpl::GetEntryStatus(HGUInt entryName, HGUInt* entryStatus)
|
||||||
{
|
{
|
||||||
HGBase_EnterLock(m_userMgr->m_lock);
|
if (NULL == m_userMgr->m_sql)
|
||||||
HGBool valid = m_userMgr->m_valid;
|
|
||||||
HGBase_LeaveLock(m_userMgr->m_lock);
|
|
||||||
if (NULL == m_userMgr->m_sql || !valid)
|
|
||||||
{
|
{
|
||||||
return HGBASE_ERR_FAIL;
|
return HGBASE_ERR_FAIL;
|
||||||
}
|
}
|
||||||
|
@ -1454,10 +1371,7 @@ HGResult HGPdtToolDbDeviceImpl::GetEntryStatus(HGUInt entryName, HGUInt* entrySt
|
||||||
|
|
||||||
HGResult HGPdtToolDbDeviceImpl::SetEntryStatus(HGUInt entryName, HGUInt entryStatus)
|
HGResult HGPdtToolDbDeviceImpl::SetEntryStatus(HGUInt entryName, HGUInt entryStatus)
|
||||||
{
|
{
|
||||||
HGBase_EnterLock(m_userMgr->m_lock);
|
if (NULL == m_userMgr->m_sql)
|
||||||
HGBool valid = m_userMgr->m_valid;
|
|
||||||
HGBase_LeaveLock(m_userMgr->m_lock);
|
|
||||||
if (NULL == m_userMgr->m_sql || !valid)
|
|
||||||
{
|
{
|
||||||
return HGBASE_ERR_FAIL;
|
return HGBASE_ERR_FAIL;
|
||||||
}
|
}
|
||||||
|
@ -1508,10 +1422,7 @@ HGResult HGPdtToolDbDeviceImpl::SetEntryStatus(HGUInt entryName, HGUInt entrySta
|
||||||
|
|
||||||
HGResult HGPdtToolDbDeviceImpl::GetEntryExcepDesc(HGUInt entryName, HGChar* excepDesc, HGUInt maxLen)
|
HGResult HGPdtToolDbDeviceImpl::GetEntryExcepDesc(HGUInt entryName, HGChar* excepDesc, HGUInt maxLen)
|
||||||
{
|
{
|
||||||
HGBase_EnterLock(m_userMgr->m_lock);
|
if (NULL == m_userMgr->m_sql)
|
||||||
HGBool valid = m_userMgr->m_valid;
|
|
||||||
HGBase_LeaveLock(m_userMgr->m_lock);
|
|
||||||
if (NULL == m_userMgr->m_sql || !valid)
|
|
||||||
{
|
{
|
||||||
return HGBASE_ERR_FAIL;
|
return HGBASE_ERR_FAIL;
|
||||||
}
|
}
|
||||||
|
@ -1569,10 +1480,7 @@ HGResult HGPdtToolDbDeviceImpl::GetEntryExcepDesc(HGUInt entryName, HGChar* exce
|
||||||
|
|
||||||
HGResult HGPdtToolDbDeviceImpl::SetEntryExcepDesc(HGUInt entryName, const HGChar* excepDesc)
|
HGResult HGPdtToolDbDeviceImpl::SetEntryExcepDesc(HGUInt entryName, const HGChar* excepDesc)
|
||||||
{
|
{
|
||||||
HGBase_EnterLock(m_userMgr->m_lock);
|
if (NULL == m_userMgr->m_sql)
|
||||||
HGBool valid = m_userMgr->m_valid;
|
|
||||||
HGBase_LeaveLock(m_userMgr->m_lock);
|
|
||||||
if (NULL == m_userMgr->m_sql || !valid)
|
|
||||||
{
|
{
|
||||||
return HGBASE_ERR_FAIL;
|
return HGBASE_ERR_FAIL;
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,9 +18,9 @@ public:
|
||||||
HGPdtToolDbUserMgrImpl();
|
HGPdtToolDbUserMgrImpl();
|
||||||
~HGPdtToolDbUserMgrImpl();
|
~HGPdtToolDbUserMgrImpl();
|
||||||
|
|
||||||
HGResult Create(const HGChar* host, HGUShort port, const HGChar* userName, const HGChar* pwd,
|
HGResult Create(const HGChar* host, HGUShort port, const HGChar* userName, const HGChar* pwd);
|
||||||
HGPdtToolDbUserEventFunc func, HGPointer param);
|
|
||||||
HGResult Destroy();
|
HGResult Destroy();
|
||||||
|
HGResult GetUserStatus(HGUInt* userStatus);
|
||||||
HGResult GetUserType(HGUInt* userType);
|
HGResult GetUserType(HGUInt* userType);
|
||||||
HGResult GetUserName(HGChar* userName, HGUInt maxLen);
|
HGResult GetUserName(HGChar* userName, HGUInt maxLen);
|
||||||
HGResult RefuseUser(HGChar* userName);
|
HGResult RefuseUser(HGChar* userName);
|
||||||
|
@ -38,7 +38,6 @@ public:
|
||||||
HGResult OpenDevice(const HGChar* sn, class HGPdtToolDbDeviceImpl **deviceImpl);
|
HGResult OpenDevice(const HGChar* sn, class HGPdtToolDbDeviceImpl **deviceImpl);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static void HGAPI ThreadFunc(HGThread thread, HGPointer param);
|
|
||||||
void RemoveDevice(class HGPdtToolDbDeviceImpl* deviceImpl);
|
void RemoveDevice(class HGPdtToolDbDeviceImpl* deviceImpl);
|
||||||
static const HGChar* GetEntryNameCnStr(HGUInt entryName);
|
static const HGChar* GetEntryNameCnStr(HGUInt entryName);
|
||||||
|
|
||||||
|
@ -64,15 +63,6 @@ private:
|
||||||
MYSQL* m_sql;
|
MYSQL* m_sql;
|
||||||
std::string m_userName;
|
std::string m_userName;
|
||||||
int m_connectId;
|
int m_connectId;
|
||||||
HGPdtToolDbUserEventFunc m_func;
|
|
||||||
HGPointer m_param;
|
|
||||||
HGBool m_valid;
|
|
||||||
|
|
||||||
HGLock m_lock;
|
|
||||||
HGEvent m_event;
|
|
||||||
HGBool m_stopThread;
|
|
||||||
HGThread m_thread;
|
|
||||||
|
|
||||||
std::list<class HGPdtToolDbDeviceImpl*> m_deviceList;
|
std::list<class HGPdtToolDbDeviceImpl*> m_deviceList;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ int main()
|
||||||
HGPdtToolDb_CreateUserMgr("127.0.0.1", 3306, "root", "123456", NULL, NULL, &userMgr);
|
HGPdtToolDb_CreateUserMgr("127.0.0.1", 3306, "root", "123456", NULL, NULL, &userMgr);
|
||||||
if (NULL != userMgr)
|
if (NULL != userMgr)
|
||||||
{
|
{
|
||||||
Sleep(30 * 1000);
|
//Sleep(30 * 1000);
|
||||||
|
|
||||||
//HGPdtToolDb_UploadFile(userMgr, "G100", "D:\\config.json");
|
//HGPdtToolDb_UploadFile(userMgr, "G100", "D:\\config.json");
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ int main()
|
||||||
|
|
||||||
HGPdtToolDbDevice device = NULL;
|
HGPdtToolDbDevice device = NULL;
|
||||||
HGPdtToolDb_OpenDevice(userMgr, "G123456", &device);
|
HGPdtToolDb_OpenDevice(userMgr, "G123456", &device);
|
||||||
HGPdtToolDb_CloseDevice(device);
|
//HGPdtToolDb_CloseDevice(device);
|
||||||
|
|
||||||
HGPdtToolDb_Export(userMgr, "D:\\1.xls");
|
HGPdtToolDb_Export(userMgr, "D:\\1.xls");
|
||||||
HGPdtToolDb_DestroyUserMgr(userMgr);
|
HGPdtToolDb_DestroyUserMgr(userMgr);
|
||||||
|
|
Loading…
Reference in New Issue