#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #include MODULE = XML::WBXML PACKAGE = XML::WBXML PROTOTYPES: disable SV * xml_to_wbxml(in_xml) WB_UTINY *in_xml CODE: WB_UTINY * outwbxml = NULL; WB_ULONG outwbxml_len = 0; WBXMLError ret; WBXMLConvXML2WBXMLParams params; params.wbxml_version = WBXML_VERSION_12; params.keep_ignorable_ws = FALSE; params.use_strtbl = TRUE; ret = wbxml_conv_xml2wbxml(in_xml, &outwbxml, &outwbxml_len, ¶ms); if (ret == WBXML_OK) { RETVAL = newSVpvn((char *)outwbxml, outwbxml_len); } else { XSRETURN_UNDEF; } OUTPUT: RETVAL SV * wbxml_to_xml(in_wbxml) WB_UTINY *in_wbxml CODE: WB_ULONG inwbxml_len; WB_UTINY *outxml = NULL; WBXMLError ret; WBXMLConvWBXML2XMLParams params; params.gen_type = WBXML_ENCODER_XML_GEN_COMPACT; params.lang = WBXML_LANG_UNKNOWN; params.indent = 1; params.keep_ignorable_ws = TRUE; inwbxml_len = SvCUR(ST(0)); ret = wbxml_conv_wbxml2xml(in_wbxml, inwbxml_len, &outxml, ¶ms); if (ret == WBXML_OK) { RETVAL = newSVpv((char *)outxml, 0); } else { RETVAL = newSViv(inwbxml_len); } OUTPUT: RETVAL