首页 > 其他 > 详细

关于function的一种常用用法

时间:2014-12-20 18:08:39      阅读:265      评论:0      收藏:0      [点我收藏+]
关于function的一种常用用法
void Share::InitAcrossManager()
{
    GsMgrEvent gsMgrEvents;//保存function的结构体
    gsMgrEvents.fnSendData2Client = [this](int nChannelId, void* pData, int nLen)//lambda绑定,当然也可以用std::bind进行绑定
    {
        SendCmd2C(nChannelId, s2c_prop_opt, pData, nLen);
    };
    gsMgrEvents.fnSendData2MsByMapId = [this](int nMapId, void* pData, int nLen)
    {
        SendCmd2MsByMapId(nMapId, gs2ms_prop_mgr, pData, nLen);
    };
    gsMgrEvents.fnSendData2Ms = [this](int nChannelId, void* pData, int nLen)
    {
        SendCmd2MsByChannelId(nChannelId, gs2ms_prop_mgr, pData, nLen);
    };
    m_spPropManager->Init(gsMgrEvents);
}
到时PropManager模块就可以直接通过m_cEvents中的function调用share中的函数,就是一个回调过程,工作之前很少接触这种,所以每次都感到很别扭
我认识的回调都是两个线程,当另外一个线程完成某项工作之后进行回调,
NGP那块也是通过传递NGP Context进去的
我刚才在想通过接口或者函数也能调用另一个模块
但有时还必须要用function,因为function可以绑定任意一个函数公有,私有,不管哪个类的,只要是一个进程的都可以,跟接口函数没关系,这样更加灵活,而且模块更加独立,但function需要事先绑定好

 

关于function的一种常用用法

原文:http://www.cnblogs.com/zzyoucan/p/4175634.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!