Lumiera  0.pre.03
»edit your freedom«
diff-mutable.hpp
Go to the documentation of this file.
1 /*
2  DIFF-MUTABLE.hpp - interface for data structures mutable through diff message
3 
4  Copyright (C)
5  2016, Hermann Vosseler <Ichthyostega@web.de>
6 
7   **Lumiera** is free software; you can redistribute it and/or modify it
8   under the terms of the GNU General Public License as published by the
9   Free Software Foundation; either version 2 of the License, or (at your
10   option) any later version. See the file COPYING for further details.
11 
12 */
13 
14 
49 #ifndef LIB_DIFF_DIFF_MUTABLE_H
50 #define LIB_DIFF_DIFF_MUTABLE_H
51 
52 
54 
55 
56 
57 namespace lib {
58 namespace diff{
59 
60 
67  {
68  public:
69  virtual ~DiffMutable() { }
70 
77  virtual void buildMutator (TreeMutator::Handle buffer) =0;
78  };
79 
80 
81 
82 }} // namespace lib::diff
83 
84 // enable an extension to the TreeMutator builder DSL for DiffMutable
86 
87 #endif /*LIB_DIFF_DIFF_MUTABLE_H*/
virtual void buildMutator(TreeMutator::Handle buffer)=0
build a custom implementation of the TreeMutator interface, suitably wired to cause appropriate chang...
Implementation namespace for support and library code.
A handle to allow for safe »remote implantation« of an unknown subclass into a given opaque InPlaceBu...
Definition: record.hpp:104
virtual ~DiffMutable()
this is an interface
Customisable intermediary to abstract generic tree mutation operations.
Special supplement for TreeMutator and the STL collection binding, to provide a shortcut and default ...
Marker or capability interface: an otherwise not further disclosed data structure, which can be transformed through "tree diff messages".