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 WriteTransaction; 24 class MutableEntry; 25 class Id; 26 27 SYNC_EXPORT_PRIVATE void ChangeEntryIDAndUpdateChildren(WriteTransaction* trans, 28 MutableEntry* entry, 29 const Id& new_id); 30 31 SYNC_EXPORT_PRIVATE bool IsLegalNewParent(BaseTransaction* trans, 32 const Id& id, 33 const Id& parentid); 34 35 bool SyncAssert(bool condition, 36 const tracked_objects::Location& location, 37 const char* msg, 38 BaseTransaction* trans); 39 40 SYNC_EXPORT_PRIVATE int GetUnsyncedEntries(BaseTransaction* trans, 41 std::vector<int64> *handles); 42 43 // Generates a fixed-length tag for the given string under the given model_type. 44 SYNC_EXPORT_PRIVATE std::string GenerateSyncableHash( 45 ModelType model_type, const std::string& client_tag); 46 47 // A helper for generating the bookmark type's tag. This is required in more 48 // than one place, so we define the algorithm here to make sure the 49 // implementation is consistent. 50 SYNC_EXPORT_PRIVATE std::string GenerateSyncableBookmarkHash( 51 const std::string originator_cache_guid, 52 const std::string originator_client_item_id); 53 54 } // namespace syncable 55 } // namespace syncer 56 57 #endif // SYNC_SYNCABLE_SYNCABLE_UTIL_H_ 58