rados_notify2

Sychronously notify watchers of an object

This blocks until all watchers of the object have received and reacted to the notify, or a timeout is reached.

The reply buffer is optional. If specified, the client will get back an encoded buffer that includes the ids of the clients that acknowledged the notify as well as their notify ack payloads (if any). Clients that timed out are not included. Even clients that do not include a notify ack payload are included in the list but have a 0-length payload associated with them. The format:

le32 num_acks { le64 gid global id for the client (for client.1234 that's 1234) le64 cookie cookie for the client le32 buflen length of reply message buffer u8 * buflen payload } * num_acks le32 num_timeouts { le64 gid global id for the client le64 cookie cookie for the client } * num_timeouts

Note: There may be multiple instances of the same gid if there are multiple watchers registered via the same client.

Note: The buffer must be released with rados_buffer_free() when the user is done with it.

Note: Since the result buffer includes clients that time out, it will be set even when rados_notify() returns an error code (like -ETIMEDOUT).

@param io the pool the object is in @param completion what to do when operation has been attempted @param o the name of the object @param buf data to send to watchers @param buf_len length of buf in bytes @param timeout_ms notify timeout (in ms) @param reply_buffer pointer to reply buffer pointer (free with rados_buffer_free) @param reply_buffer_len pointer to size of reply buffer @returns 0 on success, negative error code on failure

extern (C)
int
rados_notify2
(,
const(char)* o
,
const(char)* buf
,,,,)

Meta