Net-SNMP-XS
view release on metacpan or search on metacpan
cv = x_get_cv (cv);
assert (SvTYPE (cv) == SVt_PVCV);
av_store (av_type, type, SvREFCNT_inc_NN (cv));
MODULE = Net::SNMP::XS PACKAGE = Net::SNMP::Message
void
_buffer_append (BUFOBJ self, SV *value)
ALIAS:
_buffer_put = 1
PPCODE:
{
STRLEN vlen;
const char *vstr = SvPVbyte (value, vlen);
if (ix)
sv_insert (bufsv, 0, 0, vstr, vlen);
else
sv_catpvn (bufsv, vstr, vlen);
buf = SvPVbyte (bufsv, len);
SV *len_sv = *hv_fetch ((HV *)cur_bufobj, "_length", sizeof ("_length") - 1, 1);
sv_setiv (len_sv, len);
// some callers test for defined'ness of the returnvalue. *sigh*
XPUSHs (&PL_sv_yes);
}
void
_buffer_get (BUFOBJ self, int count = -1)
PPCODE:
{
// grrr.
if (count < 0)
{
hv_delete ((HV *)SvRV (self), "_index" , 6, G_DISCARD);
hv_delete ((HV *)SvRV (self), "_length", 7, G_DISCARD);
XPUSHs (sv_2mortal (newSVsv (bufsv)));
sv_setpvn (bufsv, "", 0);
buf = "";
}
OUTPUT: RETVAL
MODULE = Net::SNMP::XS PACKAGE = Net::SNMP
void
oid_base_match (SV *base_, SV *oid_)
PROTOTYPE: $$
ALIAS:
oid_context_match = 0
PPCODE:
{
if (!SvOK (base_) || !SvOK (oid_))
XSRETURN_NO;
STRLEN blen, olen;
char *base = SvPVbyte (base_, blen);
char *oid = SvPVbyte (oid_ , olen);
blen -= *base == '.'; base += *base == '.';
olen -= *base == '.'; oid += *oid == '.';
XSRETURN_NO;
XSRETURN_YES;
}
#if HAVE_VERSIONSORT
void
oid_lex_sort (...)
PROTOTYPE: @
PPCODE:
{
// make sure SvPVX is valid
int i;
for (i = items; i--; )
{
SV *sv = ST (i);
if (SvTYPE (sv) < SVt_PV || SvTYPE (sv) == SVt_PVAV && SvTYPE (sv) == SVt_PVHV)
SvPV_force_nolen (sv);
}
( run in 0.399 second using v1.01-cache-2.11-cpan-5511b514fd6 )