messagehandler
webrtc/base/messagehandler.h/messagehandler.cc 文件僅僅定義了 MessageHandler 類嗽仪,和一個(gè)模板工具類 FunctorMessageHandler 類。
MessageHandler
MessageHandler 類的主要功能是定義了消息處理器的基本數(shù)據(jù)結(jié)構(gòu)柒莉,子類在繼承了該類之后要重載 OnMessage 函數(shù)闻坚,并實(shí)現(xiàn)消息響應(yīng)的邏輯。
FunctorMessageHandler
FunctorMessageHandler 類的主要功能是將一個(gè)函數(shù)投遞到目標(biāo)線程執(zhí)行兢孝。該類主要通過(guò) functor 模板實(shí)現(xiàn)(熟悉 C++ 的讀者應(yīng)該不會(huì)對(duì)它陌生窿凤,不熟悉的可以上網(wǎng)查找),而且定義了一個(gè)針對(duì)返回值類型為 void 的函數(shù)的特化版本(模板的特化和偏特也應(yīng)該是一個(gè) C++ 程序員掌握的一個(gè)知識(shí)點(diǎn)跨蟹,該語(yǔ)法有些難度)雳殊。用戶不需要?jiǎng)?chuàng)建或者繼承 FunctorMessageHandler 類,僅需調(diào)用 Thread::Invoke 函數(shù)就能使用它的功能窗轩。