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