Bio-PhyloXS

 view release on metacpan or  search on metacpan

lib/Bio/PhyloXS/NeXML/Writable.xs  view on Meta::CPAN

int is_ns_suppressed(Writable* self) {
	return self->is_suppress_ns;
}

int get_suppress_ns(Writable* self) {
	return self->is_suppress_ns;
}

Writable* set_identifiable(Writable* self, int value) {
	self->is_identifiable = value;
	return self;
}

int is_identifiable(Writable* self) {
	return self->is_identifiable;
}

int get_identifiable(Writable* self) {
	return self->is_identifiable;
}

const char * get_tag(Writable* self) {
	int idx = ((Identifiable*)self)->_index;
	return tag[idx];
}

char * get_xml_id(Writable* self) {
	char xml_id[10];
	int idx = ((Identifiable*)self)->_index;
	int end_idx = strlen(tag[idx]) - 1;	
	char start = tag[idx][0];
	char end = tag[idx][end_idx];
	sprintf(xml_id,"%c%c%d",start,end,((Identifiable*)self)->id);
	self->xml_id = savepv(xml_id);
	return self->xml_id;
}

Writable* set_base_uri(Writable* self, char * uri) {
	hv_store(self->attributes, "xml:base", 8, newSVpv(uri,0), 0);	
	return self;
}

void destroy_writable(Writable* self) {
	destroy_identifiable((Identifiable*)self);
//	SvREFCNT_dec(self->attributes);
//	SvREFCNT_dec(self->meta);
	if ( self->url != NULL ) {
		Safefree(self->url);	
	}
}
MODULE = Bio::PhyloXS::NeXML::Writable  PACKAGE = Bio::PhyloXS::NeXML::Writable  

PROTOTYPES: DISABLE


void
initialize_writable (self)
	Writable *	self
        PREINIT:
        I32* temp;
        PPCODE:
        temp = PL_markstack_ptr++;
        initialize_writable(self);
        if (PL_markstack_ptr != temp) {
          /* truly void, because dXSARGS not invoked */
          PL_markstack_ptr = temp;
          XSRETURN_EMPTY; /* return empty stack */
        }
        /* must have used dXSARGS; list context implied */
        return; /* assume stack size is correct */

Writable *
set_attributes (self, ...)
	Writable *	self
        PREINIT:
        I32* temp;
        CODE:
        temp = PL_markstack_ptr++;
        RETVAL = set_attributes(self);
        PL_markstack_ptr = temp;
        OUTPUT:
        RETVAL

HV *
get_attributes (self)
	Writable *	self

Writable *
set_link (self, url)
	Writable *	self
	char *	url

char *
get_link (self)
	Writable *	self

Writable *
set_name (self, name)
	Writable *	self
	char *	name

char *
get_name (self)
	Writable *	self

Writable *
set_suppress_ns (self)
	Writable *	self

Writable *
clear_suppress_ns (self)
	Writable *	self

int
is_ns_suppressed (self)
	Writable *	self

int
get_suppress_ns (self)
	Writable *	self

Writable *
set_identifiable (self, value)
	Writable *	self
	int	value

int
is_identifiable (self)
	Writable *	self

int
get_identifiable (self)
	Writable *	self

const char *
get_tag (self)
	Writable *	self

char *
get_xml_id (self)
	Writable *	self

Writable *
set_base_uri (self, uri)
	Writable *	self
	char *	uri

void
destroy_writable (self)
	Writable *	self
        PREINIT:
        I32* temp;
        PPCODE:
        temp = PL_markstack_ptr++;
        destroy_writable(self);
        if (PL_markstack_ptr != temp) {
          /* truly void, because dXSARGS not invoked */
          PL_markstack_ptr = temp;
          XSRETURN_EMPTY; /* return empty stack */
        }
        /* must have used dXSARGS; list context implied */
        return; /* assume stack size is correct */



( run in 0.910 second using v1.01-cache-2.11-cpan-71847e10f99 )