Bio-PhyloXS
view release on metacpan or search on metacpan
lib/Bio/PhyloXS/Mediators/TaxaMediator.xs view on Meta::CPAN
#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"
#include "src/TaxaMediator.h"
# include "src/types.h"
TaxaMediator* create(const char* classname) {
static TaxaMediator* singleton = NULL;
if ( singleton == NULL ) {
Newx(singleton,1,TaxaMediator);
initialize_taxamediator(singleton);
}
return singleton;
}
void initialize_taxamediator(TaxaMediator* self) {
self->object = newHV();
self->id_by_type = newHV();
self->one_to_one = newHV();
self->one_to_many = newHV();
((Identifiable*)self)->_type = _NONE_;
((Identifiable*)self)->_container = _NONE_;
((Identifiable*)self)->_index = _TAXAMEDIATOR_IDX_;
}
//TaxaMediator* register_object( TaxaMediator* self, Identifiable* object );
//TaxaMediator* unregister_object( TaxaMediator* self, Identifiable* object );
//TaxaMediator* set_link( TaxaMediator* self, ... );
//TaxaMediator* get_link( TaxaMediator* self, ... );
//TaxaMediator* remove_link( TaxaMediator* self, ... );
MODULE = Bio::PhyloXS::Mediators::TaxaMediator PACKAGE = Bio::PhyloXS::Mediators::TaxaMediator
PROTOTYPES: DISABLE
TaxaMediator *
create (classname)
const char * classname
void
initialize_taxamediator (self)
TaxaMediator * self
PREINIT:
I32* temp;
PPCODE:
temp = PL_markstack_ptr++;
initialize_taxamediator(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.986 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )