• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2012 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 SYNC_SYNCABLE_SYNCABLE_UTIL_H_
6 #define SYNC_SYNCABLE_SYNCABLE_UTIL_H_
7 
8 #include <string>
9 #include <vector>
10 
11 #include "base/basictypes.h"
12 #include "sync/base/sync_export.h"
13 #include "sync/internal_api/public/base/model_type.h"
14 
15 namespace tracked_objects {
16 class Location;
17 }
18 
19 namespace syncer {
20 namespace syncable {
21 
22 class BaseTransaction;
23 class BaseWriteTransaction;
24 class ModelNeutralMutableEntry;
25 class Id;
26 
27 SYNC_EXPORT_PRIVATE void ChangeEntryIDAndUpdateChildren(
28     BaseWriteTransaction* trans,
29     ModelNeutralMutableEntry* entry,
30     const Id& new_id);
31 
32 SYNC_EXPORT_PRIVATE bool IsLegalNewParent(BaseTransaction* trans,
33                                           const Id& id,
34                                           const Id& parentid);
35 
36 bool SyncAssert(bool condition,
37                 const tracked_objects::Location& location,
38                 const char* msg,
39                 BaseTransaction* trans);
40 
41 SYNC_EXPORT_PRIVATE int GetUnsyncedEntries(BaseTransaction* trans,
42                                            std::vector<int64> *handles);
43 
44 // Generates a fixed-length tag for the given string under the given model_type.
45 SYNC_EXPORT_PRIVATE std::string GenerateSyncableHash(
46     ModelType model_type, const std::string& client_tag);
47 
48 // A helper for generating the bookmark type's tag.  This is required in more
49 // than one place, so we define the algorithm here to make sure the
50 // implementation is consistent.
51 SYNC_EXPORT_PRIVATE std::string GenerateSyncableBookmarkHash(
52     const std::string& originator_cache_guid,
53     const std::string& originator_client_item_id);
54 
55 }  // namespace syncable
56 }  // namespace syncer
57 
58 #endif  // SYNC_SYNCABLE_SYNCABLE_UTIL_H_
59