dsync-ibc.h revision 707f172cd4e4c91af86ff5bd82a60a873dec6f70
a85473f7c11c8734bdee9c2cbe4b767f144a18aaTimo Sirainen/* dsync inter-brain communicator */
a85473f7c11c8734bdee9c2cbe4b767f144a18aaTimo Sirainen /* send queue is full, stop sending more */
a85473f7c11c8734bdee9c2cbe4b767f144a18aaTimo Sirainen /* try again / error (the error handling delayed until io callback) */
a85473f7c11c8734bdee9c2cbe4b767f144a18aaTimo Sirainen /* if non-NULL, sync only this namespace */
707f172cd4e4c91af86ff5bd82a60a873dec6f70Timo Sirainen /* if non-NULL, sync only this mailbox name */
a85473f7c11c8734bdee9c2cbe4b767f144a18aaTimo Sirainenvoid dsync_ibc_init_pipe(struct dsync_ibc **ibc1_r,
5332128f69ad688cc024897c2a92f6b37ef8d05cTimo Sirainendsync_ibc_init_stream(struct istream *input, struct ostream *output,
5332128f69ad688cc024897c2a92f6b37ef8d05cTimo Sirainen const char *name, const char *temp_path_prefix);
a85473f7c11c8734bdee9c2cbe4b767f144a18aaTimo Sirainen/* I/O callback is called whenever new data is available. It's also called on
a85473f7c11c8734bdee9c2cbe4b767f144a18aaTimo Sirainen errors, so check first the error status. */
a85473f7c11c8734bdee9c2cbe4b767f144a18aaTimo Sirainenvoid dsync_ibc_set_io_callback(struct dsync_ibc *ibc,
a85473f7c11c8734bdee9c2cbe4b767f144a18aaTimo Sirainenvoid dsync_ibc_send_handshake(struct dsync_ibc *ibc,
a85473f7c11c8734bdee9c2cbe4b767f144a18aaTimo Sirainendsync_ibc_recv_handshake(struct dsync_ibc *ibc,
a85473f7c11c8734bdee9c2cbe4b767f144a18aaTimo Sirainenenum dsync_ibc_send_ret ATTR_NOWARN_UNUSED_RESULT
a85473f7c11c8734bdee9c2cbe4b767f144a18aaTimo Sirainendsync_ibc_send_end_of_list(struct dsync_ibc *ibc);
a85473f7c11c8734bdee9c2cbe4b767f144a18aaTimo Sirainenenum dsync_ibc_send_ret ATTR_NOWARN_UNUSED_RESULT
a85473f7c11c8734bdee9c2cbe4b767f144a18aaTimo Sirainendsync_ibc_send_mailbox_state(struct dsync_ibc *ibc,
a85473f7c11c8734bdee9c2cbe4b767f144a18aaTimo Sirainendsync_ibc_recv_mailbox_state(struct dsync_ibc *ibc,
a85473f7c11c8734bdee9c2cbe4b767f144a18aaTimo Sirainenenum dsync_ibc_send_ret ATTR_NOWARN_UNUSED_RESULT
a85473f7c11c8734bdee9c2cbe4b767f144a18aaTimo Sirainendsync_ibc_send_mailbox_tree_node(struct dsync_ibc *ibc,
a85473f7c11c8734bdee9c2cbe4b767f144a18aaTimo Sirainen const char *const *name,
a85473f7c11c8734bdee9c2cbe4b767f144a18aaTimo Sirainendsync_ibc_recv_mailbox_tree_node(struct dsync_ibc *ibc,
a85473f7c11c8734bdee9c2cbe4b767f144a18aaTimo Sirainen const char *const **name_r,
a85473f7c11c8734bdee9c2cbe4b767f144a18aaTimo Sirainenenum dsync_ibc_send_ret ATTR_NOWARN_UNUSED_RESULT
a85473f7c11c8734bdee9c2cbe4b767f144a18aaTimo Sirainendsync_ibc_send_mailbox_deletes(struct dsync_ibc *ibc,
a85473f7c11c8734bdee9c2cbe4b767f144a18aaTimo Sirainendsync_ibc_recv_mailbox_deletes(struct dsync_ibc *ibc,
a85473f7c11c8734bdee9c2cbe4b767f144a18aaTimo Sirainen const struct dsync_mailbox_delete **deletes_r,
a85473f7c11c8734bdee9c2cbe4b767f144a18aaTimo Sirainen unsigned int *count_r, char *hierarchy_sep_r);
a85473f7c11c8734bdee9c2cbe4b767f144a18aaTimo Sirainenenum dsync_ibc_send_ret ATTR_NOWARN_UNUSED_RESULT
a85473f7c11c8734bdee9c2cbe4b767f144a18aaTimo Sirainenenum dsync_ibc_send_ret ATTR_NOWARN_UNUSED_RESULT
a85473f7c11c8734bdee9c2cbe4b767f144a18aaTimo Sirainenenum dsync_ibc_send_ret ATTR_NOWARN_UNUSED_RESULT
a85473f7c11c8734bdee9c2cbe4b767f144a18aaTimo Sirainendsync_ibc_send_mail_request(struct dsync_ibc *ibc,
a85473f7c11c8734bdee9c2cbe4b767f144a18aaTimo Sirainendsync_ibc_recv_mail_request(struct dsync_ibc *ibc,
a85473f7c11c8734bdee9c2cbe4b767f144a18aaTimo Sirainenenum dsync_ibc_send_ret ATTR_NOWARN_UNUSED_RESULT
a85473f7c11c8734bdee9c2cbe4b767f144a18aaTimo Sirainendsync_ibc_send_mail(struct dsync_ibc *ibc, const struct dsync_mail *mail);
a85473f7c11c8734bdee9c2cbe4b767f144a18aaTimo Sirainendsync_ibc_recv_mail(struct dsync_ibc *ibc, struct dsync_mail **mail_r);
a85473f7c11c8734bdee9c2cbe4b767f144a18aaTimo Sirainenbool dsync_ibc_has_failed(struct dsync_ibc *ibc);
a85473f7c11c8734bdee9c2cbe4b767f144a18aaTimo Sirainenbool dsync_ibc_is_send_queue_full(struct dsync_ibc *ibc);