我的许多组件将处理来自 C 库的外部缓冲区,我试图避免任何无关的副本。我在输出端口声明中看到 pushPacket 的两个签名,并且都采用向量类型。我搜索了示例,我在提供的组件中找到的唯一一个是在 USRP_UHD 中,其中使用现有缓冲区创建了一个序列,并调用了专门的 pushPacket 实现。这需要作者通过专门的 pushPacket 调用来实现和使用自定义端口。
有没有这样做的标准方法,所以我不必创建一个特殊的端口包装库并为每个组件自定义端口?是否有计划将 pushPacket 的原始数据版本添加到输出端口,如下所示?
给定一个 bulkio::OutLongPort:
void pushPacket(const CORBA::Long* items, size_t nitems, BULIO::PrecisionUTCTime& T, bool EOS, const std::string& streamID);
这个问题是关于 Redhawk 1.9 版的。