iLab Neuromorphic Robotics Toolkit  0.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ParameterHelpers.H File Reference

Author
Laurent Itti

License

// ////////////////////////////////////////////////////////////////////////
//              The iLab Neuromorphic Robotics Toolkit (NRT)             //
// Copyright 2010-2012 by the University of Southern California (USC)    //
//                          and the iLab at USC.                         //
//                                                                       //
//                iLab - University of Southern California               //
//                Hedco Neurociences Building, Room HNB-10               //
//                    Los Angeles, Ca 90089-2520 - USA                   //
//                                                                       //
//      See http://ilab.usc.edu for information about this project.      //
// ////////////////////////////////////////////////////////////////////////
// This file is part of The iLab Neuromorphic Robotics Toolkit.          //
//                                                                       //
// The iLab Neuromorphic Robotics Toolkit is free software: you can      //
// redistribute it and/or modify it under the terms of the GNU General   //
// Public License as published by the Free Software Foundation, either   //
// version 3 of the License, or (at your option) any later version.      //
//                                                                       //
// The iLab Neuromorphic Robotics Toolkit is distributed in the hope     //
// that it will be useful, but WITHOUT ANY WARRANTY; without even the    //
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR       //
// PURPOSE.  See the GNU General Public License for more details.        //
//                                                                       //
// You should have received a copy of the GNU General Public License     //
// along with The iLab Neuromorphic Robotics Toolkit.  If not, see       //
// <http://www.gnu.org/licenses/>.                                       //
// ////////////////////////////////////////////////////////////////////////

Definition in file ParameterHelpers.H.

Go to the source code of this file.

Classes

class  nrt::Parameter< Params >
 Generic variadic template class template definition for Component Parameters. More...
 
class  nrt::Parameter<>
 Special case to terminate variadic template inheritance recursion. More...
 

Namespaces

 nrt
 Reserved namespace for NRT core classes and functions.
 

Macros

#define NRT_DECLARE_PARAMETER(ParamName, ParamType,...)
 
#define NRT_DECLARE_PARAMETER_WITH_CALLBACK(ParamName, ParamType,...)
 

Macro Definition Documentation

#define NRT_DECLARE_PARAMETER (   ParamName,
  ParamType,
  ... 
)
Value:
struct ParamName : public virtual nrt::ParameterRegistry, public nrt::ParameterCore<ParamType> \
{ \
typedef ParamType type; \
ParamName() : nrt::ParameterCore<ParamType>(nrt::ParameterDef<ParamType>(#ParamName, __VA_ARGS__)) \
virtual ~ParamName() \
};

Definition at line 55 of file ParameterHelpers.H.

#define NRT_DECLARE_PARAMETER_WITH_CALLBACK (   ParamName,
  ParamType,
  ... 
)
Value:
struct ParamName : public virtual nrt::ParameterRegistry, public nrt::ParameterCore<ParamType> \
{ \
typedef ParamType type; \
virtual void onParamChange(ParamName const & param, ParamType const & newval) = 0; \
ParamName() : nrt::ParameterCore<ParamType>(nrt::ParameterDef<ParamType>(#ParamName, __VA_ARGS__)) \
{ setCallback([this](ParamType const & newval) { this->onParamChange(*this, newval); }); \
nrt::ParameterRegistry::addParameter(this); } \
virtual ~ParamName() \
};

Definition at line 66 of file ParameterHelpers.H.