chromium/components/leveldb_proto/internal/proto/shared_db_metadata.proto

// Copyright 2018 The Chromium Authors
// 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 leveldb_proto;

// A proto to for storing metadata related to a SharedProtoDatabase client.
//
// Next tag: 3
message SharedDBMetadataProto {
  // Add obsolete fields here.
  reserved 2;

  // For the global database, this is value increases every time a corruption
  // is discovered, as a way for clients to determine whether there's been a
  // corruption since the last time they checked.
  // For clients, this number is set to the global value when they check their
  // corruption status, to indicate that we don't need to tell them there was
  // a corruption next time they check.
  optional uint64 corruptions = 1;

  // Stores the status of migration in the last session for the database.
  enum MigrationStatus {
    // No migration was attempted in the last session. Either unique or shared
    // did not exist because migration was already done, or either of them
    // failed to load.
    MIGRATION_NOT_ATTEMPTED = 0;

    // Last session used shared db and migration was successful.
    MIGRATE_TO_SHARED_SUCCESSFUL = 1;

    // Last session used shared db and migration transfer was complete, but
    // unique db was not deleted.
    MIGRATE_TO_SHARED_UNIQUE_TO_BE_DELETED = 2;

    // Last session used unique db and migration from shared to unique was
    // successful.
    MIGRATE_TO_UNIQUE_SUCCESSFUL = 3;

    // last session used unique db and migration transfer from shared to unique
    // was successful, but the shared db was not deleted.
    MIGRATE_TO_UNIQUE_SHARED_TO_BE_DELETED = 4;
  };

  optional MigrationStatus migration_status = 3;

  // Number of times the shared db failed to open. After a number of failures we
  // try to delete the database and and create a new one.
  optional uint32 failure_count = 4;
}