#pragma once // 下列 ifdef 块是创建使从 DLL 导出更简单的 // 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 DATABASE_IF_EXPORTS // 符号编译的。在使用此 DLL 的 // 任何其他项目上不应定义此符号。这样,源文件中包含此文件的任何其他项目都会将 // DATABASE_IF_API 函数视为是从 DLL 导入的,而此 DLL 则将用此宏定义的 // 符号视为是被导出的。 #ifndef DATABASE_IF_EXPORTS #ifdef _WIN64 #ifdef _DEBUG #pragma comment(lib, "DataBase_IFX64D.lib") #else #pragma comment(lib, "DataBase_IFX64.lib") #endif #else #ifdef _DEBUG #pragma comment(lib, "DataBase_IFD.lib") #else #pragma comment(lib, "DataBase_IF.lib") #endif #endif #endif #ifdef DATABASE_IF_EXPORTS #define DATABASE_IF_API __declspec(dllexport) #define DATABASE_IF_C_API extern "C" __declspec(dllexport) #else #define DATABASE_IF_API __declspec(dllimport) #define DATABASE_IF_C_API extern "C" __declspec(dllimport) #endif #include "ShareMem_Node.h" typedef struct _CodeCandiHandle{ char szCodeName[16]; PVOID pDBObject; }CODECANDIHANDLE; class DATABASE_IF_API DataBase_IF { PVOID m_pDBObject; //0:justGet,1:update if not exist,2:update //Result. -1:not exist,0:exist and running,1:succeed bool Get_CodeResult(const char *pszCode, INT &Result, INT Set); public: DataBase_IF(void); virtual ~DataBase_IF(void); bool InitDb(); void UnInitDb(); bool DataRequest(ShareMem_Node *pNode); bool RecalcAll(UINT64 StartTime); }; typedef enum _SaveTarget{ SAVEDATA_MEM = 1, SAVEDATA_DISK = 2, SAVEDATA_BOTH = 3, SAVEDATA_MAX }SAVEDATATARGET; typedef enum _DataOpType{ DATAOP_LIVEPROCESS, DATAOP_HISTORYPROCESS, DATAOP_SAVEONLY, DATAOP_MAX }DATAOPTYPE; typedef struct _ProcessParams{ SAVEDATATARGET SaveTarget; DATAOPTYPE DataOp; }PROCESSPARAMS; DATABASE_IF_C_API void DBIF_SetStoreTarget(SAVEDATATARGET target);//mem,disk,both DATABASE_IF_C_API void DBIF_SetOperationType(DATAOPTYPE opType); DATABASE_IF_C_API PROCESSPARAMS* DBIF_GetProcessParams(); DATABASE_IF_C_API void DBIF_GetCurrentUpdate(UINT64 &time); DATABASE_IF_C_API void DBIF_PrevUpdate(UINT64 &time,bool Get);// DATABASE_IF_C_API void DBIF_GetLatestCodeUpdateTime(DWORD Type,UINT64 &time,char *pszCode);//Type 0:Normal,1:Hand,2:L2 DATABASE_IF_C_API void DBIF_GetSpecificLatestCodeUpdateTime(const char *pszCode,DWORD Type, UINT64 &time);//Type 0:Normal,1:Hand,2:L2 DATABASE_IF_C_API void DBIF_ClearAllInfo(); DATABASE_IF_C_API void DBIF_ClearL2Info(); DATABASE_IF_C_API DWORD DBIF_GetL2CodeCount(); DATABASE_IF_C_API bool DBIF_SaveFullData(); DATABASE_IF_C_API bool DBIF_RecalculateCode(const char *pszCode,UINT64 &time); DATABASE_IF_C_API bool DBIF_TestCode(); DATABASE_IF_C_API CODECANDIHANDLE* GetCodeCandidateHandle(CODECANDIHANDLE *pHandle); DATABASE_IF_C_API bool DBIF_PreRecalcAllCode(); DATABASE_IF_C_API bool DBIF_PostRecalcAllCode(); DATABASE_IF_C_API bool DBIF_AlterNew();