forked from chromium/chromium
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmetadata_change_list.h
52 lines (40 loc) · 1.89 KB
/
metadata_change_list.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
// 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_METADATA_CHANGE_LIST_H_
#define SYNC_API_METADATA_CHANGE_LIST_H_
#include <string>
#include "sync/base/sync_export.h"
namespace sync_pb {
class DataTypeState;
class EntityMetadata;
} // namespace sync_pb
namespace syncer_v2 {
// Interface used by the processor and service to communicate about metadata.
// The purpose of the interface is to record changes to data type global and
// per entity metadata for the purpose of propagating changes to the datatype
// specific storage implementation.
// The implementation of the interface is supposed to keep the record of all
// updated / deleted metadata records and provide a mechanism to enumerate
// them. If there are multiple UpdateMetadata / ClearMetadata calls made for the
// same metadata record the last one is supposed to win.
class SYNC_EXPORT MetadataChangeList {
public:
MetadataChangeList() {}
virtual ~MetadataChangeList() {}
// Requests DataTypeState to be updated in the storage.
virtual void UpdateDataTypeState(
const sync_pb::DataTypeState& data_type_state) = 0;
// Requests DataTypeState to be cleared from the storage.
virtual void ClearDataTypeState() = 0;
// Requests metadata entry to be updated in the storage.
// Please note that the update might contain a deleted entry if
// metadata.is_deleted() is true (as opposed to clearing the entry from the
// storage completely by calling the Clear method).
virtual void UpdateMetadata(const std::string& client_tag,
const sync_pb::EntityMetadata& metadata) = 0;
// Requests metadata entry to be cleared from the storage.
virtual void ClearMetadata(const std::string& client_tag) = 0;
};
} // namespace syncer_v2
#endif // SYNC_API_METADATA_CHANGE_LIST_H_