MODULE = SWISH::3 PACKAGE = SWISH::3::MetaName PROTOTYPES: enable swish_MetaName * new(CLASS, name) char * CLASS; SV * name; CODE: RETVAL = swish_metaname_init(swish_xstrdup( (xmlChar*)SvPV(name, PL_na) )); RETVAL->ref_cnt++; OUTPUT: RETVAL SV* id (self) swish_MetaName *self; CODE: RETVAL = newSViv( self->id ); OUTPUT: RETVAL SV* name (self) swish_MetaName *self; CODE: RETVAL = newSVpvn( (char*)self->name, strlen((char*)self->name) ); OUTPUT: RETVAL SV* bias (self) swish_MetaName *self; CODE: RETVAL = newSViv( self->bias ); OUTPUT: RETVAL SV* alias_for (self) swish_MetaName *self; CODE: if (self->alias_for == NULL) { RETVAL = &PL_sv_undef; } else { RETVAL = newSVpvn( (char*)self->alias_for, strlen((char*)self->alias_for) ); } OUTPUT: RETVAL void DESTROY (self) swish_MetaName *self; CODE: self->ref_cnt--; if (SWISH_DEBUG) { warn("DESTROY %s [%ld] [ref_cnt = %d]", SvPV(ST(0), PL_na), (long)self, self->ref_cnt); } if (self->ref_cnt < 1) { swish_metaname_free(self); }