OLD | NEW |
| (Empty) |
1 // Copyright 2013 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 #ifndef CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_LOCAL_SYNC_OPERATION_RESOL
VER_H_ | |
6 #define CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_LOCAL_SYNC_OPERATION_RESOL
VER_H_ | |
7 | |
8 #include "base/gtest_prod_util.h" | |
9 #include "chrome/browser/sync_file_system/file_change.h" | |
10 #include "chrome/browser/sync_file_system/sync_file_type.h" | |
11 #include "chrome/browser/sync_file_system/sync_operation_type.h" | |
12 | |
13 namespace sync_file_system { | |
14 | |
15 class DriveMetadata; | |
16 class FileChange; | |
17 | |
18 class LocalSyncOperationResolver { | |
19 public: | |
20 // |remote_file_change| is non-null when we have a remote change for the file, | |
21 // and |drive_metadata| is also non-null when we have metadata. | |
22 static SyncOperationType Resolve( | |
23 const FileChange& local_file_change, | |
24 const FileChange* remote_file_change, | |
25 const DriveMetadata* drive_metadata); | |
26 | |
27 private: | |
28 static SyncOperationType ResolveForAddOrUpdateFile( | |
29 const FileChange* remote_file_change, | |
30 SyncFileType remote_file_type_in_metadata); | |
31 static SyncOperationType ResolveForAddOrUpdateFileInConflict( | |
32 const FileChange* remote_file_change); | |
33 static SyncOperationType ResolveForAddDirectory( | |
34 const FileChange* remote_file_change, | |
35 SyncFileType remote_file_type_in_metadata); | |
36 static SyncOperationType ResolveForAddDirectoryInConflict(); | |
37 static SyncOperationType ResolveForDelete( | |
38 const FileChange* remote_file_change, | |
39 SyncFileType remote_file_type_in_metadata); | |
40 static SyncOperationType ResolveForDeleteInConflict( | |
41 const FileChange* remote_file_change); | |
42 | |
43 FRIEND_TEST_ALL_PREFIXES(LocalSyncOperationResolverTest, | |
44 ResolveForAddOrUpdateFile); | |
45 FRIEND_TEST_ALL_PREFIXES(LocalSyncOperationResolverTest, | |
46 ResolveForAddOrUpdateFileInConflict); | |
47 FRIEND_TEST_ALL_PREFIXES(LocalSyncOperationResolverTest, | |
48 ResolveForAddDirectory); | |
49 FRIEND_TEST_ALL_PREFIXES(LocalSyncOperationResolverTest, | |
50 ResolveForAddDirectoryInConflict); | |
51 FRIEND_TEST_ALL_PREFIXES(LocalSyncOperationResolverTest, | |
52 ResolveForDelete); | |
53 FRIEND_TEST_ALL_PREFIXES(LocalSyncOperationResolverTest, | |
54 ResolveForDeleteInConflict); | |
55 }; | |
56 | |
57 } // namespace sync_file_system | |
58 | |
59 #endif // CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_LOCAL_SYNC_OPERATION_RE
SOLVER_H_ | |
OLD | NEW |