#ifndef backend_h #define backend_h struct backend_set_data; struct plugin_state; struct inref_attr; /* Configuration data common to all backends. */ struct backend_shr_set_data { struct plugin_state *state; char *group, *set, **bases, *entry_filter; char **ref_attrs; struct format_inref_attr **inref_attrs; struct backend_set_data *self; }; /* Startup/initialization functions called through the map. */ void backend_startup(struct plugin_state *state); void backend_init(struct slapi_pblock *pb, struct plugin_state *state); /* Read the server's name. */ int backend_read_master_name(struct plugin_state *state, char **master); void backend_free_master_name(struct plugin_state *state, char *master); /* Read enough of the set's configuration for the formatter to be able to * resolve references correctly. */ void backend_get_set_config(struct plugin_state *state, const char *group, const char *set, char ***bases, char **entry_filter); void backend_free_set_config(char **bases, char *entry_filter); /* Check if an entry is a set configuration, and add or remove one. */ bool_t backend_entry_is_a_set(struct plugin_state *state, Slapi_PBlock *pb, Slapi_Entry *e); int backend_set_config_entry_add_cb(Slapi_Entry *e, void *callback_data); int backend_set_config_entry_delete_cb(Slapi_Entry *e, void *callback_data); /* Set an entry in a set. */ void backend_set_entry_one(Slapi_Entry *e, struct backend_set_data *set_data); /* Read and free set configurations. */ void backend_set_config_read_config(struct plugin_state *state, Slapi_Entry *e, const char *group, const char *set, bool_t *flag, struct backend_shr_set_data **set_data); void backend_set_config_free_config(struct backend_shr_set_data *set_data); /* Re-read any plugin configuration data which can be modified without * requiring a restart. */ void backend_update_params(struct plugin_state *state); #endif