43#ifndef MOBJECT_BUILDER_TOOL_H
44#define MOBJECT_BUILDER_TOOL_H
103 template<
template<
class>
class WRA,
class TAR>
108 template<
template<
class,
class>
class Placement,
class TAR,
class B>
127 ENSURE (pPlacement,
"wrong target type when invoking %s", __PRETTY_FUNCTION__);
134 return getPlacement<MObject>().
resolve();
142 ENSURE (pP,
"wrong target type when invoking %s", __PRETTY_FUNCTION__);
188 template<
typename WRA>
193 wrappedTargetObj->apply (tool);
Customised refcounting smart pointer template, built upon std::shared_ptr, but forwarding type relati...
TAR get()
retrieve current content of the variant, trying to cast or convert it to the given type.
Marker template to declare that some "visiting tool" wants to treat a set of concrete Visitable class...
Marker interface or base class for all "Visitables".
TOOL::ReturnType ReturnType
Marker Interface for classes visitable by Builder tools.
Special kind of Placement, where the location of the MObject has been nailed down to a fixed position...
virtual ExplicitPlacement resolve() const
no need to resolve any further, as this ExplicitPlacement already is the result of a resolve()-call.
A refcounting Handle to an MObject of type MO, used to constrain or explicitly specify the location w...
declare the concrete types a BuilderTool may receive and treat.
Policy invoking an catch-all function for processing an unknown tool / target pair,...
virtual RET onUnknown(Buildable &target)=0
virtual ~InvokeCatchAllFunction()
Core abstraction: completely resolved placement of an MObject Within the session model,...
Buildable::ReturnType apply(BuilderTool &tool, WRA &wrappedTargetObj)
to be picked up by ADL: redirect tool invocation for double dispatch.
Steam-Layer implementation namespace root.
Customised refcounting smart pointer.
Core abstraction: placement of a media object into session context.
A library implementation of the Visitor Pattern tailored specifically to Lumiera's needs within the S...
Wrapper to treat several flavours of smart-pointers uniformly.