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 15namespace tracked_objects { 16class Location; 17} 18 19namespace syncer { 20namespace syncable { 21 22class BaseTransaction; 23class BaseWriteTransaction; 24class ModelNeutralMutableEntry; 25class Id; 26 27SYNC_EXPORT_PRIVATE void ChangeEntryIDAndUpdateChildren( 28 BaseWriteTransaction* trans, 29 ModelNeutralMutableEntry* entry, 30 const Id& new_id); 31 32SYNC_EXPORT_PRIVATE bool IsLegalNewParent(BaseTransaction* trans, 33 const Id& id, 34 const Id& parentid); 35 36bool SyncAssert(bool condition, 37 const tracked_objects::Location& location, 38 const char* msg, 39 BaseTransaction* trans); 40 41SYNC_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. 45SYNC_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. 51SYNC_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