AMDAPlugin.cc 2.4 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 "StatisticNode.hh"

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

// 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/statistic",AMDA::XMLConfigurator::NodeCfgSPtr(new StatisticNode()));
	}
                   ServicesServer::getInstance()->linkParamOutputsWithPlugin("statistic", 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());
	}
}
*/