AMDAPlugin.cc 4.65 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, false);
    ServicesServer::getInstance()->linkProcessWithPlugin("min", pluginPath);

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

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

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

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

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

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

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

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

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

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

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

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

}