Apache-DAV

 view release on metacpan or  search on metacpan

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


#include "XSUB.h"

#include "moddav_xs_sv_convert.h"

#include "moddav_xs_typedefs.h"



void Apache__DAV__PropCtx_new_init (pTHX_ Apache__DAV__PropCtx  obj, SV * item, int overwrite) {

    SV * * tmpsv ;

    if (SvTYPE(item) == SVt_PVMG) 
        memcpy (obj, (void *)SvIVX(item), sizeof (*obj)) ;
    else if (SvTYPE(item) == SVt_PVHV) {
        if ((tmpsv = hv_fetch((HV *)item, "propdb", sizeof("propdb") - 1, 0)) || overwrite) {
            obj -> propdb = (dav_propdb *)davxs_sv2_Apache__DAV__PropDB((tmpsv && *tmpsv?*tmpsv:&PL_sv_undef)) ;
        }
        if ((tmpsv = hv_fetch((HV *)item, "operation", sizeof("operation") - 1, 0)) || overwrite) {
            obj -> operation = (int)davxs_sv2_IV((tmpsv && *tmpsv?*tmpsv:&PL_sv_undef)) ;
        }
        if ((tmpsv = hv_fetch((HV *)item, "prop", sizeof("prop") - 1, 0)) || overwrite) {
            obj -> prop = (dav_xml_elem *)davxs_sv2_Apache__DAV__XMLElem((tmpsv && *tmpsv?*tmpsv:&PL_sv_undef)) ;
        }
        if ((tmpsv = hv_fetch((HV *)item, "err", sizeof("err") - 1, 0)) || overwrite) {
            obj -> err = (dav_error *)davxs_sv2_Apache__DAV__Error((tmpsv && *tmpsv?*tmpsv:&PL_sv_undef)) ;
        }
        if ((tmpsv = hv_fetch((HV *)item, "is_liveprop", sizeof("is_liveprop") - 1, 0)) || overwrite) {
            obj -> is_liveprop = (int)davxs_sv2_IV((tmpsv && *tmpsv?*tmpsv:&PL_sv_undef)) ;
        }
        if ((tmpsv = hv_fetch((HV *)item, "liveprop_ctx", sizeof("liveprop_ctx") - 1, 0)) || overwrite) {
            obj -> liveprop_ctx = (void *)davxs_sv2_PTR((tmpsv && *tmpsv?*tmpsv:&PL_sv_undef)) ;
        }
        if ((tmpsv = hv_fetch((HV *)item, "r", sizeof("r") - 1, 0)) || overwrite) {
            obj -> r = (request_rec *)davxs_sv2_Apache((tmpsv && *tmpsv?*tmpsv:&PL_sv_undef)) ;
        }
   ; }

    else
        croak ("initializer for Apache::DAV::PropCtx::new is not a hash or object reference") ;

} ;


MODULE = Apache::DAV::PropCtx    PACKAGE = Apache::DAV::PropCtx 

Apache::DAV::PropDB
propdb(obj, val=NULL)
    Apache::DAV::PropCtx obj
    Apache::DAV::PropDB val
  PREINIT:
    /*nada*/

  CODE:
    RETVAL = (Apache__DAV__PropDB)  obj->propdb;

    if (items > 1) {
        obj->propdb = (Apache__DAV__PropDB) val;
    }
  OUTPUT:
    RETVAL

MODULE = Apache::DAV::PropCtx    PACKAGE = Apache::DAV::PropCtx 

int
operation(obj, val=0)
    Apache::DAV::PropCtx obj
    int val
  PREINIT:
    /*nada*/

  CODE:
    RETVAL = (int)  obj->operation;

    if (items > 1) {
        obj->operation = (int) val;
    }
  OUTPUT:
    RETVAL

MODULE = Apache::DAV::PropCtx    PACKAGE = Apache::DAV::PropCtx 

Apache::DAV::XMLElem
prop(obj, val=NULL)
    Apache::DAV::PropCtx obj
    Apache::DAV::XMLElem val
  PREINIT:
    /*nada*/

  CODE:
    RETVAL = (Apache__DAV__XMLElem)  obj->prop;

    if (items > 1) {
        obj->prop = (Apache__DAV__XMLElem) val;
    }
  OUTPUT:
    RETVAL

MODULE = Apache::DAV::PropCtx    PACKAGE = Apache::DAV::PropCtx 

Apache::DAV::Error
err(obj, val=NULL)
    Apache::DAV::PropCtx obj
    Apache::DAV::Error val
  PREINIT:
    /*nada*/

  CODE:
    RETVAL = (Apache__DAV__Error)  obj->err;

    if (items > 1) {
        obj->err = (Apache__DAV__Error) val;
    }
  OUTPUT:
    RETVAL

MODULE = Apache::DAV::PropCtx    PACKAGE = Apache::DAV::PropCtx 

int
is_liveprop(obj, val=0)
    Apache::DAV::PropCtx obj
    int val
  PREINIT:
    /*nada*/

  CODE:
    RETVAL = (int)  obj->is_liveprop;

    if (items > 1) {
        obj->is_liveprop = (int) val;
    }
  OUTPUT:
    RETVAL

MODULE = Apache::DAV::PropCtx    PACKAGE = Apache::DAV::PropCtx 

void *
liveprop_ctx(obj, val=NULL)
    Apache::DAV::PropCtx obj
    void * val
  PREINIT:
    /*nada*/

  CODE:
    RETVAL = (void *)  obj->liveprop_ctx;

    if (items > 1) {
        obj->liveprop_ctx = (void *) val;
    }
  OUTPUT:
    RETVAL

MODULE = Apache::DAV::PropCtx    PACKAGE = Apache::DAV::PropCtx 

Apache
r(obj, val=NULL)
    Apache::DAV::PropCtx obj
    Apache val
  PREINIT:
    /*nada*/

  CODE:
    RETVAL = (Apache)  obj->r;

    if (items > 1) {
        obj->r = (Apache) val;
    }
  OUTPUT:
    RETVAL

MODULE = Apache::DAV::PropCtx    PACKAGE = Apache::DAV::PropCtx 



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

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

        if (SvTYPE(tmpsv) == SVt_PVHV || SvTYPE(tmpsv) == SVt_PVMG)  
            Apache__DAV__PropCtx_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::PropCtx::new is not a reference") ;
                Apache__DAV__PropCtx_new_init (aTHX_ &cobj[i], item, 1) ;
            }
        }
        else {
             croak ("initializer for Apache::DAV::PropCtx::new is not a hash/array/object reference") ;
        }
    }
OUTPUT:
    RETVAL 

PROTOTYPES: disabled

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



( run in 0.863 second using v1.01-cache-2.11-cpan-5a3173703d6 )