#ifndef __SOURCE4_WREPL_SERVER_WREPL_SERVER_PROTO_H__
#define __SOURCE4_WREPL_SERVER_WREPL_SERVER_PROTO_H__

#undef _PRINTF_ATTRIBUTE
#define _PRINTF_ATTRIBUTE(a1, a2) PRINTF_ATTRIBUTE(a1, a2)
/* This file was automatically generated by mkproto.pl. DO NOT EDIT */

/* this file contains prototypes for functions that are private 
 * to this subsystem or library. These functions should not be 
 * used outside this particular subsystem! */


/* The following definitions come from ../../source4/wrepl_server/wrepl_server.c  */

struct wreplsrv_partner *wreplsrv_find_partner(struct wreplsrv_service *service, const char *peer_addr);
NTSTATUS wreplsrv_load_partners(struct wreplsrv_service *service);
NTSTATUS wreplsrv_fill_wrepl_table(struct wreplsrv_service *service,
				   TALLOC_CTX *mem_ctx,
				   struct wrepl_table *table_out,
				   const char *initiator,
				   bool full_table);
struct wreplsrv_owner *wreplsrv_find_owner(struct wreplsrv_service *service,
					   struct wreplsrv_owner *table,
					   const char *wins_owner);
NTSTATUS wreplsrv_add_table(struct wreplsrv_service *service,
			    TALLOC_CTX *mem_ctx, struct wreplsrv_owner **_table,
			    const char *wins_owner, uint64_t version);
NTSTATUS server_service_wrepl_init(TALLOC_CTX *ctx);

/* The following definitions come from ../../source4/wrepl_server/wrepl_in_connection.c  */

void wreplsrv_terminate_in_connection(struct wreplsrv_in_connection *wreplconn, const char *reason);
NTSTATUS wreplsrv_in_connection_merge(struct wreplsrv_partner *partner,
				      uint32_t peer_assoc_ctx,
				      struct tstream_context **stream,
				      struct wreplsrv_in_connection **_wrepl_in,
				      void* process_context);
NTSTATUS wreplsrv_setup_sockets(struct wreplsrv_service *service, struct loadparm_context *lp_ctx);

/* The following definitions come from ../../source4/wrepl_server/wrepl_in_call.c  */

NTSTATUS wreplsrv_in_call(struct wreplsrv_in_call *call);

/* The following definitions come from ../../source4/wrepl_server/wrepl_apply_records.c  */

NTSTATUS wreplsrv_apply_records(struct wreplsrv_partner *partner,
				struct wrepl_wins_owner *owner,
				uint32_t num_names, struct wrepl_name *names);

/* The following definitions come from ../../source4/wrepl_server/wrepl_periodic.c  */

NTSTATUS wreplsrv_periodic_schedule(struct wreplsrv_service *service, uint32_t next_interval);
NTSTATUS wreplsrv_setup_periodic(struct wreplsrv_service *service);

/* The following definitions come from ../../source4/wrepl_server/wrepl_scavenging.c  */

const char *wreplsrv_owner_filter(struct wreplsrv_service *service,
				  TALLOC_CTX *mem_ctx,
				  const char *wins_owner);
NTSTATUS wreplsrv_scavenging_run(struct wreplsrv_service *service);

/* The following definitions come from ../../source4/wrepl_server/wrepl_out_pull.c  */

void wreplsrv_out_partner_pull(struct wreplsrv_partner *partner, struct wrepl_table *inform_in);
NTSTATUS wreplsrv_out_pull_run(struct wreplsrv_service *service);

/* The following definitions come from ../../source4/wrepl_server/wrepl_out_push.c  */

NTSTATUS wreplsrv_out_push_run(struct wreplsrv_service *service);

/* The following definitions come from ../../source4/wrepl_server/wrepl_out_helpers.c  */

struct composite_context *wreplsrv_pull_cycle_send(TALLOC_CTX *mem_ctx, struct wreplsrv_pull_cycle_io *io);
NTSTATUS wreplsrv_pull_cycle_recv(struct composite_context *c);
struct composite_context *wreplsrv_push_notify_send(TALLOC_CTX *mem_ctx, struct wreplsrv_push_notify_io *io);
NTSTATUS wreplsrv_push_notify_recv(struct composite_context *c);
#undef _PRINTF_ATTRIBUTE
#define _PRINTF_ATTRIBUTE(a1, a2)

#endif /* __SOURCE4_WREPL_SERVER_WREPL_SERVER_PROTO_H__ */

