本文待分析的文件:
- cyber\node\writer_test.cc
- cyber\node\writer.h
通过writer_test.cc学习write是怎么用的以学习它是怎么实现的。
概述
我们先看看这个类的功能是什么。
通过注释可以知道:这个类只有一个功能,那就是往由RoleAttributes中指定的通道写数据。
数据成员
数据类型 | 成员变量 | 作用 |
---|---|---|
TransmitterPtr | transmitter_; |
|
ChangeConnection | change_conn_; | |
service_discovery::ChannelManagerPtr | channel_manager_ | |
proto::RoleAttributes | role_attr_; |
|
mutable std::mutex | lock_; |
|
bool | init_; |
|
重要函数
构造函数
仅仅是初始化了一些成员变量
Init()
由cyber\node\writer_test.cc中中可以知道,当构造了Write之后,第一件事是要调用Init()进行一些初始化工作
我们来看下它是什么东西:
由声明可以知道,这是一个基类定义的虚函数。如果初始化成功就返回true;否则返回false。
然后我们来研究下它是怎么实现的:
- 首先,它使用自己的role_attr_生成了一个转发器用来转发消息