// Copyright 2015 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; option retain_unknown_fields = true; package sync_pb; // Sync proto to store entity metadata in model type storage. message EntityMetadata { // A hash based on the client tag and model type. // Used for various map lookups. Should always be available. // Sent to the server as SyncEntity::client_defined_unique_tag. optional string client_tag_hash = 1; // The entity's server-assigned ID. // // Prior to the item's first commit, we leave this value as an empty string. // The initial ID for a newly created item has to meet certain uniqueness // requirements, and we handle those on the sync thread. optional string server_id = 2; // Whether or not the entity is deleted. optional bool is_deleted = 3; // A version number used to track in-progress commits. Each local change // increments this number. optional int64 sequence_number = 4; // The sequence number of the last item known to be successfully committed. optional int64 acked_sequence_number = 5; // The server version on which this item is based. // // If there are no local changes, this is the version of the entity as we see // it here. // // If there are local changes, this is the version of the entity on which // those changes are based. optional int64 server_version = 6 [default = -1]; // Entity creation and modification timestamps. // Assigned by the client and synced by the server, though the server usually // doesn't bother to inspect their values. optional int64 creation_time = 7; optional int64 modification_time = 8; // A hash of the current entity specifics value. Used to detect whether // entity's specifics value has changed without having to keep specifics in // memory. optional string specifics_hash = 9; }