#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"
#include "ppport.h"
typedef SV MyOpaqueObject;
MODULE = Store::Opaque PACKAGE = Store::Opaque
MyOpaqueObject*
new(CLASS)
char *CLASS
CODE:
RETVAL = (SV*)newHV();
OUTPUT:
RETVAL
SV*
_get(self, key)
MyOpaqueObject* self
SV* key
PREINIT:
HE* entry;
CODE:
entry = hv_fetch_ent((HV*)self, key, 0, 0);
if (entry != NULL)
RETVAL = newSVsv( HeVAL(entry) );
else
RETVAL = &PL_sv_undef;
OUTPUT: RETVAL
void
_set(self, key, value)
MyOpaqueObject* self
SV* key
SV* value
CODE:
hv_store_ent((HV*)self, key, newSVsv(value), 0);
void
DESTROY(self)
MyOpaqueObject* self
CODE:
SvREFCNT_dec((HV*)self);