// Copyright 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef SYNC_SYNCABLE_SYNCABLE_UTIL_H_ #define SYNC_SYNCABLE_SYNCABLE_UTIL_H_ #include #include #include #include "sync/base/sync_export.h" #include "sync/internal_api/public/base/model_type.h" namespace tracked_objects { class Location; } namespace syncer { namespace syncable { class BaseTransaction; class BaseWriteTransaction; class ModelNeutralMutableEntry; class Id; SYNC_EXPORT void ChangeEntryIDAndUpdateChildren(BaseWriteTransaction* trans, ModelNeutralMutableEntry* entry, const Id& new_id); SYNC_EXPORT bool IsLegalNewParent(BaseTransaction* trans, const Id& id, const Id& parentid); bool SyncAssert(bool condition, const tracked_objects::Location& location, const char* msg, BaseTransaction* trans); SYNC_EXPORT int GetUnsyncedEntries(BaseTransaction* trans, std::vector* handles); // Generates a fixed-length tag for the given string under the given model_type. SYNC_EXPORT std::string GenerateSyncableHash(ModelType model_type, const std::string& client_tag); // A helper for generating the bookmark type's tag. This is required in more // than one place, so we define the algorithm here to make sure the // implementation is consistent. SYNC_EXPORT std::string GenerateSyncableBookmarkHash( const std::string& originator_cache_guid, const std::string& originator_client_item_id); } // namespace syncable } // namespace syncer #endif // SYNC_SYNCABLE_SYNCABLE_UTIL_H_