ObjStore-REP-FatTree
view release on metacpan or search on metacpan
osp_thr::register_schema("ObjStore::REP::FatTree",
&ObjStore_REP_FatTree_dll_schema_info);
XSTHRBOOT(FatTree);
MODULE = ObjStore::REP::FatTree PACKAGE = ObjStore::REP::FatTree::AV
static void
OSSVPV::new(seg, sz)
SV *seg;
int sz;
PPCODE:
SV *CSV = ST(0);
os_segment *area = osp_thr::sv_2segment(ST(1));
PUTBACK;
if (sz < 40) {
SERIOUS("ObjStore::REP::FatTree::AV->new(%d): representation not efficient for small arrays", sz);
}
OSPV_fattree_av *pv;
NEW_OS_OBJECT(pv, area, OSPV_fattree_av::get_os_typespec(), OSPV_fattree_av());
pv->bless(CSV);
return;
MODULE = ObjStore::REP::FatTree PACKAGE = ObjStore::REP::FatTree::ObjAV
static void
OSSVPV::new(seg, sz)
SV *seg;
int sz;
PPCODE:
SV *CSV = ST(0);
os_segment *area = osp_thr::sv_2segment(ST(1));
PUTBACK;
if (sz < 40) {
SERIOUS("ObjStore::REP::FatTree::ObjAV->new(%d): representation not efficient for small arrays", sz);
}
OSPV_fattree_av2 *pv;
NEW_OS_OBJECT(pv, area, OSPV_fattree_av2::get_os_typespec(), OSPV_fattree_av2());
pv->bless(CSV);
return;
MODULE = ObjStore::REP::FatTree PACKAGE = ObjStore::REP::FatTree::Index
static void
OSPV_fatindex2::new(seg)
SV *seg;
PPCODE:
os_segment *area = osp_thr::sv_2segment(ST(1));
PUTBACK;
OSPV_fatindex2 *pv;
if (area == os_segment::get_transient_segment())
croak("transient indices are too easily corrupted");
NEW_OS_OBJECT(pv, area, OSPV_fatindex2::get_os_typespec(), OSPV_fatindex2());
pv->bless(ST(0));
return;
void
OSPV_fatindex2::_conf_slot(...)
PPCODE:
PUTBACK;
SV *ret = 0;
if (items == 2) {
if (TvFILL(&THIS->tv)) {
croak("Configuration of an active index cannot be changed");
}
ospv_bridge *br = osp_thr::sv_2bridge(ST(1), 1, os_segment::of(THIS));
OSSVPV *nconf = br->ospv();
nconf->REF_inc();
if (THIS->conf_slot) THIS->conf_slot->REF_dec();
croak("OSPV_fatindex2(%p)->_conf_slot: bad args", THIS);
}
SPAGAIN;
if (ret) XPUSHs(ret);
MODULE = ObjStore::REP::FatTree PACKAGE = ObjStore::REP::FatTree::KCIndex
static void
OSPV_fatindex3::new(seg)
SV *seg;
PPCODE:
os_segment *area = osp_thr::sv_2segment(ST(1));
PUTBACK;
OSPV_fatindex3 *pv;
if (area == os_segment::get_transient_segment())
croak("transient indices are too easily corrupted");
NEW_OS_OBJECT(pv, area, OSPV_fatindex3::get_os_typespec(), OSPV_fatindex3());
pv->bless(ST(0));
return;
void
OSPV_fatindex3::_conf_slot(...)
PPCODE:
PUTBACK;
SV *ret = 0;
if (items == 2) {
if (TvFILL(&THIS->tv))
croak("Configuration of an active index cannot be changed");
ospv_bridge *br = osp_thr::sv_2bridge(ST(1), 1, os_segment::of(THIS));
THIS->conf_slot = br->ospv();
} else if (items == 1) {
ret = osp_thr::ospv_2sv(THIS->conf_slot);
} else {
( run in 0.810 second using v1.01-cache-2.11-cpan-5511b514fd6 )