我的许多组件都将处理来自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版有关。