00001 00008 /* Copyright © 2009 James Legg. 00009 This program is free software: you can redistribute it and/or modify 00010 it under the terms of the GNU General Public License as published by 00011 the Free Software Foundation, either version 3 of the License, or 00012 (at your option) any later version. 00013 */ 00014 00015 #ifndef LIBTRACK_DOCUMENT_INSERT_TRACK_ATTACHMENT_DELTA_H 00016 #define LIBTRACK_DOCUMENT_INSERT_TRACK_ATTACHMENT_DELTA_H 00017 00018 #include "DocumentDelta.h" 00019 00020 #include "InsertRemoveIdentifier.h" 00021 #include "InsertDelta.h" 00022 #include "RemoveDelta.h" 00023 #include "../path/PathEdge.h" 00024 #include "../TrackAttachment.h" 00025 00026 namespace Document 00027 { 00028 00031 class InsertRemoveTrackAttachmentIdentifier 00032 : public InsertRemoveIdentifier<std::pair<std::size_t, std::size_t>, boost::shared_ptr<Track::TrackAttachment> > 00033 { 00034 public: 00035 InsertRemoveTrackAttachmentIdentifier(const boost::shared_ptr<Track::TrackAttachment> & obj); 00036 InsertRemoveTrackAttachmentIdentifier(std::size_t attachment_name, std::size_t edge_name); 00037 void insert(Track::Track & track, boost::shared_ptr<Track::TrackAttachment> object) const; 00038 boost::shared_ptr<Track::TrackAttachment> remove(Track::Track & track) const; 00039 }; 00040 00043 typedef InsertDelta<InsertRemoveTrackAttachmentIdentifier, boost::shared_ptr<Track::TrackAttachment> > InsertTrackAttachmentDelta; 00044 00047 typedef RemoveDelta<InsertRemoveTrackAttachmentIdentifier, boost::shared_ptr<Track::TrackAttachment> > RemoveTrackAttachmentDelta; 00048 00049 00050 } // namespace Document 00051 00052 #endif // LIBTRACK_DOCUMENT_INSERT_TRACK_ATTACHMENT_DELTA_H
Generated at Mon Sep 6 00:41:11 2010 by Doxygen version 1.4.7 for Racer version svn335.