Tellurium Plugin C API  1.0.0
Plugin Framework for Tellurium
 All Data Structures Files Functions Variables Typedefs Enumerations Macros Groups Pages
Functions
telplugins_c_api.h File Reference

Plugins Core C-API Header. More...

#include "telplugins_exporter.h"
#include "telplugins_types.h"
#include "telplugins_utilities.h"
#include "teljobs_api.h"
#include "telplugins_properties_api.h"
#include "telplugins_telluriumdata_api.h"
#include "telplugins_logging_api.h"

Go to the source code of this file.

Functions

TELHandle tpCreatePluginManager (const char *pluginDir)
 Create a new instance of a plugin manager. More...
 
bool tpFreePluginManager (TELHandle handle)
 Free the plugin manager. A call to this function will also unload any loaded plugins. More...
 
bool tpLoadPlugins (TELHandle handle)
 Load plugins. The function will look in the default plugin folder for plugins, and load them. More...
 
char * tpGetPluginLoadErrors (TELHandle handle)
 Retrieve any errors that occured durig loading of plugins.
 
bool tpUnLoadPlugins (TELHandle handle)
 Unload plugins. More...
 
TELHandle tpLoadPlugin (TELHandle handle, const char *pluginName)
 Load a particular plugin. More...
 
bool tpUnLoadPlugin (TELHandle handle, TELHandle plugin)
 unload a particular plugin More...
 
int tpGetNumberOfPlugins (TELHandle handle)
 Get Number of loaded plugins. More...
 
char * tpGetPluginNames (TELHandle handle)
 Function to retrieve the names of currently loaded plugins. More...
 
char * tpGetPluginLibraryNames (TELHandle handle)
 Function to retrieve the library name of currently loaded plugins. More...
 
TELHandle tpGetFirstPlugin (TELHandle handle)
 getFirstPlugin retrieves the "first" plugin in the plugin managers internal list of plugins. This function is typically used together with the getNextPlugin and the getPreviousPlugin functions. More...
 
TELHandle tpGetNextPlugin (TELHandle handle)
 getNextPlugin retrieves the "next" plugin in the plugin managers internal list of plugins. This function is typically used together with the getFirstPlugin and getPreviousPlugin functions. More...
 
TELHandle tpGetPreviousPlugin (TELHandle handle)
 getPreviousPlugin retrieves the "previous" plugin in the plugin managers internal list of plugins. This function is typically used together with the getFirstPlugin and getNextPlugin functions. More...
 
TELHandle tpGetCurrentPlugin (TELHandle handle)
 getCurrentPlugin retrieves the "current" plugin in the plugin managers internal list of plugins. This function is typically used together with the getFirst, Next and getPreviousPlugin functions. More...
 
TELHandle tpGetPlugin (TELHandle handle, const char *pluginName)
 GetPluginHandle. More...
 
long tpGetPluginSharedLibHandle (TELHandle handle, TELHandle pluginHandle)
 Get a handle to a plugins shared library. More...
 
char * tpGetPluginName (TELHandle handle)
 Get the name of a Plugin. More...
 
char * tpGetPluginCategory (TELHandle handle)
 Return a plugins Category. A plugin developer may assign this information. More...
 
char * tpGetPluginDescription (TELHandle handle)
 Return a plugins description. This is assigned by the plugin developer. More...
 
char * tpGetPluginHint (TELHandle handle)
 Return a plugins Hint. This information is assigned by the plugin developer. More...
 
char * tpGetPluginInfo (TELHandle handle)
 Return information about a Plugin. More...
 
char * tpGetPluginAuthor (TELHandle handle)
 Return plugin author information. More...
 
char * tpGetPluginCopyright (TELHandle handle)
 Return plugin copyright information. More...
 
char * tpGetPluginVersion (TELHandle handle)
 Return plugin version information. More...
 
unsigned char * tpGetPluginManualAsPDF (TELHandle handle)
 Get Plugin manual as PDF. A plugin may embedd a help manual as a PDF. This function return such as a pointer to a string. Use the function getPluginManualNrOfBytes to get the exact length of this string. More...
 
unsigned int tpGetPluginManualNrOfBytes (TELHandle handle)
 Get the byte size for the PDF manual. More...
 
bool tpAssignRoadRunnerInstance (TELHandle pHandle, TELHandle rrHandle)
 Assign a roadrunner instance handle for the plugin to use. A plugin may use an externally created roadrunner instance for its internal work. More...
 
bool tpExecutePlugin (TELHandle handle)
 The executePlugin function is the function designated to fire of a Plugins "worker". What is done when this function is entered is plugin dependent. More...
 
bool tpExecutePluginEx (TELHandle handle, bool inAThread)
 The executePluginEx is similar to the executePlugin function, except it takes two extra arguments. More...
 
char * tpGetPluginStatus (TELHandle handle)
 Get some status of a plugin. See the plugins documentation on what to expect. More...
 
char * tpGetPluginResult (TELHandle handle)
 Returns a plugins result, as a string. See the plugins documentation on what to expect. More...
 
bool tpResetPlugin (TELHandle handle)
 Reset a Plugin. Plugin dependent. A reset function should bring the internal state of a plugin to a known state. More...
 
bool tpIsPluginWorking (TELHandle handle)
 check if plugin is actively working More...
 
void tpTerminateWork (TELHandle handle)
 Terminate any work that is in progress in a plugin. If the plugins worker is executed in a thread, this function will signal the internals of the plugin to terminate. More...
 
bool tpIsBeingTerminated (TELHandle handle)
 Check if the work of a plugin is currently being terminated. More...
 
bool tpWasTerminated (TELHandle handle)
 wasTerminated. query a plugin if work was terminated before completion More...
 
bool tpAssignOnStartedEvent (TELHandle handle, PluginEvent cb, void *userData1, void *userData2)
 Assign event function fired when a plugin starts its work. More...
 
bool tpAssignOnProgressEvent (TELHandle handle, PluginEvent cb, void *userData1, void *userData2)
 Assign event function fired as a plugin progresses. More...
 
bool tpAssignOnFinishedEvent (TELHandle handle, PluginEvent cb, void *userData1, void *userData2)
 Assign event function fired when a plugin finishes its work. More...
 
TELHandle tpGetRoadRunnerHandleFromPlugin (TELHandle handle)
 Get roadrunner instance handle from plugin. More...
 
char * tpGetPluginPropertiesAsXML (TELHandle handle)
 Get a Plugins Propertiese as an xml document. The string returned from this function is formated as xml. More...
 
TELHandle tpGetPluginProperties (TELHandle handle)
 Get a handle to a plugins properties. More...
 
char * tpGetListOfPluginPropertyNames (TELHandle handle)
 Get a list of a plugins property names, as a string. Space being the delimiter. More...
 
TELHandle tpGetPluginProperty (TELHandle handle, const char *propertyName)
 Get a handle to a property. More...
 
TELHandle tpGetPluginPropertyValueHandle (TELHandle handle, const char *propertyName)
 Get a handle to a property value. More...
 
char * tpGetPluginPropertyValueAsString (TELHandle handle, const char *propertyName)
 Get a property value as string. More...
 
bool tpSetPluginProperty (TELHandle handle, const char *propertyName, const char *value)
 Set the value of a PluginProperty by a string. More...
 
char * tpGetLastError ()
 Return last API error. More...
 
bool tpFreeText (char *text)
 Free char* generated by library routines.
 
char * tpGetVersion ()
 Get the current version of the Plugis API, as a string.
 
char * tpGetCopyright ()
 Get the copyright of the current Plugis API, as a string.
 
TELHandle tpRegisterHandle (TELHandle handle, char *name)
 Register a handle to be used with the API. More...
 
bool tpUnRegisterHandle (TELHandle handle)
 UnRegister a handle. More...
 

Detailed Description

Plugins Core C-API Header.

Author
Totte Karlsson & Herbert M Sauro

<-----------------------------------------------------------— This file is part of cRoadRunner. See http://code.google.com/p/roadrunnerlib for more details.

Copyright (C) 2012-2013 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;