123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- #pragma once
- #include "FunctionErrorCode.h"
- #include "FunctionDataTypeCommon.h"
- #include "AdvancedFunctionDataElement.h"
- #ifdef _WIN64
- #ifdef _DEBUG
- #pragma comment(lib, "ECOMFunctionAPIX64D.lib")
- #else
- #pragma comment(lib, "ECOMFunctionAPIX64.lib")
- #endif
- #else
- #ifdef _DEBUG
- #pragma comment(lib, "ECOMFunctionAPID.lib")
- #else
- #pragma comment(lib, "ECOMFunctionAPI.lib")
- #endif
- #endif
- #ifndef _SHAREMEMCLIENT_CLASSINDLL
- #ifdef _WIN64
- #ifdef _DEBUG
- #pragma comment(lib, "ShareMemAPIX64D.lib")
- #else
- #pragma comment(lib, "ShareMemAPIX64.lib")
- #endif
- #else
- #ifdef _DEBUG
- #pragma comment(lib, "ShareMemAPID.lib")
- #else
- #pragma comment(lib, "ShareMemAPI.lib")
- #endif
- #endif
- #endif
- #ifdef _SHAREMEMCLIENT_CLASSINDLL
- #define SHAREMEMCLIENTDLL_CLASS_DECL _declspec(dllexport)
- #else
- #define SHAREMEMCLIENTDLL_CLASS_DECL _declspec(dllimport)
- #endif
- #define INVALID_SHAREMEM_ID (unsigned __int64)~0
- class CShareMemInfo;
- class CBaseFunctionDataElement;
- class SHAREMEMCLIENTDLL_CLASS_DECL CShareMemClient
- {
- public:
- CShareMemClient();
- virtual ~CShareMemClient();
- unsigned short GetUserId(){ return m_dwUserId; };
- CBaseFunctionDataElement* CreateDataElement(FUNCTION_DATATYPE eDataType, const wstring& strName = L"");
- void ReleaseDataElement(CBaseFunctionDataElement* pDataElement);
- int Register();
- int UnRegister();
- int ReadShareMem(unsigned __int64 dwShareMemId, CBaseFunctionDataElement** vecDataElement, unsigned int nBufferCount, unsigned int& nElementCount);
- int WriteShareMem(CBaseFunctionDataElement** vecDataElement, unsigned int nElementCount, unsigned __int64& dwShareMemId);
-
- int ReleaseShareMem(unsigned int dwShareMemId);
- int ReleaseAllShareMem();
-
- private:
- static void EncodeId(unsigned short wUserId, unsigned int nShareMemId, unsigned short wContentId, unsigned __int64& dwShareMemId);
- static void DecodeId(unsigned __int64 dwShareMemId, unsigned short& wUserId, unsigned int& nShareMemId, unsigned short& wContentId);
- unsigned short m_dwUserId;
- CShareMemInfo* m_ShareMemInfo;
- unsigned int m_dwShareMemCounter;
- CRITICAL_SECTION m_ShareMemCounterCritical;
- unsigned short m_dwContentCounter;
- CRITICAL_SECTION m_ContentCounterCritical;
- };
|