Chromium Code Reviews| Index: sync/engine/process_updates_util.h |
| diff --git a/sync/engine/process_updates_util.h b/sync/engine/process_updates_util.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..c096850134307254d2605f4ce6ed0587b7c6b7b8 |
| --- /dev/null |
| +++ b/sync/engine/process_updates_util.h |
| @@ -0,0 +1,73 @@ |
| +// Copyright 2012 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 <map> |
| +#include <vector> |
| + |
| +#include "base/compiler_specific.h" |
| +#include "sync/base/sync_export.h" |
| +#include "sync/engine/syncer_types.h" |
| +#include "sync/internal_api/public/base/model_type.h" |
| + |
| +namespace sync_pb { |
| +class GetUpdatesResponse; |
| +class SyncEntity; |
| +} |
| + |
| +namespace syncer { |
| + |
| +namespace sessions { |
| +class StatusController; |
| +} |
| + |
| +namespace syncable { |
| +class ModelNeutralWriteTransaction; |
| +class Directory; |
| +} |
| + |
| +class Cryptographer; |
| + |
| +// TODO: Move these definitions somewhere else? |
|
Nicolas Zea
2013/10/25 21:04:41
TODO(rlarocque)
rlarocque
2013/10/25 22:29:47
Done.
|
| +typedef std::vector<const sync_pb::SyncEntity*> SyncEntityList; |
| +typedef std::map<ModelType, SyncEntityList> TypeSyncEntityMap; |
| + |
| +// Given a GetUpdates response, iterates over all the returned items and |
| +// divides them according to their type. Outputs a map from model types to |
| +// received SyncEntities. The output map will have entries (possibly empty) |
| +// for all types in |requested_types|. |
| +void PartitionUpdatesByType( |
| + const sync_pb::GetUpdatesResponse& updates, |
| + ModelTypeSet requested_types, |
| + TypeSyncEntityMap* updates_by_type); |
| + |
| +// 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); |
| + |
| +// Checks whether or not an update is fit for processing. |
| +// |
| +// The answer may be "no" if the update appears invalid, or it's not releveant |
| +// (ie. a delete for an item we've never heard of), or other reasons. |
| +VerifyResult VerifyUpdate( |
| + syncable::ModelNeutralWriteTransaction* trans, |
| + const sync_pb::SyncEntity& entry, |
| + ModelType requested_type); |
| + |
| +// If the update passes a series of checks, this function will copy |
| +// the SyncEntity's data into the SERVER side of the syncable::Directory. |
| +void ProcessUpdate( |
| + const sync_pb::SyncEntity& proto_update, |
| + const Cryptographer* cryptographer, |
| + syncable::ModelNeutralWriteTransaction* const trans); |
| + |
| +} // namespace syncer |
| + |
| +#endif // SYNC_ENGINE_PROCESS_UPDATES_UTIL_H_ |