// Copyright (c) 2011 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. // // InMemoryURLIndex caching protocol buffers. // // At certain times during browser operation, the indexes from the // InMemoryURLIndex are written to a disk-based cache using the // following protobuf description. syntax = "proto2"; option optimize_for = LITE_RUNTIME; package in_memory_url_index; message InMemoryURLIndexCacheItem { message WordListItem { required uint32 word_count = 1; repeated string word = 2; } message WordMapItem { message WordMapEntry { required string word = 1; required int32 word_id = 2; } required uint32 item_count = 1; repeated WordMapEntry word_map_entry = 2; } message CharWordMapItem { message CharWordMapEntry { required uint32 item_count = 1; required int32 char_16 = 2; repeated int32 word_id = 3 [packed=true]; } required uint32 item_count = 1; repeated CharWordMapEntry char_word_map_entry = 2; } message WordIDHistoryMapItem { message WordIDHistoryMapEntry { required uint32 item_count = 1; required int32 word_id = 2; repeated int64 history_id = 3 [packed=true]; } required uint32 item_count = 1; repeated WordIDHistoryMapEntry word_id_history_map_entry = 2; } message HistoryInfoMapItem { message HistoryInfoMapEntry { message VisitInfo { required int64 visit_time = 1; // Corresponds to ui::PageTransition. required uint64 transition_type = 2; } required int64 history_id = 1; required int32 visit_count = 2; required int32 typed_count = 3; required int64 last_visit = 4; required string url = 5; optional string title = 6; repeated VisitInfo visits = 7; } required uint32 item_count = 1; repeated HistoryInfoMapEntry history_info_map_entry = 2; } message WordStartsMapItem { message WordStartsMapEntry { required int64 history_id = 1; repeated int32 url_word_starts = 2 [packed=true]; repeated int32 title_word_starts = 3 [packed=true]; } required uint32 item_count = 1; repeated WordStartsMapEntry word_starts_map_entry = 2; } // The date that the cache was last rebuilt from history. Note that // this cache may include items that were visited after this date if // the InMemoryURLIndex was updated on the fly. This timestamp is meant // to indicate the last date the index was rebuilt from the ground truth: // the history database on disk. required int64 last_rebuild_timestamp = 1; // If there is no version we'll assume version 0. optional int32 version = 2; required int32 history_item_count = 3; optional WordListItem word_list = 4; optional WordMapItem word_map = 5; optional CharWordMapItem char_word_map = 6; optional WordIDHistoryMapItem word_id_history_map = 7; optional HistoryInfoMapItem history_info_map = 8; optional WordStartsMapItem word_starts_map = 9; }