/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil -*- */ /* * Copyright (c) 2012-2014 University of California, Los Angeles * * This file is part of ChronoSync, synchronization library for distributed realtime * applications for NDN. * * ChronoSync is free software: you can redistribute it and/or modify it under the terms * of the GNU General Public License as published by the Free Software Foundation, either * version 3 of the License, or (at your option) any later version. * * ChronoSync is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along with * ChronoSync, e.g., in COPYING.md file. If not, see . * * @author Zhenkai Zhu * @author Chaoyi Bian * @author Alexander Afanasyev * @author Yingdi Yu */ #include "diff-state.hpp" namespace chronosync { ConstStatePtr DiffState::diff() const { StatePtr result = make_shared(); ConstDiffStatePtr state = m_next; while (static_cast(state)) { *result += *state; state = state->m_next; } return result; } } // namespace chronosync