108 lines
2.5 KiB
C++
108 lines
2.5 KiB
C++
#ifndef _CCEX_PIPE_LIB_H__
|
||
#define _CCEX_PIPE_LIB_H__
|
||
|
||
|
||
#ifdef CEX_PIPE_DLL
|
||
|
||
#define CEX_PIPE_API __declspec(dllexport)
|
||
|
||
#else
|
||
|
||
#define CEX_PIPE_API __declspec(dllimport)
|
||
|
||
#ifdef _DEBUG
|
||
#pragma comment(lib, "CCEXPipeD.lib")
|
||
#else
|
||
#pragma comment(lib, "CCEXPipe.lib")
|
||
#endif
|
||
|
||
#endif
|
||
|
||
typedef void(*CEXPipeCallFunType)(void*, int lMsgId, WPARAM,LPARAM);
|
||
|
||
|
||
//网络回调消息
|
||
#define CEXPIPE_NEW_CLIENT (1)
|
||
#define CEXPIPE_DIS_CLIENT (2)
|
||
#define CEXPIPE_NEW_DATA (3)
|
||
#define CEXPIPE_CONNECT_OK (4)
|
||
|
||
#define MAX_PIP_BUF (1024*1024)
|
||
|
||
//////////////////////////////////////////////////////////////////////////
|
||
//具体业务通讯相关定义,框架和模块通讯共同使用,放在这个通讯库中方便同步更新。
|
||
//msgid字段:WCS发送给WMS数据时,按url不同暂定两种类型
|
||
typedef enum
|
||
{
|
||
WCS_2_WMS_ABNORMAL = 1000,
|
||
WCS_2_WMS_DATA = 1001,
|
||
|
||
MAIN_2_MODULE_WMS = 2000, //主框架转发WMS消息给子模块
|
||
MAIN_2_MODULE_SHOWWINDOW = 2001 //主框架通知模块显示窗口
|
||
}WCS_2_WMS_TYPE;
|
||
//////////////////////////////////////////////////////////////////////////
|
||
|
||
typedef struct PIPE_DATA_STRUCT
|
||
{
|
||
int lMsgId;
|
||
int lDataLen;
|
||
char acData[4];//数据--保证四字节对齐,实际数据长度动态变化
|
||
|
||
}*pPIPE_DATA_STRUCT;
|
||
|
||
class CEX_PIPE_API CCEXPipeServerBase
|
||
{
|
||
public:
|
||
static CCEXPipeServerBase* CreateObj();
|
||
|
||
CCEXPipeServerBase()
|
||
{
|
||
m_pCallBackObj = NULL;
|
||
m_pCallBackFun = NULL;
|
||
};
|
||
|
||
virtual ~CCEXPipeServerBase(){};
|
||
//注册管道消息回调函数
|
||
void RegisterCall(CEXPipeCallFunType pCallBack, void* pObj){m_pCallBackFun = pCallBack; m_pCallBackObj = pObj;}
|
||
//发送数据到管道
|
||
virtual BOOL SendeData(const char* pData, int lLen) = 0;
|
||
virtual BOOL SendeMsg(int lMsgId, const char* pData, int lLen) = 0;
|
||
virtual BOOL Start(const char* pPipeName) = 0;
|
||
virtual BOOL Stop() = 0;
|
||
virtual BOOL IsAcitve() = 0;
|
||
virtual BOOL IsConnect() = 0;
|
||
protected:
|
||
|
||
void* m_pCallBackObj;
|
||
CEXPipeCallFunType m_pCallBackFun;
|
||
};
|
||
|
||
|
||
class CEX_PIPE_API CCEXPipeClientBase
|
||
{
|
||
public:
|
||
static CCEXPipeClientBase* CreateObj();
|
||
|
||
CCEXPipeClientBase()
|
||
{
|
||
m_pCallBackObj = NULL;
|
||
m_pCallBackFun = NULL;
|
||
};
|
||
|
||
virtual ~CCEXPipeClientBase(){};
|
||
//注册管道消息回调函数
|
||
void RegisterCall(CEXPipeCallFunType pCallBack, void* pObj){m_pCallBackFun = pCallBack; m_pCallBackObj = pObj;}
|
||
//发送数据到管道
|
||
virtual BOOL SendeData(const char* pData, int lLen) = 0;
|
||
virtual BOOL SendeMsg(int lMsgId, const char* pData, int lLen) = 0;
|
||
virtual BOOL Connect(const char* pPipeName) = 0;
|
||
virtual BOOL DisConnect() = 0;
|
||
|
||
protected:
|
||
void* m_pCallBackObj;
|
||
CEXPipeCallFunType m_pCallBackFun;
|
||
};
|
||
|
||
|
||
|
||
#endif |