dsync-brain-private.h revision f8aa3440094a546a35821f93370541a2f2875d47
#ifndef DSYNC_BRAIN_PRIVATE_H
#define DSYNC_BRAIN_PRIVATE_H
#include "dsync-data.h"
#include "dsync-brain.h"
enum dsync_state {
};
struct dsync_brain_mailbox_list {
struct dsync_brain *brain;
struct dsync_worker *worker;
struct dsync_worker_mailbox_iter *iter;
};
struct dsync_brain_subs_list {
struct dsync_brain *brain;
struct dsync_worker *worker;
struct dsync_worker_subs_iter *iter;
};
struct dsync_brain_guid_instance {
struct dsync_brain_guid_instance *next;
/* mailbox index in dsync_brain_mailbox_list.mailboxes */
unsigned int mailbox_idx:31;
unsigned int failed:1;
};
struct dsync_brain_msg_iter {
struct dsync_brain_mailbox_sync *sync;
struct dsync_worker *worker;
struct dsync_worker_msg_iter *iter;
struct dsync_message msg;
unsigned int mailbox_idx;
/* char *guid -> struct dsync_brain_guid_instance* */
struct hash_table *guid_hash;
unsigned int next_new_msg, next_conflict;
/* copy operations that failed. indexes point to new_msgs array */
unsigned int copy_results_left;
unsigned int save_results_left;
unsigned int msgs_sent:1;
unsigned int adding_msgs:1;
};
struct dsync_brain_uid_conflict {
};
struct dsync_brain_new_msg {
unsigned int mailbox_idx:30;
if copying fails, it sets this back to FALSE and updates
iter->next_new_msg. */
unsigned int saved:1;
struct dsync_message *msg;
};
struct dsync_brain_mailbox {
struct dsync_mailbox box;
struct dsync_mailbox *src;
struct dsync_mailbox *dest;
};
struct dsync_brain_mailbox_sync {
struct dsync_brain *brain;
unsigned int wanted_mailbox_idx;
struct dsync_worker *src_worker;
struct dsync_worker *dest_worker;
struct dsync_brain_msg_iter *src_msg_iter;
struct dsync_brain_msg_iter *dest_msg_iter;
unsigned int uid_conflict:1;
unsigned int skip_mailbox:1;
};
struct dsync_brain {
struct dsync_worker *src_worker;
struct dsync_worker *dest_worker;
char *mailbox;
enum dsync_brain_flags flags;
enum dsync_state state;
struct dsync_brain_mailbox_list *src_mailbox_list;
struct dsync_brain_subs_list *src_subs_list;
struct dsync_brain_subs_list *dest_subs_list;
struct dsync_brain_mailbox_sync *mailbox_sync;
unsigned int failed:1;
unsigned int verbose:1;
unsigned int backup:1;
unsigned int unexpected_changes:1;
unsigned int stdout_tty:1;
};
struct dsync_brain_mailbox_sync *
unsigned int mailbox_idx,
const struct dsync_message *msg);
#endif