OLD | NEW |
| (Empty) |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #include "sync/api/conflict_resolution.h" | |
6 | |
7 namespace syncer_v2 { | |
8 | |
9 // static | |
10 ConflictResolution ConflictResolution::UseLocal() { | |
11 return ConflictResolution(USE_LOCAL, nullptr); | |
12 } | |
13 | |
14 // static | |
15 ConflictResolution ConflictResolution::UseRemote() { | |
16 return ConflictResolution(USE_REMOTE, nullptr); | |
17 } | |
18 | |
19 // static | |
20 ConflictResolution ConflictResolution::UseNew( | |
21 std::unique_ptr<EntityData> data) { | |
22 DCHECK(data); | |
23 return ConflictResolution(USE_NEW, std::move(data)); | |
24 } | |
25 | |
26 ConflictResolution::ConflictResolution(ConflictResolution&& other) | |
27 : ConflictResolution(other.type(), other.ExtractData()) {} | |
28 | |
29 ConflictResolution::~ConflictResolution() {} | |
30 | |
31 std::unique_ptr<EntityData> ConflictResolution::ExtractData() { | |
32 // Has data if and only if type is USE_NEW. | |
33 DCHECK((type_ == USE_NEW) == !!data_); | |
34 return std::move(data_); | |
35 }; | |
36 | |
37 ConflictResolution::ConflictResolution(Type type, | |
38 std::unique_ptr<EntityData> data) | |
39 : type_(type), data_(std::move(data)) {} | |
40 | |
41 } // namespace syncer_v2 | |
OLD | NEW |