signal-cast-helper.h File Reference
#include <map>
#include <typeinfo>
#include <iostream>
#include <vector>
#include <boost/any.hpp>
#include <boost/format.hpp>
#include <boost/function/function1.hpp>
#include <boost/function/function2.hpp>
#include <boost/lexical_cast.hpp>
#include <boost/tuple/tuple.hpp>
#include <dynamic-graph/dynamic-graph-api.h>
#include "dynamic-graph/exception-signal.h"
#include "dynamic-graph/signal-caster.h"
Include dependency graph for signal-cast-helper.h:

Classes

class  dynamicgraph::DefaultCastRegisterer< T >
 This class can be used to register default casts, i.e. More...
class  dynamicgraph::SignalCast< T >

Namespaces

namespace  dynamicgraph
 

WIN32.


Defines

#define DG_SIGNAL_CAST_DECLARATION(TYPE)
#define DG_SIGNAL_CAST_DECLARATION_NAMED(TYPE, NAME)
#define DG_SIGNAL_CAST_FULL_DEFINITION(TYPE, CAST, DISP, TRACE)
#define DG_SIGNAL_CAST_DEFINITION_HPP(TYPE)   DG_SIGNAL_CAST_FULL_DEFINITION(TYPE,;,;,{ disp(t,os); })
#define DG_SIGNAL_CAST_DEFINITION_TRACE_HPP(TYPE, TRACE)
#define DG_SIGNAL_CAST_DEFINITION(TYPE)
#define DG_SIGNAL_CAST_DEFINITION_TRACE(TYPE)
#define DG_ADD_CASTER(TYPE, ID)

Define Documentation

#define DG_ADD_CASTER (   TYPE,
  ID 
)
Value:
::dynamicgraph::SignalCastRegisterer sotCastRegisterer_##ID     \
    (typeid(TYPE),                                                        \
     SignalCast<TYPE>::disp_,                                             \
     SignalCast<TYPE>::cast_,                                             \
     SignalCast<TYPE>::trace_)
#define DG_SIGNAL_CAST_DECLARATION (   TYPE)
Value:
::dynamicgraph::SignalCastRegisterer sotCastRegisterer_##TYPE \
    (typeid(TYPE),            \
     SignalCast<TYPE>::disp_,         \
     SignalCast<TYPE>::cast_,         \
     SignalCast<TYPE>::trace_)
#define DG_SIGNAL_CAST_DECLARATION_NAMED (   TYPE,
  NAME 
)
Value:
::dynamicgraph::SignalCastRegisterer sotCastRegisterer_##NAME   \
    (typeid(TYPE),              \
     SignalCast<TYPE>::disp_,           \
     SignalCast<TYPE>::cast_,           \
     SignalCast<TYPE>::trace_)
#define DG_SIGNAL_CAST_DEFINITION (   TYPE)
Value:
DG_SIGNAL_CAST_FULL_DEFINITION(TYPE,                                    \
 {TYPE res; iss >> res; return res; },                                   \
 { os << t <<std::endl; },                                               \
 { disp(t,os); })
#define DG_SIGNAL_CAST_DEFINITION_HPP (   TYPE)    DG_SIGNAL_CAST_FULL_DEFINITION(TYPE,;,;,{ disp(t,os); })
#define DG_SIGNAL_CAST_DEFINITION_TRACE (   TYPE)
Value:
DG_SIGNAL_CAST_FULL_DEFINITION(TYPE,                                    \
 {TYPE res; iss >> res; return res; },                                   \
 { os << t <<std::endl; },                                               \
 ;)
#define DG_SIGNAL_CAST_DEFINITION_TRACE_HPP (   TYPE,
  TRACE 
)
Value:
DG_SIGNAL_CAST_FULL_DEFINITION(TYPE,                                    \
 {TYPE res; iss >> res; return res; },                                   \
 { os << t <<std::endl; },                                               \
 TRACE )
#define DG_SIGNAL_CAST_FULL_DEFINITION (   TYPE,
  CAST,
  DISP,
  TRACE 
)
Value:
template<>                                                                            \
 class SignalCast<TYPE>                                       \
{                                                                                     \
public:                                                                               \
        static TYPE cast( std::istringstream& iss )         CAST                      \
  static void disp( TYPE const& t,std::ostream& os )  DISP                \
  static void trace( TYPE const& t,std::ostream& os ) TRACE                     \
public:                                                                     \
  static boost::any cast_( std::istringstream& stringValue ) {                  \
      return boost::any_cast<TYPE>(cast(stringValue));                  \
  }                                                                             \
  static void disp_( const boost::any& t,std::ostream& os )  {              \
    disp(boost::any_cast<TYPE>(t), os);                       \
  }                                 \
  static void trace_( const boost::any& t,std::ostream& os ) {              \
      trace(boost::any_cast<TYPE>(t),os);                 \
  }                               \
}