Couchbase

 view release on metacpan or  search on metacpan

MANIFEST  view on Meta::CPAN

################################################################################
### 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.312 second using v1.01-cache-2.11-cpan-eab888a1d7d )