axl_bool vortex_payload_feeder_pause ( VortexPayloadFeeder feeder,
axl_bool  close_transfer 
)

Flags the feeder to be paused/cancelled as soon as possible.

The pause/cancel operation does not happens immediately because the sequencer thread needs to access again to the feeder to check the pause/cancel status.

To pause/cancel, the caller must "own" a reference to the feeder because the default reference is owned by the vortex sequencer. This will avoid race conditions.

Parameters
feederThe feeder to be paused/cancelled
close_transferIn the case the feeder is paused/cancelled it may be required to send an empty frame to close the series of frames that may be sent. The idea is that pausing current transfer leaves the channel in such state that a frame with more flag is active so it is required at least another frame with the same msgno and more flag set to false (.) to complete this particular transfer. This is achieved by setting close_transfer = axl_true. In the other hand, if close_transfer = axl_false, the caller will block the channel until this feeder is resumed (because having an pending transfer makes not possible other transfers). If you don't know how to proceed, in general is a good idea to close_transfer = axl_true so your channel is available for other transfer.
Returns
The function returns axl_true if the feeder was flagged to be paused/cancelled. Otherwise axl_false is returned. The function also returns axl_false in the case NULL is received.

How do I resume a transfer?

To resume a transfer just call again to transfer the feeder as usual (for example vortex_channel_send_msg_from_feeder). Because the feeder object holds its internal state, the transfer will continue at the place it was suspended.