AMDAPlugin.cc 3.51 KB
// Standard libraries include files
//-----------------------------------------------------------------------------
#include <iostream>

// Include oriented definitions 
//-----------------------------------------------------------------------------

// Module Kernel include files
//-----------------------------------------------------------------------------

#include "ProcessStatisticFunctions.hh"
#include "ServicesServer.hh"
#include "PluginManager.hh"

using namespace AMDA::Parameters;

// Other modules include files
//-----------------------------------------------------------------------------

/**
   Retrieve the Plugin version we're going to expect
 */
extern "C" const char* getPluginVersion() {
    return "(Version)";
}

/**
   Tells us to register our functionality to an engine kernel
 */
extern "C" void registerPlugin(AMDA::Plugins::PluginManager & pm) {
    std::string pluginPath=pm.getCurrentPluginPath();
    ProcessFactory factProcessMinFunc = boost::factory<ProcessMinFunc*>();
    ServicesServer::getInstance()->addProcessFactory("min", factProcessMinFunc);
    ServicesServer::getInstance()->linkProcessWithPlugin("min", pluginPath);

    ProcessFactory factProcessMinSmFunc = boost::factory<ProcessMinSmFunc*>();
    ServicesServer::getInstance()->addProcessFactory("min_sm", factProcessMinSmFunc);
    ServicesServer::getInstance()->linkProcessWithPlugin("min_sm", pluginPath);

    ProcessFactory factProcessMaxFunc = boost::factory<ProcessMaxFunc*>();
    ServicesServer::getInstance()->addProcessFactory("max", factProcessMaxFunc);
    ServicesServer::getInstance()->linkProcessWithPlugin("max", pluginPath);

    ProcessFactory factProcessMaxSmFunc = boost::factory<ProcessMaxSmFunc*>();
    ServicesServer::getInstance()->addProcessFactory("max_sm", factProcessMaxSmFunc);
    ServicesServer::getInstance()->linkProcessWithPlugin("max_sm", pluginPath);

    ProcessFactory factProcessVarFunc = boost::factory<ProcessVarFunc*>();
    ServicesServer::getInstance()->addProcessFactory("var", factProcessVarFunc);
    ServicesServer::getInstance()->linkProcessWithPlugin("var", pluginPath);

    ProcessFactory factProcessVarSmFunc = boost::factory<ProcessVarSmFunc*>();
    ServicesServer::getInstance()->addProcessFactory("var_sm", factProcessVarSmFunc);
    ServicesServer::getInstance()->linkProcessWithPlugin("var_sm", pluginPath);

    ProcessFactory factProcessRmsFunc = boost::factory<ProcessRmsFunc*>();
    ServicesServer::getInstance()->addProcessFactory("rms", factProcessRmsFunc);
    ServicesServer::getInstance()->linkProcessWithPlugin("rms", pluginPath);

    ProcessFactory factProcessRmsSmFunc = boost::factory<ProcessRmsSmFunc*>();
    ServicesServer::getInstance()->addProcessFactory("rms_sm", factProcessRmsSmFunc);
    ServicesServer::getInstance()->linkProcessWithPlugin("rms_sm", pluginPath);

    ProcessFactory factProcessSkewFunc = boost::factory<ProcessSkewFunc*>();
    ServicesServer::getInstance()->addProcessFactory("skew", factProcessSkewFunc);
    ServicesServer::getInstance()->linkProcessWithPlugin("skew", pluginPath);

    ProcessFactory factProcessSkewSmFunc = boost::factory<ProcessSkewSmFunc*>();
    ServicesServer::getInstance()->addProcessFactory("skew_sm", factProcessSkewSmFunc);
    ServicesServer::getInstance()->linkProcessWithPlugin("skew_sm", pluginPath);

    ProcessFactory factProcessMedianFunc = boost::factory<ProcessMedianFunc*>();
    ServicesServer::getInstance()->addProcessFactory("median", factProcessMedianFunc);
    ServicesServer::getInstance()->linkProcessWithPlugin("median", pluginPath);
}