Couchbase
view release on metacpan or search on metacpan
################################################################################
### Common C Support ###
################################################################################
################################################################################
xs/perl-couchbase.h
xs/plcb-util.h
xs/plcb-return.h
xs/ppport.h
xs/typemap
xs/callbacks.c
xs/convert.c
xs/constants.c
xs/opcontext.c
################################################################################
### Basic C Client Support ###
################################################################################
xs/args.c
xs/operations.c
xs/Couchbase.xs
Makefile.PL view on Meta::CPAN
push @LIBS, '-lcouchbase';
my %MM_Options = (
INC => $INC,
LIBS => [ join(' ', @LIBS) || '' ],);
################################################################################
### Our C Source Files ###
################################################################################
my @C_Modules = qw(args async callbacks constants convert operations opcontext query);
my @XS_Modules = qw(Couchbase BucketConfig IO N1QLParams);
foreach (@XS_Modules, @C_Modules) {
my $obj = $_ . $Config{obj_ext};
push @{ $MM_Options{OBJECT} }, File::Spec->catfile('xs', $obj);
}
$MM_Options{OBJECT} = join(' ', @{ $MM_Options{OBJECT} });
foreach my $xs (@XS_Modules) {
xs/Couchbase.xs view on Meta::CPAN
Newxz(object, 1, PLCB_t);
lcb_set_cookie(instance, object);
object->instance = instance;
if (iops_impl) {
object->ioprocs = newRV_inc(SvRV(iops_impl));
object->conncb = newRV_inc(SvRV(conncb));
object->async = 1;
}
plcb_callbacks_setup(object);
#define get_stash_assert(stashname, target) \
if (! (object->target = gv_stashpv(stashname, 0)) ) { \
die("Couldn't load '%s'", stashname); \
}
get_stash_assert(PLCB_RET_CLASSNAME, ret_stash);
get_stash_assert(PLCB_OPCTX_CLASSNAME, opctx_sync_stash);
get_stash_assert(PLCB_VIEWHANDLE_CLASS, view_stash);
get_stash_assert(PLCB_N1QLHANDLE_CLASS, n1ql_stash);
xs/callbacks.c view on Meta::CPAN
XPUSHs(sv_2mortal(newSViv(status)));
PUTBACK;
call_sv(obj->conncb, G_DISCARD);
SPAGAIN;
FREETMPS;LEAVE;
SvREFCNT_dec(obj->conncb); obj->conncb = NULL;
}
void
plcb_callbacks_setup(PLCB_t *object)
{
lcb_t o = object->instance;
lcb_install_callback3(o, LCB_CALLBACK_GET, callback_common);
lcb_install_callback3(o, LCB_CALLBACK_GETREPLICA, callback_common);
lcb_install_callback3(o, LCB_CALLBACK_STORE, callback_common);
lcb_install_callback3(o, LCB_CALLBACK_TOUCH, callback_common);
lcb_install_callback3(o, LCB_CALLBACK_REMOVE, callback_common);
lcb_install_callback3(o, LCB_CALLBACK_COUNTER, callback_common);
lcb_install_callback3(o, LCB_CALLBACK_UNLOCK, callback_common);
xs/perl-couchbase.h view on Meta::CPAN
#define PLCB_OPCTXf_IMPLICIT 0x01
#define PLCB_OPCTXf_CALLEACH 0x02
#define PLCB_OPCTXf_CALLDONE 0x04
#define PLCB_OPCTXf_WAITONE 0x08
/*need to include this after defining PLCB_t*/
#include "plcb-return.h"
#include "plcb-args.h"
void plcb_callbacks_setup(PLCB_t *object);
/*options for common constructor settings*/
void plcb_ctor_cbc_opts(AV *options, struct lcb_create_st *cropts);
void plcb_ctor_conversion_opts(PLCB_t *object, AV *options);
void plcb_ctor_init_common(PLCB_t *object, lcb_t instance, AV *options);
/*cleanup functions*/
void plcb_cleanup(PLCB_t *object);
/*conversion functions*/
( run in 0.266 second using v1.01-cache-2.11-cpan-eab888a1d7d )