代码片段--参数相同函数调用机制

 

1,定义函数指针

 typedef void (CAppProtocol::*PParse)(const tagClientInfo &clientinfo);
 typedef void (CAppProtocol::*PResult)(int result, std::vector<tagProperty> TaskProperty);

 

2,定义map变量

std::map<CString, PParse> _mapParseProtocol;
std::map<int, PResult> _mapTaskResult;

 

3,添加具体处理函数

void CAppProtocol::CR_PhoneLogin(int result, std::vector<tagProperty> TaskProperty)
{

......

}

 

void CAppProtocol::CR_PhoneLogout(int result, std::vector<tagProperty> TaskProperty)
{

........

}

 

4,为map变量赋值

 _mapParseProtocol.insert(std::pair<CString,PParse>(Pr_PhoneLogin, &CAppProtocol::CC_PhoneLogin));
 _mapParseProtocol.insert(std::pair<CString,PParse>(Pr_PhoneLogout, &CAppProtocol::CC_PhoneLogout));

 

5,定义解析函数,只需要传递命令名称和函数参数

void  CAppProtocol::ExeParse(CString command, const tagClientInfo &clientinfo)
{


 if (_mapParseProtocol.find(command) != _mapParseProtocol.end())
 {


  PParse pFunc = _mapParseProtocol[command];
  return (this->*pFunc)(nodeContent, clientinfo);
 }


}

 

void CAppProtocol::TaskResult(int taskName, int result, std::vector<tagProperty> TaskProperty)
{


 if (_mapTaskResult.find(taskName) != _mapTaskResult.end())
 {
  PResult pFunc = _mapTaskResult[taskName];
  return (this->*pFunc)(result, TaskProperty);
 }


}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值