1// Copyright (c) 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_INTERNAL_API_PUBLIC_DELETE_JOURNAL_H_ 6#define SYNC_INTERNAL_API_PUBLIC_DELETE_JOURNAL_H_ 7 8#include <vector> 9 10#include "sync/base/sync_export.h" 11#include "sync/internal_api/public/base/model_type.h" 12#include "sync/protocol/sync.pb.h" 13 14namespace syncer { 15 16class BaseTransaction; 17 18struct BookmarkDeleteJournal { 19 int64 id; // Metahandle of delete journal entry. 20 bool is_folder; 21 sync_pb::EntitySpecifics specifics; 22}; 23typedef std::vector<BookmarkDeleteJournal> BookmarkDeleteJournalList; 24 25// Static APIs for passing delete journals between syncer::syncable namspace 26// and syncer namespace. 27class SYNC_EXPORT DeleteJournal { 28 public: 29 // Return info about deleted bookmark entries stored in the delete journal 30 // of |trans|'s directory. 31 // TODO(haitaol): remove this after SyncData supports bookmarks and 32 // all types of delete journals can be returned as 33 // SyncDataList. 34 static void GetBookmarkDeleteJournals( 35 BaseTransaction* trans, BookmarkDeleteJournalList *delete_journals); 36 37 // Purge delete journals of given IDs from |trans|'s directory. 38 static void PurgeDeleteJournals(BaseTransaction* trans, 39 const std::set<int64>& ids); 40}; 41 42} // namespace syncer 43 44#endif // SYNC_INTERNAL_API_PUBLIC_DELETE_JOURNAL_H_ 45