PhoenixSwarm  3.5.0
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
15
18template<typename _Data>
19DataFunctionCall<_Data>::DataFunctionCall(PUncastableBool (*function)(const _Data &), const PString & name)
20 :AbstractDataFunction(name), p_function(function)
21{
22 //The prototype is compose only of the given data which is normal for dispatching
23 setPrototype(phoenix_getTypeToStr<_Data>());
25}
26
28template<typename _Data>
32
34
38template<typename _Data>
39bool DataFunctionCall<_Data>::call(PLog & log, const Data & data){
40 _Data value(phoenix_getValueFromData<_Data>(data));
41 if(p_function(value) == UNCASTABLE_TRUE){
42 log.getLogDebug() << "DataFunctionCall<_Data>::call : function 'bool '"<<getName()<<"(const "<<getPrototype()<<" &) success" << std::endl;
43 return true;
44 }else{
45 log.getLogError() << "DataFunctionCall<_Data>::call : function 'bool '"<<getName()<<"(const "<<getPrototype()<<" &) failed" << std::endl;
46 return false;
47 }
48}
49
51template<typename _Data>
55
56
57
58
59
60#endif
61
62
63
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.
PUncastableBool(* p_function)(const _Data &)
Callable function of the DataFunctionCall.
virtual ~DataFunctionCall()
Destructor of DataFunctionCall.
virtual bool call(PLog &log, const Data &data)
Call the function with parameter.
void initialisationDataFunctionCall()
Initialisation function of the class DataFunctionCall.
DataFunctionCall(PUncastableBool(*function)(const _Data &), const PString &name)
Default constructor of DataFunctionCall.
Basic Data exchanged in the swarm.
T phoenix_getValueFromData(const Data &data)
Get the value in the Data.