00001 00005 /* Copyright © 2009 James Legg. 00006 This program is free software: you can redistribute it and/or modify 00007 it under the terms of the GNU General Public License as published by 00008 the Free Software Foundation, either version 3 of the License, or 00009 (at your option) any later version. 00010 */ 00011 #ifndef LIBTRACK_DOCUMENT_STACKABLE_DELTA_H_ 00012 #define LIBTRACK_DOCUMENT_STACKABLE_DELTA_H_ 00013 00014 #include <vector> 00015 00016 #include <boost/shared_ptr.hpp> 00017 00018 #include "DocumentDelta.h" 00019 00020 00021 namespace Document 00022 { 00023 00028 class StackableDelta 00029 : public DocumentDelta 00030 { 00031 public: 00032 StackableDelta(); 00033 virtual ~StackableDelta(); 00034 00040 virtual void apply(Track::Track & track) = 0; 00043 void unapply(Track::Track & track); 00044 protected: 00051 void add_to_stack(boost::shared_ptr<DocumentDelta> delta, Track::Track & track); 00052 private: 00054 std::vector<boost::shared_ptr<DocumentDelta> > delta_stack; 00055 }; 00056 00057 } // Document namespace 00058 00059 #endif // LIBTRACK_DOCUMENT_STACKABLE_DELTA_H_
Generated at Mon Sep 6 00:41:11 2010 by Doxygen version 1.4.7 for Racer version svn335.