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

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

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

#include "ProcessStatisticFunctions.hh"
#include "CorrelationProcess.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);

    ProcessFactory factCovarianceCorrelation = boost::factory<CovarianceProcess*>();
    ServicesServer::getInstance()->addProcessFactory("covariance", factCovarianceCorrelation);
    ServicesServer::getInstance()->linkProcessWithPlugin("covariance", pluginPath);

    ProcessFactory factPearsonCorrelation = boost::factory<PearsonProcess*>();
    ServicesServer::getInstance()->addProcessFactory("pearson", factPearsonCorrelation);
    ServicesServer::getInstance()->linkProcessWithPlugin("pearson", pluginPath);
    
    ProcessFactory factKendallCorrelation = boost::factory<KendallProcess*>();
    ServicesServer::getInstance()->addProcessFactory("kendall", factKendallCorrelation);
    ServicesServer::getInstance()->linkProcessWithPlugin("kendall", pluginPath);
    
    ProcessFactory factSpearmanCorrelation = boost::factory<SpearmanProcess*>();
    ServicesServer::getInstance()->addProcessFactory("spearman", factSpearmanCorrelation);
    ServicesServer::getInstance()->linkProcessWithPlugin("spearman", pluginPath);

}