下面要介绍的是 WebRTC 中最核心的几个概念。
1、OnMessage 消息机制
对象内部发送消息。这是一个普遍性,通用性的设计,例如 MFC、Android 消息机制都是如此。
在对象内把消息 Post 到主线程,并且把当前对象的句柄放在消息体内,线程队列根据消息里对象句柄来回调对应的 OnMessage 函数
2、sigslot 消息机制
对象之间发送消息。
发送者(发布主题者)生命一个信号量,绑定到接受者(观察者)的函数,当发送者调用一次信号量时,直接会回调观察者的函数。
3、消息进阶传递机制(OnMessage 和 sigsolt 结合)
最底层 sigslot 传递消息到中层后,中层使用 Post 消息传递到本层的OnMessage,在 OnMessage 里使用 sigsolt 再往上层传递消息。
即同层之间用 OnMessage 消息传递,下层向上层传递则使用 sigsolt。
4、线程封装原理
线程create传送的参数是一个 ThreadInit 的类指针,这个指针包含了一个正常的本身的线程类指针Thread,同时也包含了一个 Runnable 指针。
Start(Runnable * runnable),runnable 为空时,启用的是 Thread 的 Run,不为空时,启用的是 Runnable 的 Run
class RunTest : public Runnable
{
public:
virtual void Run(Thread* t){};
private:
Thread thread;
}
RunTest::RunTest ()
{
thread.strart(this);
}
本文摘录于海阔天空的博客,作者: zjg555543,发布时间: 2014-07-09
网友评论