AMDAPlugin.cc 2.72 KB
/*
 * AMDAPlugin.cc
 *
 *  Created on: 22 août 2013
 *      Author: CS
 */

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

// Include oriented definitions 
//-----------------------------------------------------------------------------
#include <boost/functional/value_factory.hpp>

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

// Parameters module include
#include "ServicesServer.hh"
#include "PluginManager.hh"

// XMLRequest module include
#include "XMLRequestParser.hh"
#include "XMLParameterConfigurator.hh"

#include "DataMiningNode.hh"

using namespace AMDA::Parameters;
using namespace AMDA::XMLRequest;
using namespace AMDA::XMLParameterConfigurator;
using namespace AMDA::ParamOutputImpl::DataMining;

// 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)
{
	AMDA::XMLRequest::XMLRequestParser* lXMLRequestParser = ServicesServer::getInstance()->getService<AMDA::XMLRequest::XMLRequestParser*>();
	if (lXMLRequestParser) {
		lXMLRequestParser->addNodeParser("request/outputs/dataMining",AMDA::XMLConfigurator::NodeCfgSPtr(new DataMiningNode(ParamOutputDataMining::PRIORITY::REQUEST)));
	}

	XMLParameterConfigurator* lXMLConf =  dynamic_cast<XMLParameterConfigurator*>(ServicesServer::getInstance()->getConfigurator().get());
	lXMLConf->addNodeParser("param/output/dataMining",AMDA::XMLConfigurator::NodeCfgSPtr(new DataMiningNode(ParamOutputDataMining::PRIORITY::PARAM)));
                    ServicesServer::getInstance()->linkParamOutputsWithPlugin("dataMining", pm.getCurrentPluginPath());
}

/**
   Tells us to unregister our functionality to an engine kernel
*/
/*
extern "C" void unregisterPlugin()
{
	//ParamOutputFactory fact = boost::factory<ParamOutputASCIIFile*>();
	//ServicesServer::getInstance()->addParamOutputFactory(std::string("ASCII_FILE"),boost::bind(boost::value_factory<ParamOutputASCIIFile>(),_1));
	AMDA::XMLRequest::XMLRequestParser* lXMLRequestParser = ServicesServer::getInstance()->getService<AMDA::XMLRequest::XMLRequestParser*>();
	if (lXMLRequestParser) {
		lXMLRequestParser->addNodeParser("request/outputs/intervalTrue",AMDA::XMLConfigurator::NodeCfgSPtr());
	}
}
*/