lumiera::visitor_concept_draft::Dispatcher< TAR, TOOL > Class Template Reference

For each posible call entry point via some subclass of the visitable hierarchy, we maintain a dispatcher table to keep track of all concrete tool implementations able to recieve and process calls on objects of this subclass.

List of all members.

Public Member Functions

template<class TOOLImpl>
void enroll (TOOLImpl *typeref)
ReturnType forwardCall (TAR &target, TOOL &tool)

Static Public Attributes

static Singleton< Dispatcher
< TAR, TOOL > > 
instance
 storage for the dispatcher table(s)

Private Types

typedef TOOL::ReturnType ReturnType
typedef ReturnType(* Trampoline )(TAR &, TOOL &)

Private Member Functions

bool is_known (size_t id)
Trampoline storedTrampoline (size_t id)
void storePtr (size_t id, Trampoline func)

Static Private Member Functions

template<class TOOLImpl>
static ReturnType callTrampoline (TAR &obj, TOOL &tool)
 generator for Trampoline functions, used to dispatch calls down to the right "treat"-Function on the correct concrete tool implementation class
static ReturnType errorHandler (TAR &, TOOL &)

Private Attributes

std::vector< Trampoline > table_
 VTable for storing the Trampoline pointers.


Detailed Description

template<class TAR, class TOOL>
class lumiera::visitor_concept_draft::Dispatcher< TAR, TOOL >

Definition at line 164 of file visitingtoolconcept.cpp.


The documentation for this class was generated from the following file:

Generated on Sat Aug 16 18:10:45 2008 for Lumiera by  doxygen 1.5.5