Sfoglia il codice sorgente

Z991239-890 #comment cmake: mod_CenterSetting 跨平台实现

gifur 5 anni fa
parent
commit
56cade599f

+ 21 - 0
Module/mod_CenterSetting/CMakeLists.txt

@@ -0,0 +1,21 @@
+define_module("CenterSetting")
+
+set(${MODULE_PREFIX}_SRCS
+	CenterSettingConn.cpp
+	CenterSettingConn.h
+	mod_centersetting.cpp
+	mod_centersetting.h
+	)
+
+set(MOD_VERSION_STRING "0.0.1-dev1")
+add_module_libraries(${MODULE_PREFIX} ${MODULE_NAME} ${MOD_VERSION_STRING})
+
+target_include_directories(${MODULE_NAME} PRIVATE
+	${RVC_TOOLKIT_INCLUDE_DIR}
+)
+
+# 添加实体需要依赖的其他共享库(包括系统库)
+set(${MODULE_PREFIX}_LIBS ${MODULE_BASE_LIBS} ${RVCCOMM_LIB})
+target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS} CONAN_PKG::OpenSSL)
+
+deploy_module(${MODULE_PREFIX} ${MODULE_NAME})

+ 81 - 33
Module/mod_CenterSetting/CenterSettingConn.cpp

@@ -1,4 +1,7 @@
-#include "StdAfx.h"
+#include "stdafx.h"
+#ifdef RVC_OS_WIN
+	#include <wincrypt.h>
+#endif // RVC_OS_WIN
 #include "CenterSettingConn.h"
 #include "Event.h"
 #include <map>
@@ -8,7 +11,8 @@ using namespace std;
 #include "mod_centersetting.h"
 
 #include "fileutil.h"
-#pragma comment(lib, "crypt32.lib")
+#include "iniutil.h"
+#include "md5.h"
 
 CCenterSettingConn::CCenterSettingConn(CEntityBase *pEntity)
 	: SpSecureClient(pEntity)
@@ -109,10 +113,17 @@ ErrorCodeEnum CCenterSettingConn::BeginPollConfig()
 		{
 			auto &fileInfo = it->second;
 			
+#ifdef RVC_OS_WIN
 			strncpy_s(pReq[nIndex].TerminalNo, sizeof(pReq[nIndex].TerminalNo), info.strTerminalID, _TRUNCATE);
 			strncpy_s(pReq[nIndex].MachineType, sizeof(pReq[nIndex].MachineType), info.strMachineType, _TRUNCATE);
 			strncpy_s(pReq[nIndex].Sites, sizeof(pReq[nIndex].Sites), it->first.c_str(), _TRUNCATE);
 			strncpy_s(pReq[nIndex].LastHash, sizeof(pReq[nIndex].LastHash), fileInfo.strFileHash, _TRUNCATE);
+#else
+			strncpy(pReq[nIndex].TerminalNo, info.strTerminalID, strlen(info.strTerminalID));
+			strncpy(pReq[nIndex].MachineType, info.strMachineType, strlen(info.strMachineType));
+			strncpy(pReq[nIndex].Sites, it->first.c_str(), it->first.length());
+			strncpy(pReq[nIndex].LastHash, fileInfo.strFileHash, strlen(fileInfo.strFileHash));
+#endif
 
 			nIndex++;
 		}
@@ -123,10 +134,16 @@ ErrorCodeEnum CCenterSettingConn::BeginPollConfig()
 	else
 	{
 		PollCfgReq req = {};
-
+#ifdef RVC_OS_WIN
 		strncpy_s(req.TerminalNo, sizeof(req.TerminalNo), info.strTerminalID, _TRUNCATE);
 		strncpy_s(req.MachineType, sizeof(req.MachineType), info.strMachineType, _TRUNCATE);
-		strncpy_s(req.Sites, sizeof(req.Sites),info.strSite, _TRUNCATE);
+		strncpy_s(req.Sites, sizeof(req.Sites), info.strSite, _TRUNCATE);
+#else
+		strncpy(req.TerminalNo, info.strTerminalID, strlen(info.strTerminalID));
+		strncpy(req.MachineType, info.strMachineType, strlen(info.strMachineType));
+		strncpy(req.Sites, info.strSite, strlen(info.strSite));
+#endif
+
 
 		pPackage->AddStruct("PollReq", false, false, (BYTE*)&req, sizeof(PollCfgReq));
 	}
@@ -176,11 +193,14 @@ ErrorCodeEnum CCenterSettingConn::OnEndPollConfig(const CSmartPointer<IPackage>
 		Dbg("center config changed, hash: %s, file: %s", (const char*)pRet->FileHash, (const char*)pRet->FileName);
 
 		// 校验Hash是否匹配
+		//BYTE md5digest[16] = {};
+		//if(0 != md5(md5digest, (BYTE*)pRet->FileContent, nRetLen - sizeof(PollCfgRet)))
+
 		BYTE md5[16] = {};
 		if (!MD5Hash((BYTE*)pRet->FileContent, nRetLen - sizeof(PollCfgRet), md5))
 		{
-			delete pBuf;
 			Dbg("compute md5 hash fail");
+			delete[] pBuf;
 			return Error_Unexpect;
 		}
 
@@ -190,8 +210,8 @@ ErrorCodeEnum CCenterSettingConn::OnEndPollConfig(const CSmartPointer<IPackage>
 
 		if (stricmp(strHash, pRet->FileHash) != 0)
 		{
-			delete pBuf;
 			Dbg("computed hash [%s] != return hash [%s]", (const char*)strHash, pRet->FileHash);
+			delete[] pBuf;
 			return Error_Unexpect;
 		}
 
@@ -199,7 +219,7 @@ ErrorCodeEnum CCenterSettingConn::OnEndPollConfig(const CSmartPointer<IPackage>
 		assert(pFunc != NULL);
 		CSimpleStringA strPath;
 		pFunc->GetPath("Cfg", strPath);
-		CSimpleStringA strCurFile = CSimpleStringA::Format("%s\\%s", (const char*)strPath, pRet->FileName);
+		CSimpleStringA strCurFile = CSimpleStringA::Format("%s" SPLIT_SLASH_STR "%s", (const char*)strPath, (const char*)pRet->FileName);
 
 		// 保存新配置文件
 		CSimpleStringA strNewFile = strCurFile + ".new";
@@ -210,51 +230,65 @@ ErrorCodeEnum CCenterSettingConn::OnEndPollConfig(const CSmartPointer<IPackage>
 
 		if (nLen < nRetLen - sizeof(PollCfgRet))
 		{
-			delete pBuf;
 			Dbg("save %s fail, fwrite len: %d, act len: %d", pRet->FileName, nLen, nRetLen - sizeof(PollCfgRet));
+			delete[] pBuf;
 			return Error_Unexpect;
 		}
 
 		// 检测新集中配置地址是否可用
 		char tmp[32] = {};
-		if (GetPrivateProfileStringA("CenterSetting", "Server", "", tmp, 32, strNewFile) < 10)
+		if(inifile_read_str_s("CenterSetting", "Server", "", tmp, 32, strNewFile) < 10)
 		{
-			delete pBuf;
-			Dbg("read center setting service addr from %s fail", pRet->FileName);
+			Dbg("read center setting service addr from %s fail", (const char*)strNewFile);
+			delete[] pBuf;
 			return Error_Unexpect;
 		}
 
 		if (!IsServiceAvailable(tmp))
 		{
-			//delete pBuf;
+			//delete[] pBuf;
 			Dbg("集中配置服务新地址[%s]无法连接!!!", tmp);
 			//return Error_Unexpect;
 		}
 
 		// 读出当前集中配置服务地址
 		memset(tmp, 0, 32);
-		GetPrivateProfileStringA("CenterSetting", "Server", "", tmp, 32, strCurFile);
+		inifile_read_str_s("CenterSetting", "Server", "", tmp, 32, strCurFile);
 		CSimpleStringA strCurServer = tmp;
 
 		// 写入同步信息
-		WritePrivateProfileStringA("Main", "LastServer", strCurServer, strNewFile);
+		inifile_write_str(strNewFile, "Main", "LastServer", strCurServer);
+		//WritePrivateProfileStringA("Main", "LastServer", strCurServer, strNewFile);
 		DWORD dwSyncTime = CSmallDateTime::GetNow();
 		sprintf_s(tmp, sizeof(tmp), "0x%X", dwSyncTime);
-		WritePrivateProfileStringA("Main", "SyncTime", tmp, strNewFile);
-		WritePrivateProfileStringA("Main", "SyncHash", pRet->FileHash, strNewFile);
-		WritePrivateProfileStringA("Main", "SyncFile", pRet->FileName, strNewFile);
+
+		//WritePrivateProfileStringA("Main", "SyncTime", tmp, strNewFile);
+		//WritePrivateProfileStringA("Main", "SyncHash", pRet->FileHash, strNewFile);
+		//WritePrivateProfileStringA("Main", "SyncFile", pRet->FileName, strNewFile);
+		inifile_write_str(strNewFile, "Main", "SyncTime", tmp);
+		inifile_write_str(strNewFile, "Main", "SyncHash", pRet->FileHash);
+		inifile_write_str(strNewFile, "Main", "SyncFile", pRet->FileName);
 
 		// 保存原配置文件
-		SYSTEMTIME st = {};
-		GetLocalTime(&st);
+
+		time_t t = time(NULL);
+		tm* t1 = localtime(&t);
+
+		//SYSTEMTIME st = {};
+		//GetLocalTime(&st);
+		//CSimpleStringA strBackFile = CSimpleStringA::Format("%s.%04d%02d%02d%02d%02d", (const char*)strCurFile,
+		//	st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute);
 		CSimpleStringA strBackFile = CSimpleStringA::Format("%s.%04d%02d%02d%02d%02d", (const char*)strCurFile,
-			st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute);
-		CopyFileA(strCurFile, strBackFile, FALSE);
+			t1->tm_year + 1900, t1->tm_mon + 1, t1->tm_mday, t1->tm_hour, t1->tm_min);
+		fileutil_copy_file(strBackFile, strCurFile);
+		//CopyFileA(strCurFile, strBackFile, FALSE);
 
 		// 替换当前配置文件
-		CopyFileA(strNewFile, strCurFile, FALSE);
-		DeleteFileA(strNewFile);
-		Dbg("save config %s succ", pRet->FileName);
+		fileutil_copy_file(strCurFile, strNewFile);
+		//CopyFileA(strNewFile, strCurFile, FALSE);
+		fileutil_delete_file(strNewFile);
+		//DeleteFileA(strNewFile);
+		Dbg("save config %s succ", (const char*)pRet->FileName);
 
 		// 保存同步信息
 		CCenterSettingEntity::ConfigFileInfo  info;
@@ -263,10 +297,12 @@ ErrorCodeEnum CCenterSettingConn::OnEndPollConfig(const CSmartPointer<IPackage>
 		info.strFileName = pRet->FileName;
 		
 		CSimpleStringA str1, str2;
-		if (pEntity->ExtractSiteFromFileName(info.strFileName, str1, str2))
+		if (pEntity->TryExtractSiteFromFileName(info.strFileName, str1, str2))
+		{
 			pEntity->m_SyncFileInfo[(const char*)str2] = info;
+		}
 
-		delete pBuf;
+		delete[] pBuf;
 		pBuf = NULL;
 	}  // end while
 
@@ -280,8 +316,7 @@ ErrorCodeEnum CCenterSettingConn::OnEndPollConfig(const CSmartPointer<IPackage>
 
 		// 缓存当前RVCWeb版本
 		char szVersion[64] = {};
-		::GetPrivateProfileStringA("IEBrowser", "RvcWebVersion", "", szVersion, 64, strFilePath);
-
+		inifile_read_str_s("IEBrowser", "RvcWebVersion", "", szVersion, 64, strFilePath);
 		if (strcmp(szVersion, pEntity->m_strRvcWebVersion) != 0)
 		{
 			Dbg("rvc web version changed, last: [%s], current: [%s]", (const char*)pEntity->m_strRvcWebVersion, szVersion);
@@ -295,17 +330,27 @@ ErrorCodeEnum CCenterSettingConn::OnEndPollConfig(const CSmartPointer<IPackage>
 
 bool CCenterSettingConn::MD5Hash(BYTE *pData, int nDataLen, BYTE hash[16])
 {
+
+#if !defined(RVC_OS_WIN)
+	md5_ctx_t ctx;
+	md5_init(&ctx);
+	if (0 != md5_update(&ctx, pData, nDataLen))
+		return false;
+
+	if (0 != md5_final(hash, &ctx))
+		return false;
+
+	return true;
+#else
 	bool bRet = false;
 	HCRYPTPROV hCryptProv;
 	if (CryptAcquireContextA(&hCryptProv, NULL, NULL, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT | CRYPT_MACHINE_KEYSET)) {
 		int rc = Error_Unexpect;
 		HCRYPTHASH hHash;
-		if (CryptCreateHash(hCryptProv, CALG_MD5, 0, 0, &hHash))
-		{
+		if (CryptCreateHash(hCryptProv, CALG_MD5, 0, 0, &hHash)) {
 			if (!CryptHashData(hHash, pData, nDataLen, 0))
 				Dbg("CryptHashData fail");
-			else
-			{
+			else {
 				DWORD dwLen = 16;
 				if (CryptGetHashParam(hHash, HP_HASHVAL, (LPBYTE)&hash[0], &dwLen, 0))
 					bRet = true;
@@ -322,6 +367,9 @@ bool CCenterSettingConn::MD5Hash(BYTE *pData, int nDataLen, BYTE hash[16])
 	else {
 		Dbg("CryptAcquireContextA failed");
 	}
-
 	return bRet;
+#endif // RVC_OS_WIN
+
+
+
 }

+ 1 - 0
Module/mod_CenterSetting/CenterSettingConn.h

@@ -1,4 +1,5 @@
 #pragma once
+
 #include "SpSecureClient.h"
 
 #pragma pack(1)

+ 2 - 0
Module/mod_CenterSetting/ChangeLog

@@ -0,0 +1,2 @@
+
+* 2020-7-3 调通与分行服务进行通信的功能,双活机制中用到

+ 28 - 45
Module/mod_CenterSetting/mod_centersetting.cpp

@@ -4,10 +4,16 @@
 #include "mod_centersetting.h"
 
 #include "fileutil.h"
+#include "iniutil.h"
 #include "array.h"
+
 #include <regex>
 using namespace std;
 
+
+#define DOWNLOAD_CENTERSETTINGS_TIMER_ID 1
+#define DOWNLOAD_CENTERSETTINGS_TIMER_INTERVAL (5 * 60 * 1000)
+
 CServerSessionBase *CCenterSettingEntity::OnNewSession(const char* /*pszRemoteEntityName*/, const char * /*pszClass*/)
 {
 	return new CCenterSettingService(this);
@@ -15,33 +21,6 @@ CServerSessionBase *CCenterSettingEntity::OnNewSession(const char* /*pszRemoteEn
 
  void CCenterSettingEntity::OnStarted()
  {
-	 //MessageBox(0, 0, 0, 0);
-
-	 // 读取当前同步信息
-	 //CSmartPointer<IConfigInfo> pConfig;
-	 //auto rc = GetFunction()->OpenConfig(Config_CenterSetting, pConfig);
-	 //assert(rc == Error_Succeed);
-	 //int nSyncTime(0);
-	 //rc = pConfig->ReadConfigValueInt("Main", "SyncTime", nSyncTime);
-	 //if (rc == Error_Succeed)
-		// m_dwLastSyncTime = nSyncTime;
-	 //else
-		// m_dwLastSyncTime = 0;
-
-	 //CSimpleStringA strSyncHash;
-	 //rc = pConfig->ReadConfigValue("Main", "SyncHash", strSyncHash);
-	 //if (rc == Error_Succeed)
-		// m_strSyncFileHash = strSyncHash;
-	 //else
-		// m_strSyncFileHash = "";
-
-	 //CSimpleStringA strSyncFile;
-	 //rc = pConfig->ReadConfigValue("Main", "SyncFile", strSyncFile);
-	 //if (rc == Error_Succeed)
-		// m_strSyncFileName = strSyncFile;
-	 //else
-		// m_strSyncFileName = "";
-
 	 auto pFunc = GetFunction();
 	 CSimpleStringA strPath;
 	 pFunc->GetPath("Cfg", strPath);
@@ -55,13 +34,13 @@ CServerSessionBase *CCenterSettingEntity::OnNewSession(const char* /*pszRemoteEn
 			 char *pszFile = ARRAY_IDX(arr, i, char*);
 
 			 CSimpleStringA strSite;
-			 if (ExtractSiteFromFileName(pszFile, info.strFileName, strSite))
+			 if (TryExtractSiteFromFileName(pszFile, info.strFileName, strSite))
 			 {
 				 char szTmp[64];
-				 ::GetPrivateProfileStringA("Main", "SyncHash", "", szTmp, 64, pszFile);
+				 inifile_read_str_s("Main", "SyncHash", "", szTmp, 64, pszFile);
 				 info.strFileHash = szTmp;
 
-				 ::GetPrivateProfileStringA("Main", "SyncTime", "", szTmp, 64, pszFile);
+				 inifile_read_str_s("Main", "SyncTime", "", szTmp, 64, pszFile);
 				 DWORD nValue;
 				 sscanf(szTmp, "0x%X", &nValue);
 				 info.dwSyncTime = nValue;
@@ -74,25 +53,32 @@ CServerSessionBase *CCenterSettingEntity::OnNewSession(const char* /*pszRemoteEn
 
 	 CSimpleStringA strFilePath;
 	 GetFunction()->GetPath("CenterSetting", strFilePath);
-	 CSimpleStringA strFileName;
-	 ExtractSiteFromFileName(strFilePath, strFileName, m_strCurSiteExtName);
+	 CSimpleStringA strNoUsed;
+	 TryExtractSiteFromFileName(strFilePath, strNoUsed, m_strCurSiteExtName);
 
 	 // 缓存当前RVCWeb版本
 	 char szVersion[64] = {};
-	 ::GetPrivateProfileStringA("IEBrowser", "RvcWebVersion", "", szVersion, 64, strFilePath);
+	 inifile_read_str_s("IEBrowser", "RvcWebVersion", "", szVersion, 64, strFilePath);
 	 m_strRvcWebVersion = szVersion;
 
 	 // 立刻同步配置
-	 BeginDownloadCenterSetting();
+	 //BeginDownloadCenterSetting();
+	 pFunc->PostEntityTaskFIFO(new DownloadCenterSettingsTask(this));
 
-	 // 启动轮询定时器
-	 GetFunction()->SetTimer(1, this, 60000);
+	 // 启动轮询定时器 5min
+	 GetFunction()->SetTimer(DOWNLOAD_CENTERSETTINGS_TIMER_ID, this, DOWNLOAD_CENTERSETTINGS_TIMER_INTERVAL);
+ }
+
+
+ void CCenterSettingEntity::OnTimeout(DWORD dwTimerID)
+ {
+	 BeginDownloadCenterSetting();
  }
 
  void CCenterSettingEntity::OnPreClose(EntityCloseCauseEnum eCloseCause,CSmartPointer<ITransactionContext> pTransactionContext)
  {
 	 SecureClientRelease();
-	 GetFunction()->KillTimer(1);
+	 GetFunction()->KillTimer(DOWNLOAD_CENTERSETTINGS_TIMER_ID);
 	 pTransactionContext->SendAnswer(Error_Succeed);
  }
 
@@ -136,9 +122,10 @@ CServerSessionBase *CCenterSettingEntity::OnNewSession(const char* /*pszRemoteEn
 	 return rc;
  }
 
- ErrorCodeEnum CCenterSettingEntity::DownloadCenterSetting(SpReqAnsContext<CenterSettingService_Download_Req, CenterSettingService_Download_Ans>::Pointer sp)
+ ErrorCodeEnum CCenterSettingEntity::DownloadCenterSetting(
+	  SpReqAnsContext<CenterSettingService_Download_Req, CenterSettingService_Download_Ans>::Pointer sp)
  {
-	 if (m_spDownloadCall != NULL)
+	 if (m_spDownloadCall != nullptr)
 	 {
 		 Dbg("last download call not complet");
 		 sp->Answer(Error_Duplication);
@@ -164,11 +151,6 @@ CServerSessionBase *CCenterSettingEntity::OnNewSession(const char* /*pszRemoteEn
 	 return Error_Unexpect;
  }
 
- void CCenterSettingEntity::OnTimeout(DWORD dwTimerID)
- {	 
-	 BeginDownloadCenterSetting();
- }
-
  bool CCenterSettingEntity::ParseIPAddress(const char *str, CSimpleStringA &ip, int &port)
  {
 	 if (str)
@@ -187,7 +169,8 @@ CServerSessionBase *CCenterSettingEntity::OnNewSession(const char* /*pszRemoteEn
 	 return false;
  }
  
- bool CCenterSettingEntity::ExtractSiteFromFileName(const char *pszPath, CSimpleStringA &strFileName, CSimpleStringA &strSite)
+ bool CCenterSettingEntity::TryExtractSiteFromFileName(
+	 const char *pszPath, CSimpleStringA &strFileName, CSimpleStringA &strSite)
  {
 	 const regex re("(CenterSetting\.(.+)\.ini$)");
 

+ 30 - 12
Module/mod_CenterSetting/mod_centersetting.h

@@ -1,21 +1,31 @@
+#ifndef RVC_MOD_CENTERSETTING_H__
+#define RVC_MOD_CENTERSETTING_H__
+
 #pragma once
 
+#include <map>
+#include <string>
+
 #include "CenterSetting_server_g.h"
 using namespace CenterSetting;
-#include "CenterSettingConn.h"
 
-#include <map>
-#include <string>
-using namespace std;
+#include "modVer.h"
+#include "CenterSettingConn.h"
+#include "SpTest.h"
 
 class CCenterSettingEntity : public CEntityBase, public ITimerListener
 {
 public:
-	CCenterSettingEntity() : /*m_dwLastSyncTime(0),*/ m_pConnection(NULL), m_nConnectFailCount(0), m_bUseBackupNow(false){}
+	CCenterSettingEntity() : /*m_dwLastSyncTime(0),*/
+		m_pConnection(nullptr), m_nConnectFailCount(0), m_bUseBackupNow(false){}
 	virtual ~CCenterSettingEntity() {}
 	virtual const char *GetEntityName() const { return "CenterSetting"; }
+	const char* GetEntityVersion() const { return MODULE_VERSION_FULL; }
+
 	virtual bool IsService()const{return true;}
 
+	ON_ENTITYT_TEST()
+
 	virtual void OnStarted();
 	virtual void OnPreClose(EntityCloseCauseEnum eCloseCause,CSmartPointer<ITransactionContext> pTransactionContext);
 	virtual void OnTimeout(DWORD dwTimerID);		
@@ -31,7 +41,7 @@ private:
 	bool SecureClientConnect(bool bUseBackup);
 	void SecureClientRelease();
 	bool ParseIPAddress(const char *str, CSimpleStringA &ip, int &port);
-	bool ExtractSiteFromFileName(const char *pszPath, CSimpleStringA &strFileName, CSimpleStringA &strSite);
+	bool TryExtractSiteFromFileName(const char *pszPath, CSimpleStringA &strFileName, CSimpleStringA &strSite);
 	
 private:
 	struct ConfigFileInfo
@@ -40,14 +50,10 @@ private:
 		CSimpleStringA strFileName;
 		DWORD dwSyncTime;
 	};
-	map<string, ConfigFileInfo> m_SyncFileInfo;
+	std::map<std::string, ConfigFileInfo> m_SyncFileInfo;
 	CSimpleStringA m_strCurSiteExtName;		// 当前场所集中配置扩展名:LAN或DMZ
 	CSimpleStringA m_strRvcWebVersion;		// 当前RVCWeb版本
 
-	//CSimpleStringA m_strSyncFileHash;
-	//CSimpleStringA m_strSyncFileName;
-	//DWORD m_dwLastSyncTime;
-
 	bool m_bUseBackupNow;
 	int m_nConnectFailCount;
 	CCenterSettingConn *m_pConnection;
@@ -56,6 +62,16 @@ private:
 	friend class CCenterSettingConn;
 };
 
+struct DownloadCenterSettingsTask : public ITaskSp
+{
+	DownloadCenterSettingsTask(CCenterSettingEntity* entity) :pEntity(entity) {}
+	void Process()
+	{
+		pEntity->DownloadCenterSetting(nullptr);
+	}
+	CCenterSettingEntity* pEntity;
+};
+
 class CCenterSettingService : public CenterSettingService_ServerSessionBase
 {
 public:
@@ -75,4 +91,6 @@ public:
 
 private:
 	CCenterSettingEntity *m_pEntity;
-};
+};
+
+#endif /*RVC_MOD_CENTERSETTING_H__*/

+ 0 - 113
Module/mod_CenterSetting/mod_centersetting.vcxproj

@@ -1,113 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|Win32">
-      <Configuration>Debug</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|Win32">
-      <Configuration>Release</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <PropertyGroup Label="Globals">
-    <ProjectGuid>{2D4C701E-7E2D-4D72-9AEA-AEFE78DDBBC4}</ProjectGuid>
-    <Keyword>Win32Proj</Keyword>
-    <RootNamespace>mod_centersetting</RootNamespace>
-    <ProjectName>mod_CenterSetting</ProjectName>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-    <ConfigurationType>DynamicLibrary</ConfigurationType>
-    <UseDebugLibraries>true</UseDebugLibraries>
-    <CharacterSet>MultiByte</CharacterSet>
-    <PlatformToolset>Windows7.1SDK</PlatformToolset>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
-    <ConfigurationType>DynamicLibrary</ConfigurationType>
-    <UseDebugLibraries>false</UseDebugLibraries>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-    <CharacterSet>MultiByte</CharacterSet>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-  <ImportGroup Label="ExtensionSettings">
-  </ImportGroup>
-  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />    
-  </ImportGroup>
-  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <PropertyGroup Label="UserMacros" />
-  <Import Project="..\modmake.setting" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <LinkIncremental>true</LinkIncremental>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <LinkIncremental>false</LinkIncremental>
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <ClCompile>
-      <PrecompiledHeader>Use</PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <Optimization>Disabled</Optimization>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;MOD_CENTERSETTING_EXPORTS;ZLIB_WINAPI;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>$(FrameworkHeadRoot)\libtoolkit\;$(FrameworkHeadRoot)\Common;</AdditionalIncludeDirectories>
-    </ClCompile>
-    <Link>
-      <SubSystem>Windows</SubSystem>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <AdditionalLibraryDirectories>$(FrameworkLib)</AdditionalLibraryDirectories>
-      <AdditionalDependencies>$(FrameworkLib)\RVCComm.lib;$(FrameworkLib)\SpBase.lib;$(FrameworkLib)\libtoolkit.lib;%(AdditionalDependencies)</AdditionalDependencies>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <ClCompile>
-    	<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>    
-      <WarningLevel>Level3</WarningLevel>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <Optimization>MaxSpeed</Optimization>
-      <FunctionLevelLinking>true</FunctionLevelLinking>
-      <IntrinsicFunctions>true</IntrinsicFunctions>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;MOD_CENTERSETTING_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>$(FrameworkHeadRoot)\libtoolkit\;$(FrameworkHeadRoot)\Common;</AdditionalIncludeDirectories>
-    </ClCompile>
-    <Link>
-      <SubSystem>Windows</SubSystem>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-      <OptimizeReferences>true</OptimizeReferences>
-      <AdditionalLibraryDirectories>$(FrameworkLib)</AdditionalLibraryDirectories>
-      <AdditionalDependencies>$(FrameworkLib)\RVCComm.lib;$(FrameworkLib)\SpBase.lib;$(FrameworkLib)\libtoolkit.lib;%(AdditionalDependencies)</AdditionalDependencies>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <ClCompile Include="$(FrameworkHeadRoot)\Common\stdafx.cpp">
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
-    </ClCompile>
-    <ClCompile Include="CenterSettingConn.cpp" />
-    <ClCompile Include="mod_centersetting.cpp" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="$(FrameworkHeadRoot)\Common\stdafx.h" />
-    <ClInclude Include="CenterSettingConn.h" />
-    <ClInclude Include="CenterSetting_client_g.h" />
-    <ClInclude Include="CenterSetting_def_g.h" />
-    <ClInclude Include="CenterSetting_server_g.h" />
-    <ClInclude Include="Event.h" />
-    <ClInclude Include="mod_centersetting.h" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="CenterSettingService.xml">
-      <SubType>Designer</SubType>
-    </None>
-  </ItemGroup>
-   <ItemGroup>
-    <ResourceCompile Include="..\..\Version.rc" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-  </ImportGroup>
-</Project>

+ 0 - 54
Module/mod_CenterSetting/mod_centersetting.vcxproj.filters

@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup>
-    <Filter Include="Source Files">
-      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
-      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
-    </Filter>
-    <Filter Include="Header Files">
-      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
-      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
-    </Filter>
-    <Filter Include="Resource Files">
-      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
-      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
-    </Filter>
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="..\..\Framework\Common\stdafx.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="mod_centersetting.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="CenterSettingConn.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="..\..\Framework\Common\stdafx.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="CenterSetting_client_g.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="CenterSetting_def_g.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="CenterSetting_server_g.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Event.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="CenterSettingConn.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="mod_centersetting.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="CenterSettingService.xml" />
-  </ItemGroup>
-</Project>

+ 3 - 0
Module/mod_CenterSetting/test/testCenterSettingEntity.cpp

@@ -0,0 +1,3 @@
+
+#include "mod_centersetting.h"
+

+ 1 - 1
addin/cfg/shell.ini.in

@@ -103,7 +103,7 @@ Hello=BootManager,"World"
 ;VideoWindowInitializeParam=IEBrowser,"hwnd1_remote:(1728,140,1024,768),hwnd2_local(2830,800,320,240)"
 ;LockScreen=TimePolicy,"N"
 ;ActiveTrackingCamera=FaceTracking,"E"
-;EntryPermit=AccessAuthorization,"I"
+EntryPermit=AccessAuthorization,"I"
 ;TerminalStage=HealthManager,"A"
 ;IEUrl=HealthManager,"http://99.8.42.90/RVC.Web/default.aspx http://99.8.42.90/RVC.Web/default2.aspx"
 ;RunState=HealthManager,"O"