2015-04-14 17:14:25 +03:00
/*
CTDB client code
Copyright ( C ) Amitay Isaacs 2015
This program is free software ; you can redistribute it and / or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation ; either version 3 of the License , or
( at your option ) any later version .
This program is distributed in the hope that it will be useful ,
but WITHOUT ANY WARRANTY ; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
GNU General Public License for more details .
You should have received a copy of the GNU General Public License
along with this program ; if not , see < http : //www.gnu.org/licenses/>.
*/
# ifndef __CTDB_CLIENT_PRIVATE_H__
# define __CTDB_CLIENT_PRIVATE_H__
# include "protocol/protocol.h"
2015-10-14 07:36:55 +03:00
# include "client/client.h"
2015-04-14 17:14:25 +03:00
struct ctdb_db_context {
struct ctdb_db_context * prev , * next ;
uint32_t db_id ;
2017-03-02 09:29:04 +03:00
uint8_t db_flags ;
2015-04-14 17:14:25 +03:00
const char * db_name ;
const char * db_path ;
struct tdb_wrap * ltdb ;
} ;
struct ctdb_client_context {
struct reqid_context * idr ;
struct srvid_context * srv ;
2017-04-06 12:33:47 +03:00
struct srvid_context * tunnels ;
2015-04-14 17:14:25 +03:00
struct comm_context * comm ;
2015-10-14 07:36:55 +03:00
ctdb_client_callback_func_t callback ;
void * private_data ;
2015-04-14 17:14:25 +03:00
int fd ;
uint32_t pnn ;
struct ctdb_db_context * db ;
} ;
struct ctdb_record_handle {
struct tevent_context * ev ;
struct ctdb_client_context * client ;
struct ctdb_db_context * db ;
struct ctdb_ltdb_header header ;
TDB_DATA key ;
TDB_DATA data ; /* This is returned from tdb_fetch() */
bool readonly ;
} ;
struct ctdb_transaction_handle {
struct tevent_context * ev ;
struct ctdb_client_context * client ;
struct ctdb_db_context * db , * db_g_lock ;
struct ctdb_rec_buffer * recbuf ;
struct ctdb_server_id sid ;
const char * lock_name ;
bool readonly ;
bool updated ;
} ;
2017-04-06 12:33:47 +03:00
struct ctdb_tunnel_context {
struct ctdb_client_context * client ;
uint64_t tunnel_id ;
ctdb_tunnel_callback_func_t callback ;
void * private_data ;
} ;
2015-04-14 17:14:25 +03:00
/* From client_call.c */
void ctdb_client_reply_call ( struct ctdb_client_context * client ,
uint8_t * buf , size_t buflen , uint32_t reqid ) ;
2019-09-27 09:49:01 +03:00
/* From client_db.c */
struct tdb_context * client_db_tdb ( struct ctdb_db_context * db ) ;
2015-04-14 17:14:25 +03:00
/* From client_message.c */
void ctdb_client_req_message ( struct ctdb_client_context * client ,
uint8_t * buf , size_t buflen , uint32_t reqid ) ;
/* From client_control.c */
void ctdb_client_reply_control ( struct ctdb_client_context * client ,
uint8_t * buf , size_t buflen , uint32_t reqid ) ;
2017-04-06 12:33:47 +03:00
/* From client_tunnel.c */
void ctdb_client_req_tunnel ( struct ctdb_client_context * client ,
uint8_t * buf , size_t buflen , uint32_t reqid ) ;
2015-04-14 17:14:25 +03:00
# endif /* __CTDB_CLIENT_PRIVATE_H__ */