21 Perl_croak(aTHX_
"ARBDB croaks %s", message);
28 const char *perl_cl = perl_func + strlen(perl_func) + 1;
31 SV *sv = sv_newmortal();
32 sv_setref_pv(sv,
"GBDATAPtr", (
void*)gbd);
34 XPUSHs(sv_2mortal(newSVpv(perl_cl, 0)));
36 XPUSHs(sv_2mortal(newSVpv(
"DELETED", 0)));
39 XPUSHs(sv_2mortal(newSVpv(
"CHANGED", 0)));
43 I32 i = perl_call_pv(perl_func, G_DISCARD);
45 croak(
"Your perl function '%s' should not return any values", perl_func);
61 error =
GBS_global_string(
"Error: Callback '%s:%s' is already installed", perl_func, perl_cl);
79 char *arg = gbp_cp_hash_table ? (
char *)
GBS_read_hash(gbp_cp_hash_table, data) : (
char*)NULL;
82 error =
GBS_global_string(
"Error: You never installed a callback '%s:%s'", perl_func, perl_cl);
long GBS_write_hash(GB_HASH *hs, const char *key, long val)
GB_ERROR GB_add_callback(GBDATA *gbd, GB_CB_TYPE type, const DatabaseCallback &dbcb)
void GBP_callback(GBDATA *gbd, const char *perl_func, GB_CB_TYPE cb_type)
static GB_HASH * gbp_cp_hash_table
char * gbp_create_callback_hashkey(GBDATA *gbd, const char *perl_func, const char *perl_cl)
const char * GBS_global_string(const char *templat,...)
void(* GBP_croak_function)(const char *message)
void message(char *errortext)
static void error(const char *msg)
GB_ERROR GBP_remove_callback(GBDATA *gbd, const char *perl_func, const char *perl_cl)
GB_ERROR GBP_add_callback(GBDATA *gbd, const char *perl_func, const char *perl_cl)
void GB_remove_callback(GBDATA *gbd, GB_CB_TYPE type, const DatabaseCallback &dbcb)
static ARB_init_perl_interface init
static __ATTR__NORETURN void GBP_croak(const char *message)
ARB_init_perl_interface()
long GBS_read_hash(const GB_HASH *hs, const char *key)
char * GBS_global_string_copy(const char *templat,...)
void GBS_optimize_hash(const GB_HASH *hs)
GB_HASH * GBS_create_hash(long estimated_elements, GB_CASE case_sens)