Net-Drizzle

 view release on metacpan or  search on metacpan

Drizzle.xs  view on Meta::CPAN

    }

SV *
escape(SV *class, SV* str)
CODE:
    PERL_UNUSED_VAR(class);
    STRLEN str_len;
    const char * str_c = SvPV(str, str_len);
    char * buf;
    Newxz(buf, str_len*2+1, char);
    uint64_t dst_len = drizzle_escape_string(buf, str_c, str_len);
    SV * res = newSVpvn(buf, dst_len);
    Safefree(buf);
    RETVAL = res;
OUTPUT:
    RETVAL

SV *
hex_string(SV *class, SV* str)
CODE:
    PERL_UNUSED_VAR(class);
    STRLEN str_len;
    const char * str_c = SvPV(str, str_len);
    char * buf;
    Newxz(buf, str_len*2+1, char);
    uint64_t dst_len = drizzle_hex_string(buf, str_c, str_len);
    SV * res = newSVpvn(buf, dst_len);
    Safefree(buf);
    RETVAL = res;
OUTPUT:
    RETVAL

const char *
drizzle_version(SV *class)
CODE:
    PERL_UNUSED_VAR(class);
    RETVAL = drizzle_version();
OUTPUT:
    RETVAL

SV*
add_options(SV* self, int opt)
CODE:
    drizzle_st * drizzle = GET_DRIZZLE(self);
    drizzle_add_options(drizzle, opt);
    RETVAL = SvREFCNT_inc(self);
OUTPUT:
    RETVAL

void
con_wait(SV* self)
CODE:
    drizzle_st * drizzle = GET_DRIZZLE(self);
    drizzle_return_t ret = drizzle_con_wait(drizzle);
    if (ret != DRIZZLE_RETURN_OK) {
        // Perl_croak(aTHX_ "drizzle_con_wait:%s\n", drizzle_error(drizzle));
    }

void
con_ready(SV* self)
PPCODE:
    drizzle_st * drizzle = GET_DRIZZLE(self);
    drizzle_con_st * con_raw = drizzle_con_ready(drizzle);
    if (con_raw) {
        ST(0) = _create_con(self, con_raw);
        XSRETURN(1);
    } else {
        ST(0) = &PL_sv_undef;
        XSRETURN(1);
    }

const char*
error(SV* self)
CODE:
    drizzle_st* drizzle = GET_DRIZZLE(self);
    RETVAL=drizzle_error(drizzle);
OUTPUT:
    RETVAL

int
error_code(SV* self)
CODE:
    drizzle_st* drizzle = GET_DRIZZLE(self);
    RETVAL=drizzle_error_code(drizzle);
OUTPUT:
    RETVAL

void
query_run(SV* self)
PPCODE:
    dTARGET;
    drizzle_st *drizzle = GET_DRIZZLE(self);
    drizzle_return_t ret = 0;
    drizzle_query_st * query = drizzle_query_run(drizzle, &ret);
    if (query) {
        SV * q = _create_query(self, NULL, query);
        XPUSHi(ret);
        mXPUSHs(q);
        XSRETURN(2);
    } else {
        XPUSHi(ret);
        XPUSHs(&PL_sv_undef);
        XSRETURN(2);
    }



( run in 0.413 second using v1.01-cache-2.11-cpan-5511b514fd6 )