makecmd.h File Reference

#include "nub/ref.h"
#include "tcl/argspec.h"
#include "tcl/conversions.h"
#include "tcl/command.h"
#include "tcl/commandgroup.h"
#include "tcl/vecdispatch.h"
#include "rutz/functors.h"
#include "rutz/shared_ptr.h"

Include dependency graph for makecmd.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  rutz
namespace  tcl

Classes

struct  rutz::rutz::func_traits< mem_functor< MF > >
 Specialization of func_traits for mem_functor. More...
class  tcl::func_wrapper< N, R, Func >
 Generic tcl::func_wrapper definition. More...
struct  rutz::rutz::func_traits< tcl::func_wrapper< N, F, Func > >
 Specialization of func_traits for tcl::func_wrapper. More...
struct  tcl::tcl::func_wrapper< 0, R, Func >
 tcl::func_wrapper<0> -- zero arguments More...
struct  tcl::tcl::func_wrapper< 1, R, Func >
 tcl::func_wrapper<1> -- one argument More...
struct  tcl::tcl::func_wrapper< 2, R, Func >
 tcl::func_wrapper<2> -- two arguments More...
struct  tcl::tcl::func_wrapper< 3, R, Func >
 tcl::func_wrapper<3> -- three arguments More...
struct  tcl::tcl::func_wrapper< 4, R, Func >
 tcl::func_wrapper<4> -- four arguments More...
struct  tcl::tcl::func_wrapper< 5, R, Func >
 tcl::func_wrapper<5> -- five arguments More...
struct  tcl::tcl::func_wrapper< 6, R, Func >
 tcl::func_wrapper<6> -- six arguments More...
struct  tcl::tcl::func_wrapper< 7, R, Func >
 tcl::func_wrapper<7> -- seven arguments More...
struct  tcl::tcl::func_wrapper< 8, R, Func >
 tcl::func_wrapper<8> -- eight arguments More...
class  tcl::generic_function< R, func_wrapper >
 generic_function implements tcl::command using a held functor. More...
class  tcl::tcl::generic_function< void, func_wrapper >
 Specialization for functors with void return types. More...

Defines

#define EXTRACT_PARAM(N)

Functions

template<class T>
nub::ref< T > tcl::aux_convert_to (Tcl_Obj *obj, nub::ref< T > *)
 Overload of aux_convert_to for nub::ref.
template<class T>
tcl::obj tcl::aux_convert_from (nub::ref< T > obj)
 Overload of aux_convert_from for nub::ref.
template<class T>
nub::soft_ref< T > tcl::aux_convert_to (Tcl_Obj *obj, nub::soft_ref< T > *)
 Overload of aux_convert_to for nub::soft_ref.
template<class T>
tcl::obj tcl::aux_convert_from (nub::soft_ref< T > obj)
 Overload of aux_convert_from for nub::soft_ref.
template<class Fptr>
func_wrapper
< rutz::func_traits< Fptr >
::num_args, typename
rutz::func_traits< Fptr >
::retn_t, typename
rutz::functor_of< Fptr >::type > 
tcl::build_func_wrapper (Fptr f)
 Factory function to make tcl::func_wrapper's from any functor or function ptr.
template<class func_wrapper>
void tcl::make_generic_command (tcl::interpreter &interp, func_wrapper f, const char *cmd_name, const char *usage, const arg_spec &spec, const rutz::file_pos &src_pos)
 Factory function for tcl::command's from functors.
template<class func_wrapper>
void tcl::make_generic_vec_command (tcl::interpreter &interp, func_wrapper f, const char *cmd_name, const char *usage, const arg_spec &spec, unsigned int keyarg, const rutz::file_pos &src_pos)
 Factory function for vectorized tcl::command's from functors.
template<class Func>
void tcl::make_command (tcl::interpreter &interp, Func f, const char *cmd_name, const char *usage, const rutz::file_pos &src_pos)
 Factory function for tcl::command's from function pointers.
template<class Func>
void tcl::make_vec_command (tcl::interpreter &interp, Func f, const char *cmd_name, const char *usage, unsigned int keyarg, const rutz::file_pos &src_pos)
 Factory function for vectorized tcl::command's from function pointers.


Detailed Description

construct tcl commands from c++ functions via templatized argument deduction and conversion between tcl and c++

Definition in file makecmd.h.


Define Documentation

#define EXTRACT_PARAM (  ) 

Value:

typename rutz::func_traits<Func>::arg##N##_t p##N = \
  ctx.template get_arg<typename rutz::func_traits<Func>::arg##N##_t>(N);

Definition at line 120 of file makecmd.h.


The software described here is Copyright (c) 1998-2005, Rob Peters.
This page was generated Wed Dec 3 06:52:40 2008 by Doxygen version 1.5.5.