您的位置:首页 > 编程语言

WebRTC源代码探索之旅——多线程篇(3)

2014-11-28 17:26 190 查看
3 messagehandler



messagehandler.h/messagehandler.cc文件仅仅定义了talk_base::MessageHandler类,和一个模板工具类talk_base::FunctorMessageHandler类。



3.1 talk_base::MessageHandler



talk_base::MessageHandler类的主要功能是定义了消息处理器的基本数据结构,子类在继承了该类之后要重载OnMessage函数,并实现消息响应的逻辑。



3.2 talk_base::FunctorMessageHandler


talk_base::FunctorMessageHandler类的主要功能是将一个函数投递到目标线程执行。该类主要通过functor模板实现(熟悉C++的读者应该不会对它陌生,不熟悉的可以上网查找),而且定义了一个针对返回值类型为void的函数的特化版本(模板的特化和偏特也应该是一个C++程序员掌握的一个知识点,该语法有些难度)。用户不需要创建或者继承talk_base::FunctorMessageHandler类,仅需调用talk_base::Thread::Invoke函数就能使用它的功能。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: