Commit f09d9420 authored by maxbogue's avatar maxbogue Committed by Commit bot

[Sync] USS: Add EntityChange.

BUG=536895,543405

Review URL: https://codereview.chromium.org/1458013003

Cr-Commit-Position: refs/heads/master@{#361153}
parent 46afb301
......@@ -48,7 +48,7 @@ syncer::SyncError DeviceInfoService::MergeSyncData(
syncer::SyncError DeviceInfoService::ApplySyncChanges(
syncer_v2::MetadataChanges* metadata_changes,
syncer_v2::EntityDataList entity_data_list) {
syncer_v2::EntityChangeList entity_changes) {
// TODO(skym): Implementation.
return syncer::SyncError();
}
......
......@@ -47,7 +47,7 @@ class DeviceInfoService : public syncer_v2::ModelTypeService,
syncer_v2::EntityDataList entity_data_list) override;
syncer::SyncError ApplySyncChanges(
syncer_v2::MetadataChanges* metadata_changes,
syncer_v2::EntityDataList entity_data_list) override;
syncer_v2::EntityChangeList entity_changes) override;
void LoadMetadata(MetadataCallback callback) override;
void GetData(ClientKeyList client_keys, DataCallback callback) override;
void GetAllData(DataCallback callback) override;
......
......@@ -26,6 +26,8 @@ source_set("sync_core") {
"api/attachments/attachment_store_backend.cc",
"api/attachments/attachment_store_backend.h",
"api/data_batch.h",
"api/entity_change.cc",
"api/entity_change.h",
"api/entity_data.cc",
"api/entity_data.h",
"api/metadata_batch.h",
......
// Copyright 2015 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.
#include "sync/api/entity_change.h"
namespace syncer_v2 {
// static
EntityChange EntityChange::CreateAdd(std::string client_key,
EntityDataPtr data) {
return EntityChange(client_key, ACTION_ADD, data);
}
// static
EntityChange EntityChange::CreateUpdate(std::string client_key,
EntityDataPtr data) {
return EntityChange(client_key, ACTION_UPDATE, data);
}
// static
EntityChange EntityChange::CreateDelete(std::string client_key) {
return EntityChange(client_key, ACTION_DELETE, EntityDataPtr());
}
EntityChange::EntityChange(std::string client_key,
ChangeType type,
EntityDataPtr data)
: client_key_(client_key), type_(type), data_(data){};
EntityChange::~EntityChange() {}
} // namespace syncer_v2
// Copyright 2015 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_API_ENTITY_CHANGE_H_
#define SYNC_API_ENTITY_CHANGE_H_
#include <string>
#include <vector>
#include "sync/api/entity_data.h"
#include "sync/base/sync_export.h"
namespace syncer_v2 {
class SYNC_EXPORT EntityChange {
public:
enum ChangeType {
ACTION_ADD,
ACTION_UPDATE,
ACTION_DELETE
};
static EntityChange CreateAdd(std::string client_key, EntityDataPtr data);
static EntityChange CreateUpdate(std::string client_key, EntityDataPtr data);
static EntityChange CreateDelete(std::string client_key);
virtual ~EntityChange();
std::string client_key() const { return client_key_; }
ChangeType type() const { return type_; }
const EntityData& data() const { return data_.value(); }
private:
EntityChange(std::string client_key, ChangeType type, EntityDataPtr data);
const std::string client_key_;
const ChangeType type_;
const EntityDataPtr data_;
};
typedef std::vector<EntityChange> EntityChangeList;
} // namespace syncer_v2
#endif // SYNC_API_ENTITY_CHANGE_H_
......@@ -10,6 +10,7 @@
#include "base/callback.h"
#include "base/memory/scoped_ptr.h"
#include "sync/api/entity_change.h"
#include "sync/api/entity_data.h"
#include "sync/api/model_type_change_processor.h"
#include "sync/base/sync_export.h"
......@@ -49,10 +50,9 @@ class SYNC_EXPORT ModelTypeService {
EntityDataList entity_data_list) = 0;
// Apply changes from the sync server locally.
// TODO(skym): The change type should be in here somehow.
virtual syncer::SyncError ApplySyncChanges(
MetadataChanges* metadata_changes,
EntityDataList entity_data_list) = 0;
EntityChangeList entity_changes) = 0;
// Asynchronously retrieve the sync metadata.
virtual void LoadMetadata(MetadataCallback callback) = 0;
......
......@@ -77,6 +77,8 @@
'api/attachments/attachment_store_backend.cc',
'api/attachments/attachment_store_backend.h',
'api/data_batch.h',
'api/entity_change.cc',
'api/entity_change.h',
'api/entity_data.cc',
'api/entity_data.h',
'api/metadata_batch.h',
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment