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

来源:互联网 发布:中文移动域名有用吗 编辑:程序博客网 时间:2024/05/16 07:08

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函数就能使用它的功能。
0 0
原创粉丝点击