// 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;
}