Apache-DAV

 view release on metacpan or  search on metacpan

xs/Apache/DAV/HooksDb/HooksDb.xs  view on Meta::CPAN

    RETVAL = (*__self->nextkey)(db, pkey);
OUTPUT:
    RETVAL


MODULE = Apache::DAV::HooksDb    PACKAGE = Apache::DAV::HooksDb 

void
freedatum(__self, db, data)
    Apache::DAV::HooksDb __self
    Apache::DAV::Db db
    Apache::DAV::Datum data
CODE:
    (*__self->freedatum)(db, *data);


MODULE = Apache::DAV::HooksDb    PACKAGE = Apache::DAV::HooksDb 



SV *
new (class,initializer=NULL)
    char * class
    SV * initializer 
PREINIT:
    SV * svobj ;
    Apache__DAV__HooksDb  cobj ;
    SV * tmpsv ;
CODE:
    davxs_Apache__DAV__HooksDb_create_obj(cobj,svobj,RETVAL,malloc(sizeof(*cobj))) ;

    if (initializer) {
        if (!SvROK(initializer) || !(tmpsv = SvRV(initializer))) 
            croak ("initializer for Apache::DAV::HooksDb::new is not a reference") ;

        if (SvTYPE(tmpsv) == SVt_PVHV || SvTYPE(tmpsv) == SVt_PVMG)  
            Apache__DAV__HooksDb_new_init (aTHX_ cobj, tmpsv, 0) ;
        else if (SvTYPE(tmpsv) == SVt_PVAV) {
            int i ;
            SvGROW(svobj, sizeof (*cobj) * av_len((AV *)tmpsv)) ;     
            for (i = 0; i <= av_len((AV *)tmpsv); i++) {
                SV * * itemrv = av_fetch((AV *)tmpsv, i, 0) ;
                SV * item ;
                if (!itemrv || !*itemrv || !SvROK(*itemrv) || !(item = SvRV(*itemrv))) 
                    croak ("array element of initializer for Apache::DAV::HooksDb::new is not a reference") ;
                Apache__DAV__HooksDb_new_init (aTHX_ &cobj[i], item, 1) ;
            }
        }
        else {
             croak ("initializer for Apache::DAV::HooksDb::new is not a hash/array/object reference") ;
        }
    }
OUTPUT:
    RETVAL 

MODULE = Apache::DAV::HooksDb    PACKAGE = Apache::DAV::HooksDb 



void
init_callbacks (obj)
    SV *  obj
PREINIT:
    int  n = -1 ;
    int  i ;
    Apache__DAV__HooksDb cobj = (Apache__DAV__HooksDb)davxs_sv2_Apache__DAV__HooksDb(obj) ;
    SV * ref ;
    SV * perl_obj ;
CODE:

    perl_obj = SvRV(obj) ;
    ref = newRV_noinc(perl_obj) ;

    for (i=0;i < 4;i++)
        {
        if (davxs_Apache__DAV__HooksDb_obj[i] == ref)
            {
            n = i ;
            break ;
            }
        }

    if (n < 0)
        for (i=0;i < 4;i++)
            {
            if (davxs_Apache__DAV__HooksDb_obj[i] == NULL)
                {
                n = i ;
                break ;
                }
            }
        
    if (n < 0)
        croak ("Limit for concurrent object callbacks reached for Apache::DAV::HooksDb. Limit is 4") ;

    davxs_Apache__DAV__HooksDb_obj[n] = ref ;
    cobj -> open = davxs_davxs_cb_Apache__DAV__HooksDb__open_func[n] ;
    cobj -> close = davxs_davxs_cb_Apache__DAV__HooksDb__close_func[n] ;
    cobj -> fetch = davxs_davxs_cb_Apache__DAV__HooksDb__fetch_func[n] ;
    cobj -> store = davxs_davxs_cb_Apache__DAV__HooksDb__store_func[n] ;
    cobj -> remove = davxs_davxs_cb_Apache__DAV__HooksDb__remove_func[n] ;
    cobj -> exists = davxs_davxs_cb_Apache__DAV__HooksDb__exists_func[n] ;
    cobj -> firstkey = davxs_davxs_cb_Apache__DAV__HooksDb__firstkey_func[n] ;
    cobj -> nextkey = davxs_davxs_cb_Apache__DAV__HooksDb__nextkey_func[n] ;
    cobj -> freedatum = davxs_davxs_cb_Apache__DAV__HooksDb__freedatum_func[n] ;
    

PROTOTYPES: disabled

BOOT:
    items = items; /* -Wall */



( run in 1.421 second using v1.01-cache-2.11-cpan-804bf51f3ce )