Lumiera  0.pre.03
»edit your freedom«
command-impl-clone-builder.hpp File Reference

Go to the source code of this file.

Description

Helper for creating an implementation clone, based on the visitor pattern.

This file deals with the problem of creating a clone from top level without any specific type information. While generally this means passing down the allocation interface, the specific problem here is that multiple parts of the command implementation need to be cloned and re-wired with the cloned partners, which requires re-creating the specifically typed context used at initial setup.

Todo:
Ticket #301 : it may well be that the need for such a facility is a symptom of misaligned design, but I rather doubt so – because both the memento holder and the command closure need a specifically typed context, and there is no reason for combining them into a single facility.
See also
CommandRegistry::createCloneImpl
CommandImpl
StorageHolder::createClone
command-clone-builder-test.cpp

Definition in file command-impl-clone-builder.hpp.

Classes

struct  CloneContext
 < Interface and empty state More...
 
class  ClonedContext
 
class  CommandImplCloneBuilder
 Visitor to support creating a CommandImpl clone. More...
 

Namespaces

 steam
 Steam-Layer implementation namespace root.
 
 steam::control
 Steam-Layer dispatcher, controller and administrative facilities.