109 lines
3.6 KiB
Plaintext
109 lines
3.6 KiB
Plaintext
|
TYPEMAP
|
||
|
const char * T_PV
|
||
|
xmlParserCtxtPtr O_PARSER_OBJECT
|
||
|
xmlRelaxNGPtr O_OBJECT
|
||
|
xmlPatternPtr O_PATTERN_OBJECT
|
||
|
xmlRegexpPtr O_REGEXP_OBJECT
|
||
|
xmlSchemaPtr O_OBJECT
|
||
|
xmlNodeSetPtr O_OBJECT
|
||
|
perlxmlParserObjectPtr O_OBJECT
|
||
|
xmlDocPtr O_DOC_OBJECT
|
||
|
xmlNodePtr O_NODE_OBJECT
|
||
|
xmlDtdPtr O_NODE_OBJECT
|
||
|
xmlTextReaderPtr O_OBJECT
|
||
|
xmlErrorPtr O_OBJECT
|
||
|
xmlHashTablePtr O_OBJECT
|
||
|
xmlXPathCompExprPtr O_XPATH_OBJECT
|
||
|
|
||
|
INPUT
|
||
|
O_OBJECT
|
||
|
if( sv_isobject($arg) && (SvTYPE(SvRV($arg)) == SVt_PVMG) )
|
||
|
$var = INT2PTR($type,SvIV((SV*)SvRV( $arg )));
|
||
|
else{
|
||
|
warn( \"${Package}::$func_name() -- $var is not a blessed SV reference\" );
|
||
|
XSRETURN_UNDEF;
|
||
|
}
|
||
|
|
||
|
O_DOC_OBJECT
|
||
|
if( sv_isobject($arg) && (SvTYPE(SvRV($arg)) == SVt_PVMG) ) {
|
||
|
$var = INT2PTR($type,PmmSvNode($arg));
|
||
|
if ( $var == NULL ) {
|
||
|
croak( \"${Package}::$func_name() -- $var contains no data\" );
|
||
|
XSRETURN_UNDEF;
|
||
|
}
|
||
|
}
|
||
|
else{
|
||
|
croak( \"${Package}::$func_name() -- $var is not a blessed SV reference\" );
|
||
|
XSRETURN_UNDEF;
|
||
|
}
|
||
|
|
||
|
O_NODE_OBJECT
|
||
|
if( sv_isobject($arg) && (SvTYPE(SvRV($arg)) == SVt_PVMG) ) {
|
||
|
$var = INT2PTR($type,PmmSvNode($arg));
|
||
|
if ( $var == NULL ) {
|
||
|
croak( \"${Package}::$func_name() -- $var contains no data\" );
|
||
|
XSRETURN_UNDEF;
|
||
|
}
|
||
|
}
|
||
|
else {
|
||
|
croak( \"${Package}::$func_name() -- $var is not a blessed SV reference\" );
|
||
|
XSRETURN_UNDEF;
|
||
|
}
|
||
|
|
||
|
O_PARSER_OBJECT
|
||
|
if( sv_isobject($arg) && (SvTYPE(SvRV($arg)) == SVt_PVMG) ) {
|
||
|
$var = PmmSvContext($arg);
|
||
|
if ( $var == NULL ) {
|
||
|
croak( \"${Package}::$func_name() -- $var contains no parse context\" );
|
||
|
XSRETURN_UNDEF;
|
||
|
}
|
||
|
}
|
||
|
else {
|
||
|
croak( \"${Package}::$func_name() -- $var is not a blessed SV reference\" );
|
||
|
XSRETURN_UNDEF;
|
||
|
}
|
||
|
|
||
|
O_XPATH_OBJECT
|
||
|
if( sv_isobject($arg) && (SvTYPE(SvRV($arg)) == SVt_PVMG) && sv_isa($arg,\"XML::LibXML::XPathExpression\"))
|
||
|
$var = INT2PTR($type,SvIV((SV*)SvRV( $arg )));
|
||
|
else{
|
||
|
warn( \"${Package}::$func_name() -- $var is not a XML::LibXML::XPathExpression\" );
|
||
|
XSRETURN_UNDEF;
|
||
|
}
|
||
|
|
||
|
O_PATTERN_OBJECT
|
||
|
if( sv_isobject($arg) && (SvTYPE(SvRV($arg)) == SVt_PVMG) && sv_isa($arg,\"XML::LibXML::Pattern\"))
|
||
|
$var = INT2PTR($type,SvIV((SV*)SvRV( $arg )));
|
||
|
else{
|
||
|
warn( \"${Package}::$func_name() -- $var is not a XML::LibXML::Pattern\" );
|
||
|
XSRETURN_UNDEF;
|
||
|
}
|
||
|
|
||
|
O_REGEXP_OBJECT
|
||
|
if( sv_isobject($arg) && (SvTYPE(SvRV($arg)) == SVt_PVMG) && sv_isa($arg,\"XML::LibXML::RegExp\"))
|
||
|
$var = INT2PTR($type,SvIV((SV*)SvRV( $arg )));
|
||
|
else{
|
||
|
warn( \"${Package}::$func_name() -- $var is not a XML::LibXML::RegExp\" );
|
||
|
XSRETURN_UNDEF;
|
||
|
}
|
||
|
|
||
|
|
||
|
OUTPUT
|
||
|
|
||
|
# The Perl object is blessed into 'CLASS', which should be a
|
||
|
# char* having the name of the package for the blessing.
|
||
|
O_OBJECT
|
||
|
sv_setref_pv( $arg, (char *)CLASS, (void*)$var );
|
||
|
|
||
|
O_PATTERN_OBJECT
|
||
|
sv_setref_pv( $arg, (char *)\"XML::LibXML::Pattern\", (void*)$var );
|
||
|
|
||
|
O_REGEXP_OBJECT
|
||
|
sv_setref_pv( $arg, (char *)\"XML::LibXML::RegExp\", (void*)$var );
|
||
|
|
||
|
O_XPATH_OBJECT
|
||
|
sv_setref_pv( $arg, (char *)\"XML::LibXML::XPathExpression\", (void*)$var );
|
||
|
|
||
|
O_PARSER_OBJECT
|
||
|
$arg = PmmContextSv( $var );
|