| // Copyright 2013 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef SYNC_ENGINE_PROCESS_UPDATES_UTIL_H_ |
| #define SYNC_ENGINE_PROCESS_UPDATES_UTIL_H_ |
| |
| #include <vector> |
| |
| #include "sync/internal_api/public/base/model_type.h" |
| |
| namespace sync_pb { |
| class SyncEntity; |
| } |
| |
| namespace syncer { |
| |
| namespace sessions { |
| class StatusController; |
| } |
| |
| namespace syncable { |
| class ModelNeutralWriteTransaction; |
| class Directory; |
| } |
| |
| struct UpdateCounters; |
| |
| typedef std::vector<const sync_pb::SyncEntity*> SyncEntityList; |
| |
| // Processes all the updates associated with a single ModelType. |
| void ProcessDownloadedUpdates( |
| syncable::Directory* dir, |
| syncable::ModelNeutralWriteTransaction* trans, |
| ModelType type, |
| const SyncEntityList& applicable_updates, |
| sessions::StatusController* status, |
| UpdateCounters* counters); |
| |
| // Tombstones all entries of |type| whose versions are older than |
| // |version_watermark| unless they are type root or unsynced/unapplied. |
| void ExpireEntriesByVersion(syncable::Directory* dir, |
| syncable::ModelNeutralWriteTransaction* trans, |
| ModelType type, |
| int64 version_watermark); |
| |
| } // namespace syncer |
| |
| #endif // SYNC_ENGINE_PROCESS_UPDATES_UTIL_H_ |