为什么不将生成的端口代码放入单独的文件中

时间:2015-10-01 21:12:43

标签: redhawksdr

RedHawk为每个端口生成代码,但将所有In_i和Out_i类放入一对文件:port_impl.h,port_impl.cpp。为什么这些生成的类放在一个文件中?对于大多数组件,必须将代码添加到端口方法调用中以实现组件的功能。可以将功能写入其他源文件中的函数,只需在port_impl方法中添加对新函数的调用,以最大限度地减少对生成文件的更改,但如果添加其他端口,则必须重新添加这些调用。必须重新生成port_impl。如果将每个端口生成的代码放入单独的文件中,那么添加端口只会生成一个附加文件而不会覆盖现有文件。这将使添加端口变得更加容易。

1 个答案:

答案 0 :(得分:1)

更好的解决方案是简单地创建您希望在自己的文件中扩展的端口的子类。然后在组件代码中,您可以删除构造函数中指向端口的指针(删除旧实现)并将它们设置为指向新的扩展实现的指针。我相信USRP_UHD代码有一个这种方法的例子。

在更新版本的REDHAWK中,这是添加此类功能的唯一方法,因为所有BULKIO端口实现都已移至框架中,不再生成。