Files
mir_server/server/LocalLogServer/SrvConfig.cpp
aixianling 5c9f1dae4a init
2025-01-09 17:45:40 +08:00

79 lines
2.0 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "StdAfx.h"
#include "SrvConfig.h"
using namespace wylib::stream;
CSrvConfig::CSrvConfig(void)
{
}
CSrvConfig::~CSrvConfig(void)
{
}
void CSrvConfig::ReadConfig(const char *pszFileName)
{
try
{
OutputMsg(rmTip,"load file from %s",pszFileName);
CMemoryStream ms;
ms.loadFromFile(pszFileName);
setScript((LPCSTR)ms.getMemory());
memset(&DbConf,0,sizeof(DbConf));
if ( openGlobalTable("LocalLogServer"))
{
int nDefault =0;
nSpid = getFieldInt("spguid",&nDefault);
CLocalLogClientSocket::g_nSpid = nSpid;
if ( openFieldTable("SQL"))
{
getFieldStringBuffer(("Host"), DbConf.szHost,sizeof(DbConf.szHost));
DbConf.nPort = getFieldInt("Port");
getFieldStringBuffer(("DBName"), DbConf.szDbName,sizeof(DbConf.szDbName));
getFieldStringBuffer(("DBUser"), DbConf.szUser,sizeof(DbConf.szUser));
char szTemp[100];
//getFieldStringBuffer(("DBPass"), szTemp,sizeof(szTemp));
//DecryptPassword(DbConf.szPassWord,sizeof(DbConf.szPassWord),szTemp,"123456abc123456a");
getFieldStringBuffer(("DBPass"), DbConf.szPassWord,sizeof(DbConf.szPassWord));
int nDef =0;
DbConf.m_bUtf8= getFieldInt("utf8", &nDef ) ?true:false; //数据库的编码是不是utf8
closeTable();//DB
}
if ( openFieldTable(("Server")))
{
getFieldStringBuffer(("BindAddress"), SrvConf.szAddr,sizeof(SrvConf.szAddr));
SrvConf.nPort = getFieldInt("Port");
getFieldStringBuffer(("ServiceName"), SrvConf.szServiceName,sizeof(SrvConf.szServiceName));
closeTable();//DB
}
closeTable();//关闭Config
}
}
catch(RefString &s)
{
OutputMsg( rmNormal, s.rawStr() );
}
catch(...)
{
OutputMsg( rmNormal, _T("unexpected error on load config") );
}
}
void CSrvConfig::ShowError(const LPCTSTR sError)
{
m_sLastErrDesc = sError;
RefString sErr;
sErr = _T("[Configuration Error]");
sErr += sError;
//集中处理错误为了简单起见此处直接抛出异常。异常会在readConfig中被捕获从而立刻跳出对配置的循环读取。
throw sErr;
}