Solaris
view release on metacpan or search on metacpan
Kstat/Kstat.xs view on Meta::CPAN
PREINIT:
char *k;
STRLEN klen;
SV **value;
CODE:
self = SvRV(self);
k = SvPV(key, klen);
if (strNE(k, "class") && strNE(k, "crtime"))
{ read_kstats((HV*)self, FALSE); }
value = hv_fetch((HV*)self, k, klen, FALSE);
if (value) { RETVAL = *value; SvREFCNT_inc(RETVAL); }
else { RETVAL = &PL_sv_undef; }
OUTPUT:
RETVAL
################################################################################
SV*
STORE(self, key, value)
SV* self;
SV* key;
SV* value;
PREINIT:
char *k;
STRLEN klen;
CODE:
self = SvRV(self);
k = SvPV(key, klen);
if (strNE(k, "class") && strNE(k, "crtime"))
{ read_kstats((HV*)self, FALSE); }
SvREFCNT_inc(value);
RETVAL = *(hv_store((HV*)self, k, klen, value, 0));
SvREFCNT_inc(RETVAL);
OUTPUT:
RETVAL
################################################################################
bool
EXISTS(self, key)
SV* self;
SV* key;
PREINIT:
char *k;
CODE:
self = SvRV(self);
k = SvPV(key, PL_na);
if (strNE(k, "class") && strNE(k, "crtime"))
{ read_kstats((HV*)self, FALSE); }
RETVAL = hv_exists_ent((HV*)self, key, 0);
OUTPUT:
RETVAL
################################################################################
SV*
FIRSTKEY(self)
SV* self;
PREINIT:
HE *he;
PPCODE:
self = SvRV(self);
read_kstats((HV*)self, FALSE);
hv_iterinit((HV*)self);
if (he = hv_iternext((HV*)self))
{
EXTEND(sp, 1);
PUSHs(hv_iterkeysv(he));
}
################################################################################
SV*
NEXTKEY(self, lastkey)
SV* self;
SV* lastkey;
PREINIT:
HE *he;
PPCODE:
self = SvRV(self);
if (he = hv_iternext((HV*)self))
{
EXTEND(sp, 1);
PUSHs(hv_iterkeysv(he));
}
################################################################################
SV*
DELETE(self, key)
SV *self;
SV *key;
CODE:
self = SvRV(self);
RETVAL = hv_delete_ent((HV*)self, key, 0, 0);
if (RETVAL) { SvREFCNT_inc(RETVAL); }
else { RETVAL = &PL_sv_undef; }
OUTPUT:
RETVAL
################################################################################
void
CLEAR(self)
SV* self;
PREINIT:
MAGIC *mg;
KstatInfo_t *kip;
CODE:
self = SvRV(self);
hv_clear((HV*)self);
mg = mg_find(self, '~');
if (mg == 0) { croak("Lost ~ magic"); }
kip = (KstatInfo_t*)SvPVX(mg->mg_obj);
hv_store((HV*)self, "class", 5, newSVpv(kip->kstat->ks_class, 0), 0);
hv_store((HV*)self, "crtime", 6, NEW_HRTIME(kip->kstat->ks_crtime), 0);
################################################################################
( run in 0.732 second using v1.01-cache-2.11-cpan-5511b514fd6 )