PhoenixSwarm  5.1.1
Library to ease communication between daemons
Loading...
Searching...
No Matches
DataFunctionCall_impl.h
Go to the documentation of this file.
1/***************************************
2 Auteur : Pierre Aubert
3 Mail : pierre.aubert@lapp.in2p3.fr
4 Licence : CeCILL-C
5****************************************/
6
7#ifndef __DATA_FUNCTION_CALL_H_IMPL__
8#define __DATA_FUNCTION_CALL_H_IMPL__
9
10#include "phoenix_type_stream.h"
11#include "DataFunctionCall.h"
13
14using namespace Swarm;
15
17
20template<typename _Data>
21DataFunctionCall<_Data>::DataFunctionCall(PUncastableBool (*function)(const _Data &), const PString & name)
22 :AbstractDataFunction(name), p_function(function)
23{
24 //The prototype is compose only of the given data which is normal for dispatching
25 setPrototype(phoenix_getTypeToStr<_Data>());
27}
28
30template<typename _Data>
34
36
40template<typename _Data>
41bool DataFunctionCall<_Data>::call(PLog & log, const Data & data){
42 _Data value(phoenix_getValueFromData<_Data>(data));
43 if(p_function(value) == UNCASTABLE_TRUE){
44 log.getLogDebug() << "DataFunctionCall<_Data>::call : function 'bool '"<<getName()<<"(const "<<getPrototype()<<" &) success" << std::endl;
45 return true;
46 }else{
47 log.getLogError() << "DataFunctionCall<_Data>::call : function 'bool '"<<getName()<<"(const "<<getPrototype()<<" &) failed" << std::endl;
48 return false;
49 }
50}
51
53template<typename _Data>
57
58
59
60
61
62#endif
63
64
65
const PString & getPrototype() const
Get the prototype of the current function.
void setPrototype(const PString &prototype)
Set the prototype of the current function.
const PString & getName() const
Name of the function.
AbstractDataFunction(const PString &name)
Default constructor of AbstractDataFunction.
DataFunctionCall(PUncastableBool(*function)(const _Data &), const PString &name)
Default constructor of DataFunctionCall.
virtual bool call(PLog &log, const Swarm::Data &data)
Call the function with parameter.
void initialisationDataFunctionCall()
Initialisation function of the class DataFunctionCall.
virtual ~DataFunctionCall()
Destructor of DataFunctionCall.
PUncastableBool(* p_function)(const _Data &)
Callable function of the DataFunctionCall.
Basic Data exchanged in the swarm.
T phoenix_getValueFromData(const Swarm::Data &data)
Get the value in the Data.