blob: bad53e9265029a31747efa86d70e3d275636e94d [file] [log] [blame]
// 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 COMPONENTS_SYNC_ENGINE_IMPL_PROCESS_UPDATES_UTIL_H_
#define COMPONENTS_SYNC_ENGINE_IMPL_PROCESS_UPDATES_UTIL_H_
#include <stdint.h>
#include <vector>
#include "components/sync/base/model_type.h"
namespace sync_pb {
class SyncEntity;
}
namespace syncer {
class StatusController;
struct UpdateCounters;
namespace syncable {
class ModelNeutralWriteTransaction;
class Directory;
}
using SyncEntityList = std::vector<const sync_pb::SyncEntity*>;
// Processes all the updates associated with a single ModelType.
void ProcessDownloadedUpdates(syncable::Directory* dir,
syncable::ModelNeutralWriteTransaction* trans,
ModelType type,
const SyncEntityList& applicable_updates,
bool is_initial_sync,
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_t version_watermark);
// Tombstones all entries of |type| whose ages are older than
// |age_watermark_in_days| unless they are type root or unsynced/unapplied.
void ExpireEntriesByAge(syncable::Directory* dir,
syncable::ModelNeutralWriteTransaction* trans,
ModelType type,
int32_t age_watermark_in_days);
// If the number of sync entities exceeds |max_number_of_items|, sync
// client will tombstone the extra sync entities based on the LRU rule.
void ExpireEntriesByItemLimit(syncable::Directory* dir,
syncable::ModelNeutralWriteTransaction* trans,
ModelType type,
int64_t max_number_of_items);
} // namespace syncer
#endif // COMPONENTS_SYNC_ENGINE_IMPL_PROCESS_UPDATES_UTIL_H_