Allows to create a new VortexChannelPool providing a function that is called to create channel rather allowing the pool to call vortex_channel_new directly.
This function works the same way as vortex_channel_pool_new but, it allows to provide the creation function to be used to initiate channels inside the pool.
Some BEEP profiles are simple and have no especial initial handshake to create the channel properly. In that case you can use safely vortex_channel_pool_new. However, other BEEP profiles includes an initial negotiation that requires more steps to be taken in addition to vortex_channel_new.
This is the case of the XML-RPC profile which once the channel is created, it requires to change the channel into a boot state by exchanging boot resource message and receiving a boot reply.
Because the channel pool has a generic channel creation code, it doesn't have the enough knowledge to create the channel properly, so it delegates that task to the create_channel handler. This handler must return a properly created and ready to use channel so the channel pool can manage it.
|connection ||The session were channels will be created.|
|profile ||The profile the channels will use.|
|init_num ||The number of channels this pool will create at the startup.|
|close ||Handler to manage channel closing.|
|create_channel ||Handler to the channel creation function.|
|create_channel_user_data ||User defined data to be passed to the create channel function for the first creation.|
|close_user_data ||User data to be passed in to close handler.|
|received ||Handler to manage frame reception on channel.|
|received_user_data ||Data to be passed in to received handler.|
|on_channel_pool_created ||A callback to be able to make channel process to be async.|
|user_data ||User data to be passed in to on_channel_created.|
- A newly created VortexChannelPool. The reference returned is already attached to the VortexConnection provided so, it is not required to release it. In the case the on_channel_pool_created handler is provided, the function returns NULL, and the channel pool reference is notified at the handler. Memory deallocation for the reference returned will be produced once the connection associated to it is deallocated.