AMDAPlugin.cc 6.85 KB
/* -*- Base: 10 ; Mode: C++ -*- */
/*------------------------------------------------------------------------
 **	
                                FOST project
 **
--------------------------------------------------------------------------
--------------------------------------------------------------------------
                                FILE LOG
                $Revision: 1.3 $    $Date: 2012-06-15 13:04:42 $
--------------------------------------------------------------------------
CREATION
        V.SAC

SUMMARY

DESCRIPTION

        The main function performs the following actions :
        <ul>
        <li>
        </ul>

------------------------------------------------------------------------*/

//=============================================================================
// 
// History of code
//
// creation 
//
// modification 
//=============================================================================

/**

 */
//=============================================================================
// Include section
//=============================================================================

// Standard libraries include files
//-----------------------------------------------------------------------------
#include <iostream>

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

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

#include "ServicesServer.hh"
#include "PluginManager.hh"
#include "MinMaxMeanStatisticProcess.hh"
#include "MinVarStatisticProcess.hh"
#include "CountStatisticProcess.hh"
#include "CountStatistic.hh"
#include "CountBoolStatisticProcess.hh"
#include "CountBoolStatistic.hh"

using namespace AMDA::Parameters;

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



//=============================================================================
// Methods of Class AMDAPlugin
//=============================================================================

/**
   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();
    StatisticProcessFactory factMinProcess = boost::factory<AMDA::Statistic::MinMaxMean::MinStatisticProcess*>();
    ServicesServer::getInstance()->addStatisticProcessFactory("min", factMinProcess);
    ServicesServer::getInstance()->linkStatisticProcessWithPlugin("min", pluginPath);

    StatisticProcessFactory factMaxProcess = boost::factory<AMDA::Statistic::MinMaxMean::MaxStatisticProcess*>();
    ServicesServer::getInstance()->addStatisticProcessFactory("max", factMaxProcess);
    ServicesServer::getInstance()->linkStatisticProcessWithPlugin("max", pluginPath);

    StatisticProcessFactory factMeanProcess = boost::factory<AMDA::Statistic::MinMaxMean::MeanStatisticProcess*>();
    ServicesServer::getInstance()->addStatisticProcessFactory("mean", factMeanProcess);
    ServicesServer::getInstance()->linkStatisticProcessWithPlugin("mean", pluginPath);

    StatisticProcessFactory factRMSProcess = boost::factory<AMDA::Statistic::MinMaxMean::RMSStatisticProcess*>();
    ServicesServer::getInstance()->addStatisticProcessFactory("RMS", factRMSProcess);
    ServicesServer::getInstance()->linkStatisticProcessWithPlugin("RMS", pluginPath);

    StatisticProcessFactory factMinVarProcess = boost::factory<AMDA::Statistic::MinVar::MinVarStatisticProcess*>();
    ServicesServer::getInstance()->addStatisticProcessFactory("minvar", factMinVarProcess);
    ServicesServer::getInstance()->linkStatisticProcessWithPlugin("minvar", pluginPath);

    StatisticProcessFactory factMedianProcess = boost::factory<AMDA::Statistic::MinMaxMean::MedianStatisticProcess*>();
    ServicesServer::getInstance()->addStatisticProcessFactory("median", factMedianProcess);
    ServicesServer::getInstance()->linkStatisticProcessWithPlugin("median", pluginPath);

    StatisticProcessFactory factVarianceProcess = boost::factory<AMDA::Statistic::MinMaxMean::VarianceStatisticProcess*>();
    ServicesServer::getInstance()->addStatisticProcessFactory("variance", factVarianceProcess);
    ServicesServer::getInstance()->linkStatisticProcessWithPlugin("variance", pluginPath);

    StatisticProcessFactory factSkewnessProcess = boost::factory<AMDA::Statistic::MinMaxMean::SkewnessStatisticProcess*>();
    ServicesServer::getInstance()->addStatisticProcessFactory("skewness", factSkewnessProcess);
    ServicesServer::getInstance()->linkStatisticProcessWithPlugin("skewness", pluginPath);

    StatisticProcessFactory factKurtosisProcess = boost::factory<AMDA::Statistic::MinMaxMean::KurtosisStatisticProcess*>();
    ServicesServer::getInstance()->addStatisticProcessFactory("kurtosis", factKurtosisProcess);
    ServicesServer::getInstance()->linkStatisticProcessWithPlugin("kurtosis", pluginPath);

    StatisticProcessFactory factCountProcess = boost::factory<AMDA::Statistic::Count::CountStatisticProcess*>();
    ServicesServer::getInstance()->addStatisticProcessFactory("count", factCountProcess);
    ServicesServer::getInstance()->linkStatisticProcessWithPlugin("count", pluginPath);

    StatisticProcessFactory factCountNotNanProcess = boost::factory<AMDA::Statistic::Count::CountNotNanStatisticProcess*>();
    ServicesServer::getInstance()->addStatisticProcessFactory("countNotNan", factCountNotNanProcess);
    ServicesServer::getInstance()->linkStatisticProcessWithPlugin("countNotNan", pluginPath);

    StatisticProcessFactory factBoolProcess = boost::factory<AMDA::Statistic::CountBool::CountBoolStatisticProcess*>();
    ServicesServer::getInstance()->addStatisticProcessFactory("countTrue", factBoolProcess);
    ServicesServer::getInstance()->linkStatisticProcessWithPlugin("countTrue", pluginPath);
    
     StatisticProcessFactory factFirstProcess = boost::factory<AMDA::Statistic::MinMaxMean::FirstValueStatisticProcess*>();
    ServicesServer::getInstance()->addStatisticProcessFactory("firstValue", factFirstProcess);
    ServicesServer::getInstance()->linkStatisticProcessWithPlugin("firstValue", pluginPath);
    
     StatisticProcessFactory factMiddleProcess = boost::factory<AMDA::Statistic::MinMaxMean::MiddleValueStatisticProcess*>();
    ServicesServer::getInstance()->addStatisticProcessFactory("middleIntervalValue", factMiddleProcess);
    ServicesServer::getInstance()->linkStatisticProcessWithPlugin("middleIntervalValue", pluginPath);
    
      StatisticProcessFactory factLastProcess = boost::factory<AMDA::Statistic::MinMaxMean::LastValueStatisticProcess*>();
    ServicesServer::getInstance()->addStatisticProcessFactory("lastValue", factLastProcess);
    ServicesServer::getInstance()->linkStatisticProcessWithPlugin("lastValue", pluginPath);
    
}