最近要学习webrtc,暂时先拿signal slot机制进行代码分析。
信号、槽跟连接
静态结构
信号_signal_base跟槽has_slots对象是一个多对多的关系
之间没任何从属关系,信号和槽可分别释放和构造和拷贝
采用连接对象来记录信号的槽连接,信号对象拥有连接对象的生命期
拷贝语法
信号_signal_base拷贝:会拷贝现在槽对象的连接,即槽给连接到新拷贝的信号里
槽has_slots的拷贝:会拷贝与信号的连接,即新的槽对象会连接旧对象的信号
实体关系:
has_slots 采用 m_sender set来记录连接的信号_signal_base
_signal_base 拥有 m_connect_slots 连接列表,来记录与 has_slots 的连接
_connect_base 由 _signal_base管理,主要封装 has_slots 对象和成员函数调用语法
外部接口
该框架实现的槽函数必须继承与has_slots,具有倾入性;
槽只要与信号连接好后,会在析构自动断开连接,如没特殊需要不用手工断开;
动态结构:
信号拷贝和析构
槽拷贝和析构语法