MODULE = SWISH::3 PACKAGE = SWISH::3::xml2Hash
PROTOTYPES: enable
SV*
get(self, key)
xmlHashTablePtr self;
xmlChar* key;
PREINIT:
xmlChar* value;
CODE:
value = swish_hash_fetch(self, key);
RETVAL = newSVpvn((char*)value, xmlStrlen(value));
SvUTF8_on(RETVAL); // because we stored as UTF-8
SvREFCNT_inc(RETVAL);
OUTPUT:
RETVAL
int
set(self,key,value)
xmlHashTablePtr self;
xmlChar *key;
xmlChar *value;
CODE:
// swap ret value since C function == 0 == success
// must dupe value since it will be freed when hash is freed.
RETVAL = swish_hash_replace(self, key, swish_xstrdup(value)) ? 0 : 1;
OUTPUT:
RETVAL
AV*
keys(self)
xmlHashTablePtr self;
CODE:
RETVAL = sp_get_xml2_hash_keys(self);
OUTPUT:
RETVAL