Lumiera  0.pre.03
»edityourfreedom«
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) Lumiera.org
5  2016, Hermann Vosseler <Ichthyostega@web.de>
6 
7  This program is free software; you can redistribute it and/or
8  modify it under the terms of the GNU General Public License as
9  published by the Free Software Foundation; either version 2 of
10  the License, or (at your option) any later version.
11 
12  This program is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  GNU General Public License for more details.
16 
17  You should have received a copy of the GNU General Public License
18  along with this program; if not, write to the Free Software
19  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 
21 */
22 
23 
58 #ifndef LIB_DIFF_DIFF_MUTABLE_H
59 #define LIB_DIFF_DIFF_MUTABLE_H
60 
61 
63 
64 
65 
66 namespace lib {
67 namespace diff{
68 
69 
76  {
77  public:
78  virtual ~DiffMutable() { }
79 
86  virtual void buildMutator (TreeMutator::Handle buffer) =0;
87  };
88 
89 
90 
91 }} // namespace lib::diff
92 #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.
handle to allow for safe »remote implantation« of an unknown subclass into a given opaque InPlaceBuff...
Definition: record.hpp:108
virtual ~DiffMutable()
this is an interface
Customisable intermediary to abstract generic tree mutation operations.
Marker or capability interface: an otherwise not further disclosed data structure, which can be transformed through "tree diff messages".