| // Copyright 2014 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. |
| |
| syntax = "proto2"; |
| |
| option optimize_for = LITE_RUNTIME; |
| |
| package attachment_store_pb; |
| |
| // Metadata for leveldb attachment store database. |
| message StoreMetadata { |
| // |schema_version| indicates format in which data is written in attachment |
| // store. Needed for upgrade and to prevent newer data from being loaded by |
| // older code that doesn't understand it. |
| optional int32 schema_version = 1; |
| } |
| |
| // Metadata for attachment in attachment store. Storing metadata in separate |
| // record from actual data allows us to enumerate attachments in the store |
| // without incurring cost to read actual data. It also allows us to update |
| // attachment metadata independent of the data. |
| message RecordMetadata { |
| // Size of attachment data. Useful for attachment store space management. |
| optional int64 attachment_size = 1; |
| // Crc32c of attachment data. |
| optional fixed32 crc32c = 2; |
| |
| // Component enum mirrors values of AttachmentStore::Component. |
| enum Component { |
| UNKNOWN = 0; |
| MODEL_TYPE = 1; |
| SYNC = 2; |
| } |
| // Set of components that reference this attachment. |
| repeated Component component = 3; |
| } |