Lumiera
0.pre.03
»edit your freedom«
|
Go to the source code of this file.
While laying the foundations for Session and Builder, Ichthyo came across the necessity to create a custom implementation of the Visitor Pattern optimally suited for Lumiera's needs.
This implementation file was used for the drafting process and is self-contained. The final solution was then extracted later as library implementation into visitor.hpp
Basic considerations
Definition in file visitingtool-concept.cpp.
#include "lib/test/run.hpp"
#include "lib/format-cout.hpp"
#include "lib/format-string.hpp"
#include "lib/depend.hpp"
#include <vector>
Classes | |
class | Applicable< TAR, TOOLImpl, BASE > |
any concrete visiting tool implementation has to inherit from this class for each kind of calls it wants to get dispatched, Allowing us to record the type information. More... | |
class | Babbler |
class | BigBoss |
class | Boss |
class | Dispatcher< TAR, TOOL > |
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. More... | |
class | HomoSapiens |
class | Leader |
class | Tag< TOOL > |
class | Tag< TOOL > |
struct | TagTypeRegistry< TOOL, TOOLImpl > |
class | Tool< RET > |
Marker interface "visiting tool". More... | |
class | ToolType< TOOLImpl, BASE > |
Mixin for attaching a type tag to the concrete tool implementation. More... | |
class | VerboseVisitor |
class | Visionary |
class | Visitable< TOOL > |
Marker interface "visitable object". More... | |
class | VisitingTool_concept |
Typedefs | |
typedef Tool< void > | VisitingTool |
Macros | |
#define | DEFINE_PROCESSABLE_BY(TOOL) |
mark a Visitable subclass as actually treatable by some "visiting tool". More... | |
Functions | |
LAUNCHER (VisitingTool_concept, "unit common") | |
Register this test class... More... | |
Namespaces | |
lumiera | |
Lumiera public interface. | |
#define DEFINE_PROCESSABLE_BY | ( | TOOL | ) |
mark a Visitable subclass as actually treatable by some "visiting tool".
Defines the apply-function, which is the actual access point to invoke the visiting
Definition at line 327 of file visitingtool-concept.cpp.
lumiera::visitor_concept_draft::test::LAUNCHER | ( | VisitingTool_concept | , |
"unit common" | |||
) |
Register this test class...