45 lines
810 B
C++
45 lines
810 B
C++
/*
|
||
* ApplyParameter.hpp
|
||
*
|
||
* Created on: 7 апр. 2021 г.
|
||
* Author: titov
|
||
*/
|
||
|
||
#ifndef UMLIBRARY_SYSTEMIC_APPLYPARAMETER_HPP_
|
||
#define UMLIBRARY_SYSTEMIC_APPLYPARAMETER_HPP_
|
||
|
||
#include "IFunctor.hh"
|
||
#include "CustomParameters.hpp"
|
||
|
||
namespace systemic {
|
||
|
||
template<typename Object>
|
||
class ApplyParameter : public IFunctor<void> {
|
||
|
||
Object & object;
|
||
Parameter<Object> parameter;
|
||
|
||
public:
|
||
void operator()();
|
||
|
||
ApplyParameter( Object & object, Parameter<Object> parameter ) :
|
||
object(object), parameter(parameter) {}
|
||
};
|
||
|
||
|
||
}
|
||
|
||
template<typename Object>
|
||
inline void systemic::ApplyParameter<Object>::operator ()() {
|
||
|
||
LocalSetting<Object> ls( parameter );
|
||
|
||
if( ls.setting.isValid() )
|
||
object.configure( ls.setting );
|
||
|
||
}
|
||
|
||
|
||
|
||
#endif /* UMLIBRARY_SYSTEMIC_APPLYPARAMETER_HPP_ */
|