1/* 2 Unix SMB/CIFS implementation. 3 4 private structures for clustering 5 6 Copyright (C) Andrew Tridgell 2006 7 8 This program is free software; you can redistribute it and/or modify 9 it under the terms of the GNU General Public License as published by 10 the Free Software Foundation; either version 3 of the License, or 11 (at your option) any later version. 12 13 This program is distributed in the hope that it will be useful, 14 but WITHOUT ANY WARRANTY; without even the implied warranty of 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 GNU General Public License for more details. 17 18 You should have received a copy of the GNU General Public License 19 along with this program. If not, see <http://www.gnu.org/licenses/>. 20*/ 21 22#ifndef _CLUSTER_PRIVATE_H_ 23#define _CLUSTER_PRIVATE_H_ 24 25struct cluster_ops { 26 struct server_id (*cluster_id)(struct cluster_ops *ops, uint64_t id, uint32_t id2); 27 const char *(*cluster_id_string)(struct cluster_ops *ops, 28 TALLOC_CTX *, struct server_id ); 29 struct tdb_wrap *(*cluster_tdb_tmp_open)(struct cluster_ops *, 30 TALLOC_CTX *, 31 struct loadparm_context *, 32 const char *, int); 33 void *(*backend_handle)(struct cluster_ops *); 34 NTSTATUS (*message_init)(struct cluster_ops *ops, 35 struct messaging_context *msg, struct server_id server, 36 cluster_message_fn_t handler); 37 NTSTATUS (*message_send)(struct cluster_ops *ops, 38 struct server_id server, DATA_BLOB *data); 39 void *private_data; /* backend state */ 40}; 41 42void cluster_set_ops(struct cluster_ops *new_ops); 43void cluster_local_init(void); 44 45#endif 46