A CQ object is required when creating QP. However, since we have 2 variants of CQ (ibv_cq, ibv_cq_ex), it would be more appropriate to have a trait of CQ to interact with other components rather than specifying a concrete type.
Things to discuss:
- The name of the trait:
CompletionQueue has been taken by the ibv_cq wrappper. Maybe we can rename the original CompletionQueue and name the trait CompletionQueue, or maybe we can pick a new name for the trait instead?
- Methods that should be supported by this trait. Maybe a method returning
NonNull<ibv_cq> is necessary.
The same discussion applys for QP as well.
A CQ object is required when creating QP. However, since we have 2 variants of CQ (
ibv_cq,ibv_cq_ex), it would be more appropriate to have a trait of CQ to interact with other components rather than specifying a concrete type.Things to discuss:
CompletionQueuehas been taken by theibv_cqwrappper. Maybe we can rename the originalCompletionQueueand name the traitCompletionQueue, or maybe we can pick a new name for the trait instead?NonNull<ibv_cq>is necessary.The same discussion applys for QP as well.