SafeQueue读写示例

#define PROC_MAX 100
#define PROC_MIN 0
enum ErrorCode
{
	ERR_OK = 0,
	ERR_INVALID_DATA,
};
class Message
{
public:
	Message() {}
	~Message() {}
	int proc;
	int content;
}; 

typedef int32_t(*MessageHandler)(Message*);//状态模式,函数指针 每个消息对应不同的处理函数 不使用switch case模式 状态模式更好理解 方便扩展
typedef SafeQueue<Message*> MessageList;   //safequeue见上一篇文章
MessageList m_messages;
MessageHandler m_messageHandlers[PROC_MAX];

void setMessageHandler(int32_t proc, MessageHandler handler)
{
	if (proc<PROC_MIN || proc>PROC_MAX)
		return;
	m_messageHandlers[proc] = handler;
}

int32_t onGetMessage0(Message* msg)
{
	int id = msg->proc;
	cout << "deal msg 0\n";
	/*
	消息处理部分 具体处理每种不同的消息
	*/
	if (false)
	{
		return ERR_INVALID_DATA;
	}
	return ERR_OK;
}
int32_t onGetMessage1(Message* msg)
{
	int id = msg->proc;
	cout << "deal msg 1\n";
	/*
	消息处理部分 具体处理每种不同的消息
	*/
	return ERR_OK;
}
int32_t onGetMessage2(Message* msg)
{
	int id = msg->proc;
	cout << "d
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值