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 );