![]() |
Lumiera 0.pre.04~rc.1
»edit your freedom«
|
For each possible 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 receive and process calls on objects of this subclass.
Definition at line 153 of file visitingtool-concept.cpp.
Static Public Attributes | |
| static lib::Depend< Dispatcher< TAR, TOOL > > | instance |
| storage for the dispatcher table(s) | |
Public Member Functions | |
| ReturnType | forwardCall (TAR &target, TOOL &tool) |
| template<class TOOLImpl > | |
| void | enrol (TOOLImpl *typeKey) |
Private Types | |
| using | ReturnType = TOOL::ReturnType |
| typedef ReturnType(* | Trampoline) (TAR &, TOOL &) |
Private Member Functions | |
| bool | is_known (size_t id) |
| void | storePtr (size_t id, Trampoline func) |
| Trampoline | storedTrampoline (size_t id) |
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_ |
| custom VTable for storing the Trampoline pointers | |
|
private |
Definition at line 155 of file visitingtool-concept.cpp.
|
private |
Definition at line 176 of file visitingtool-concept.cpp.
|
inlinestaticprivate |
generator for Trampoline functions, used to dispatch calls down to the right "treat"-Function on the correct concrete tool implementation class
Definition at line 164 of file visitingtool-concept.cpp.
References INSTANCEOF.
|
inlineprivate |
Definition at line 184 of file visitingtool-concept.cpp.
References Dispatcher< TAR, TOOL >::table_.
Referenced by Dispatcher< TAR, TOOL >::enrol().
Here is the caller graph for this function:
|
inlineprivate |
Definition at line 190 of file visitingtool-concept.cpp.
References Dispatcher< TAR, TOOL >::table_.
Referenced by Dispatcher< TAR, TOOL >::enrol().
Here is the caller graph for this function:
|
inlineprivate |
Definition at line 199 of file visitingtool-concept.cpp.
References Dispatcher< TAR, TOOL >::errorHandler(), and Dispatcher< TAR, TOOL >::table_.
Referenced by Dispatcher< TAR, TOOL >::forwardCall().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinestaticprivate |
Definition at line 208 of file visitingtool-concept.cpp.
Referenced by Dispatcher< TAR, TOOL >::storedTrampoline().
Here is the caller graph for this function:
|
inline |
Definition at line 218 of file visitingtool-concept.cpp.
References Dispatcher< TAR, TOOL >::storedTrampoline().
Here is the call graph for this function:
|
inline |
Definition at line 227 of file visitingtool-concept.cpp.
References Tag< TOOL >::get(), Dispatcher< TAR, TOOL >::is_known(), and Dispatcher< TAR, TOOL >::storePtr().
Here is the call graph for this function:
|
private |
custom VTable for storing the Trampoline pointers
Definition at line 180 of file visitingtool-concept.cpp.
Referenced by Dispatcher< TAR, TOOL >::is_known(), Dispatcher< TAR, TOOL >::storedTrampoline(), and Dispatcher< TAR, TOOL >::storePtr().
|
static |
storage for the dispatcher table(s)
Definition at line 215 of file visitingtool-concept.cpp.
Referenced by Applicable< TAR, TOOLImpl, BASE >::Applicable(), and Visitable< TOOL >::dispatchOp().
Collaboration diagram for Dispatcher< TAR, TOOL >: