/* * Initialization function of multi extension module which is automatically invoked * by SBMLExtensionRegister class before main() function invoked. */ void MultiExtension::init() { //---------------------------------------------------------------- // // 1. Check if the multi package has already been registered // //---------------------------------------------------------------- if (SBMLExtensionRegistry::getInstance().isRegistered(getPackageName())) { // do nothing return; } //---------------------------------------------------------------- // // 2. Creates an SBMLExtension derived object // //---------------------------------------------------------------- MultiExtension multiExtension; //---------------------------------------------------------------- // // 3. Creates the SBasePlugins required by this package // //---------------------------------------------------------------- std::vector<std::string> packageURIs; packageURIs.push_back(getXmlnsL3V1V1()); SBaseExtensionPoint sbmldocExtPoint("core", SBML_DOCUMENT); SBaseExtensionPoint modelExtPoint("core", SBML_MODEL); SBaseExtensionPoint compartmentExtPoint("core", SBML_COMPARTMENT); SBaseExtensionPoint speciesExtPoint("core", SBML_SPECIES); SBaseExtensionPoint reactionExtPoint("core", SBML_REACTION); SBaseExtensionPoint simplespeciesreferenceExtPoint("core", SBML_MODIFIER_SPECIES_REFERENCE); SBaseExtensionPoint speciesreferenceExtPoint("core", SBML_SPECIES_REFERENCE); SBasePluginCreator<MultiSBMLDocumentPlugin, MultiExtension> sbmldocPluginCreator(sbmldocExtPoint, packageURIs); SBasePluginCreator<MultiModelPlugin, MultiExtension> modelPluginCreator(modelExtPoint, packageURIs); SBasePluginCreator<MultiCompartmentPlugin, MultiExtension> compartmentPluginCreator(compartmentExtPoint, packageURIs); SBasePluginCreator<MultiSpeciesPlugin, MultiExtension> speciesPluginCreator(speciesExtPoint, packageURIs); SBasePluginCreator<MultiReactionPlugin, MultiExtension> reactionPluginCreator(reactionExtPoint, packageURIs); SBasePluginCreator<MultiSimpleSpeciesReferencePlugin, MultiExtension> simplespeciesreferencePluginCreator(simplespeciesreferenceExtPoint, packageURIs); SBasePluginCreator<MultiSpeciesReferencePlugin, MultiExtension> speciesreferencePluginCreator(speciesreferenceExtPoint, packageURIs); //---------------------------------------------------------------- // // 4. Adds the creator objects to the extension // //---------------------------------------------------------------- multiExtension.addSBasePluginCreator(&sbmldocPluginCreator); multiExtension.addSBasePluginCreator(&modelPluginCreator); multiExtension.addSBasePluginCreator(&compartmentPluginCreator); multiExtension.addSBasePluginCreator(&speciesPluginCreator); multiExtension.addSBasePluginCreator(&reactionPluginCreator); multiExtension.addSBasePluginCreator(&simplespeciesreferencePluginCreator); multiExtension.addSBasePluginCreator(&speciesreferencePluginCreator); multiExtension.setASTBasePlugin(new MultiASTPlugin(getXmlnsL3V1V1())); //---------------------------------------------------------------- // // 5. Register the object with the registry // //---------------------------------------------------------------- int result = SBMLExtensionRegistry::getInstance().addExtension(&multiExtension); if (result != LIBSBML_OPERATION_SUCCESS) { std::cerr << "[Error] MultiExtension::init() failed." << std::endl; } }
/* * Initialization function of spatial extension module which is automatically invoked * by SBMLExtensionRegister class before main() function invoked. */ void SpatialExtension::init() { //---------------------------------------------------------------- // // 1. Check if the spatial package has already been registered // //---------------------------------------------------------------- if (SBMLExtensionRegistry::getInstance().isRegistered(getPackageName())) { // do nothing return; } //---------------------------------------------------------------- // // 2. Creates an SBMLExtension derived object // //---------------------------------------------------------------- SpatialExtension spatialExtension; //---------------------------------------------------------------- // // 3. Creates the SBasePlugins required by this package // //---------------------------------------------------------------- std::vector<std::string> packageURIs; packageURIs.push_back(getXmlnsL3V1V1()); SBaseExtensionPoint sbmldocExtPoint("core", SBML_DOCUMENT); SBaseExtensionPoint modelExtPoint("core", SBML_MODEL); SBaseExtensionPoint compartmentExtPoint("core", SBML_COMPARTMENT); SBaseExtensionPoint speciesExtPoint("core", SBML_SPECIES); SBaseExtensionPoint parameterExtPoint("core", SBML_PARAMETER); SBaseExtensionPoint reactionExtPoint("core", SBML_REACTION); SBasePluginCreator<SpatialSBMLDocumentPlugin, SpatialExtension> sbmldocPluginCreator(sbmldocExtPoint, packageURIs); SBasePluginCreator<SpatialModelPlugin, SpatialExtension> modelPluginCreator(modelExtPoint, packageURIs); SBasePluginCreator<SpatialCompartmentPlugin, SpatialExtension> compartmentPluginCreator(compartmentExtPoint, packageURIs); SBasePluginCreator<SpatialSpeciesPlugin, SpatialExtension> speciesPluginCreator(speciesExtPoint, packageURIs); SBasePluginCreator<SpatialParameterPlugin, SpatialExtension> parameterPluginCreator(parameterExtPoint, packageURIs); SBasePluginCreator<SpatialReactionPlugin, SpatialExtension> reactionPluginCreator(reactionExtPoint, packageURIs); //---------------------------------------------------------------- // // 4. Adds the creator objects to the extension // //---------------------------------------------------------------- spatialExtension.addSBasePluginCreator(&sbmldocPluginCreator); spatialExtension.addSBasePluginCreator(&modelPluginCreator); spatialExtension.addSBasePluginCreator(&compartmentPluginCreator); spatialExtension.addSBasePluginCreator(&speciesPluginCreator); spatialExtension.addSBasePluginCreator(¶meterPluginCreator); spatialExtension.addSBasePluginCreator(&reactionPluginCreator); //---------------------------------------------------------------- // // 5. Register the object with the registry // //---------------------------------------------------------------- int result = SBMLExtensionRegistry::getInstance().addExtension(&spatialExtension); if (result != LIBSBML_OPERATION_SUCCESS) { std::cerr << "[Error] SpatialExtension::init() failed." << std::endl; } }