RedHawk generates code for each port but puts all the In_i and Out_i classes into a single pair of files: port_impl.h, port_impl.cpp. Why are these generated classes put into a single file? For most components one must add code into the port method calls to implement the functionality of the component. One can write the functionality into functions in additional source files and simply add calls to the new functions in the port_impl methods to minimize the changes to the generated files, but one must still re-add these calls to each method if one adds additional ports and the port_impl must be regenerated. If each port's generated code were put into separate files, then adding a port would simply generate an additional file and not overwrite an existing file. This would make adding ports much easier.
A better solution is to simply create child classes of the ports which you would like to extend in their own files. Then in the component code, you can delete the pointers to the ports in the constructor (removing the old implementation) and set them to be pointers to your new, extended implementation. I believe the USRP_UHD code has an example of this method.
In more recent versions of REDHAWK, this is the only way to add functionality like this, as all BULKIO port implementations have been moved into the framework and are no longer generated.