Constructs a completion to use with asynchronous operations
The complete and safe callbacks correspond to operations being
acked and committed, respectively. The callbacks are called in
order of receipt, so the safe callback may be triggered before the
complete callback, and vice versa. This is affected by journalling
on the OSDs.
TODO: more complete documentation of this elsewhere (in the RADOS docs?)
@note Read operations only get a complete callback.
@note BUG: this should check for ENOMEM instead of throwing an exception
@param cb_arg application-defined data passed to the callback functions
@param cb_complete the function to be called when the operation is
in memory on all relpicas
@param cb_safe the function to be called when the operation is on
stable storage on all replicas
@param pc where to store the completion
@returns 0
Constructs a completion to use with asynchronous operations
The complete and safe callbacks correspond to operations being acked and committed, respectively. The callbacks are called in order of receipt, so the safe callback may be triggered before the complete callback, and vice versa. This is affected by journalling on the OSDs.
TODO: more complete documentation of this elsewhere (in the RADOS docs?)
@note Read operations only get a complete callback. @note BUG: this should check for ENOMEM instead of throwing an exception
@param cb_arg application-defined data passed to the callback functions @param cb_complete the function to be called when the operation is in memory on all relpicas @param cb_safe the function to be called when the operation is on stable storage on all replicas @param pc where to store the completion @returns 0