Lumiera
0.pre.03
»edit your freedom«
|
#include "steam/mobject/builder/buildertool.hpp"
Base class of all BuilderTools, used according to the visitor pattern: each Tool contains the concrete implementation for one task to be done to the various MObject classes.
The concrete builder tool implementation should not directly inherit from this base interface, but rather through an instantiation of the "Applicable" template parametrised with all concrete Buildable classes, for which it wants calls to be dispatched.
(BuilderTool& tool, WRA& wrappedTargetObj) , which forwards to the visitation mechanism supported by the type contained in the wrapper, but stores away a pointer to the wrapped object, which can be retrieved in a typesafe manner from within the treat(ConcreteType&)
function. Definition at line 97 of file buildertool.hpp.
Public Member Functions | |
void | forgetWrapper () |
template<template< class > class WRA, class TAR > | |
void | rememberWrapper (WRA< TAR > *ptr_toWrappedTarget) |
template<template< class, class > class Placement, class TAR , class B > | |
void | rememberWrapper (Placement< TAR, B > *ptr_toWrappedTarget) |
Public Member Functions inherited from Tool< void, InvokeCatchAllFunction > | |
virtual Tag< ToolBase > | getTag ()=0 |
use RTTI for all visiting tools More... | |
Protected Member Functions | |
ExplicitPlacement | getExplicitPlacement () |
template<class TAR > | |
Placement< TAR > & | getPlacement () |
template<class TAR > | |
lib::P< TAR > | getPtr () |
Private Attributes | |
lumiera::WrapperPtr | currentWrapper_ |
Additional Inherited Members | |
Public Types inherited from Tool< void, InvokeCatchAllFunction > | |
typedef void | ReturnType |
Tool function invocation return type. | |
typedef Tool | ToolBase |
for templating the Tag and Dispatcher | |