fast/CCEXPipe/CCEXPipeLib.h
2025-01-20 10:30:01 +08:00

108 lines
2.5 KiB
C++
Raw 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.

#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