Jabber-mod_perl
view release on metacpan or search on metacpan
patches/NADs.xs view on Meta::CPAN
SV *
my_nad_add_namespace (sv_n, sv_ns)
SV * sv_n
SV * sv_ns
SV *
my_nad_find_namespace (sv_n, sv_elem, sv_uri, sv_prefix)
SV * sv_n
SV * sv_elem
SV * sv_uri
SV * sv_prefix
SV *
my_nad_find_scoped_namespace (sv_n, sv_uri, sv_prefix)
SV * sv_n
SV * sv_uri
SV * sv_prefix
AV *
my_nad_list_namespaces (sv_n)
SV * sv_n
SV *
my_nad_nad_attr_name (sv_n, sv_attr)
SV * sv_n
SV * sv_attr
SV *
my_nad_nad_attr_val (sv_n, sv_attr)
SV * sv_n
SV * sv_attr
SV *
my_nad_nad_elem_name (sv_n, sv_elem)
SV * sv_n
SV * sv_elem
SV *
my_nad_nad_cdata (sv_n, sv_elem)
SV * sv_n
SV * sv_elem
SV *
my_nad_nad_uri (sv_n, sv_ns)
SV * sv_n
SV * sv_ns
SV *
my_nad_nad_uri_prefix (sv_n, sv_ns)
SV * sv_n
SV * sv_ns
void
my_nad_find_children (sv_n, sv_elem)
SV * sv_n
SV * sv_elem
INIT:
int depth, el;
nad_t nad;
PPCODE:
nad = ((nad_t) SvIV(SvRV(sv_n)));
el = SvIV(sv_elem);
// find the children of the given node = + 1
if (el >= 0){
depth = nad->elems[el].depth + 1;
for(el = el + 1; el < nad->ecur; el++)
{
if (nad->elems[el].depth < depth)
break;
if (nad->elems[el].depth == depth){
XPUSHs(sv_2mortal(newSViv(el)));
}
}
}
void
my_nad_attrs (sv_n, sv_elem)
SV * sv_n
SV * sv_elem
INIT:
int attr, el;
nad_t nad;
PPCODE:
nad = ((nad_t) SvIV(SvRV(sv_n)));
el = SvIV(sv_elem);
if (el >= 0 && el < nad->ecur){
attr = nad->elems[el].attr;
while (attr >= 0){
XPUSHs(sv_2mortal(newSViv(attr)));
attr = nad->attrs[attr].next;
}
}
( run in 1.627 second using v1.01-cache-2.11-cpan-5511b514fd6 )