Bio-PhyloXS

 view release on metacpan or  search on metacpan

lib/Bio/PhyloXS/Matrices/TypeSafeData.xs  view on Meta::CPAN

	return self->datatype->gap;
}

TypeSafeData* set_gap(TypeSafeData* self, char gap) {
	self->datatype->gap = gap;
	return self;
}

char* get_type(TypeSafeData* self) {
	char* retval;
	switch(self->datatype->datatype) {
		case _DNA_:
			retval = "dna";
			break;
		case _RNA_:
			retval = "rna";
			break;
		case _PROTEIN_:
			retval = "protein";
			break;
		case _STANDARD_:
			retval = "protein";
			break;
		case _CONTINUOUS_:
			retval = "continuous";
			break;
		default:
			warn("Datatype undefined");
			break;
	}
	return retval;
}

Datatype* get_type_object(TypeSafeData* self) {
	return self->datatype;
}

TypeSafeData* set_type_object(TypeSafeData* self, Datatype* type) {
	self->datatype = type;
	return self;
}

void destroy_typesafedata(TypeSafeData* self) {
	destroy_listable((Listable*)self);	
	Safefree(self->datatype);
}
MODULE = Bio::PhyloXS::Matrices::TypeSafeData  PACKAGE = Bio::PhyloXS::Matrices::TypeSafeData  

PROTOTYPES: DISABLE


TypeSafeData *
create (classname)
	const char *	classname

void
initialize_typesafedata (self)
	TypeSafeData *	self
        PREINIT:
        I32* temp;
        PPCODE:
        temp = PL_markstack_ptr++;
        initialize_typesafedata(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 */

TypeSafeData *
set_type (self, type)
	TypeSafeData *	self
	char *	type

char
get_missing (self)
	TypeSafeData *	self

TypeSafeData *
set_missing (self, missing)
	TypeSafeData *	self
	char	missing

char
get_gap (self)
	TypeSafeData *	self

TypeSafeData *
set_gap (self, gap)
	TypeSafeData *	self
	char	gap

char *
get_type (self)
	TypeSafeData *	self

Datatype *
get_type_object (self)
	TypeSafeData *	self

TypeSafeData *
set_type_object (self, type)
	TypeSafeData *	self
	Datatype *	type

void
destroy_typesafedata (self)
	TypeSafeData *	self
        PREINIT:
        I32* temp;
        PPCODE:
        temp = PL_markstack_ptr++;
        destroy_typesafedata(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.455 second using v1.01-cache-2.11-cpan-71847e10f99 )