libRoadRunner Plugin C API  1.0.0
Plugin Framework for libRoadRunner
 All Data Structures Files Functions Variables Typedefs Groups Pages
Plugin framework for libRoadRunner

Introduction

RoadRunner is a SBML compliant high performance and portable simulation engine for systems and synthetic biology.

The plugin framework documented here, is available to assist in using and creating extensions (Plugins) to the main RoadRunner Core. A simple example (a C++ program using RoadRunners C API's) on how to get access to plugins is shown below.

#include <iostream>
#include "rrc_api.h"
#include "rrp_api.h"
using namespace std;
using namespace rrc;
using namespace rrp;
int main()
{
loadPlugins(pmHandle);
cout<<"Nr of loaded plugins:" << getNumberOfPlugins(pmHandle)<<endl;
RRStringArrayPtr names = getPluginNames(pmHandle);
if(!names)
{
cout<<"No plugins loaded ..";
return 0;
}
for(int i = 0; i < names->Count; i++)
cout<<"\n";
cout<<"Plugin name: " <<names->String[i]<<endl;
//Get a handle to a plugin
RRPluginHandle plHandle = getPlugin(pmHandle, names->String[i]);
cout <<getPluginInfo(plHandle)<<endl;
}
//Cleanup.
freeStringArray(names);
unLoadPlugins(pmHandle);
freePluginManager(pmHandle);
return 0;
}

Overview

The libRoadRunner Plugin API is centered around three important concepts:

How to use plugins

A typical use case of the Plugin API may be as follows:

Plugin usage scenario

  1. Client creates a PluginManager.
  2. Client load plugins using the Plugin Manager.
  3. Client get a handle to a plugin.
  4. Client get a handle to a specific parameter in the plugin.
  5. Client set the value of the parameter.
  6. Client excutes the plugin.
  7. Client retrieve the value of a plugins parameter, e.g. a "result" parameter.
Todo:
Fill out this section

How to write plugins

The current plugin framework is a 'minimalistic' API. It is designed to give a plugin developer maximum amount of room for interacting with the RoadRunner core, and at the same time, a minimum of requirements and abstract concepts getting in the way of designing a plugin.

This section will show you how to get on the way with your first plugin.

Todo:
Fill out this section

Installation

Installation documentation is provided on the RoadRunner homepage: http://www.libroadrunner.org

License

Copyright (C) 2012 University of Washington, Seattle, WA, USA

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

In plain english this means:

You CAN freely download and use this software, in whole or in part, for personal, company internal, or commercial purposes;

You CAN use the software in packages or distributions that you create.

You SHOULD include a copy of the license in any redistribution you may make;

You are NOT required include the source of software, or of any modifications you may have made to it, in any redistribution you may assemble that includes it.

YOU CANNOT:

redistribute any piece of this software without proper attribution;