ZBLOG

The application can access and consume the data values received on the DataReader by reading or taking. Reading is done with any of the following member functions: DataReader::read_next_sample() reads the next, non-previously accessed data value...

这段文字描述了如何通过 DataReader 访问和处理接收到的数据值。在使用数据读取器时,有两种主要的操作方式:读取(Reading)获取(Taking)。以下是对这些概念的详细解释:

1. 数据读取

数据读取指的是从 DataReader 中提取可用的数据样本,且不移除它们。

操作方法:

  • DataReader::read_next_sample()

    • 这个函数会读取下一个尚未被访问过的数据值,并将其存储在提供的数据缓冲区中。
  • 其他读取函数

    • DataReader::read():根据特定条件获取一组样本。
    • DataReader::read_instance():获取特定实例的一组样本。
    • DataReader::read_next_instance():获取下一个尚未访问实例的一组样本。

2. 数据获取

数据获取类似于数据读取,但与之不同的是,这些操作会将返回的样本从 DataReader 中移除。

操作方法:

  • DataReader::take_next_sample()

    • 此函数会读取下一个非以前访问过的数据值,并将其存储在提供的缓冲区中,与 read_next_sample() 不同的是,它同时会将该样本从 DataReader 中删除。
  • 其他获取函数

    • DataReader::take():根据特定条件获取并移除一组样本。
    • DataReader::take_instance():获取并移除特定实例的一组样本。
    • DataReader::take_next_instance():获取并移除下一个尚未访问实例的一组样本。

3. 无数据情况

如果在 DataReader 中没有匹配请求条件的数据,那么所有相关操作都会返回 NO_DATA,并且输出参数将保持不变。这意味着调用者可以检测到没有可用数据,而不需要担心旧有数据或状态被改变。

4. 附加信息

除了实际的数据值,每次执行上述操作还会返回额外的信息,即 SampleInfo 实例。这些信息有助于解释所返回的数据,比如:

  • 数据来源的 DataWriter
  • 发布的时间戳等元信息

总结

整体来看,以上内容阐述了如何有效地使用 DataReader 来访问和处理实时通信中的数据。通过理解这两种基本的方法(读取和获取),开发者可以选择合适的策略来满足他们应用程序中的特定需求。此外,附带的元信息也为后续处理、调试及优化提供了重要线索,使得整个系统更加健壮和灵活。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=21108

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?