blob: 41cb720aba6b1956743e5263b1e89ad15af14502 [file] [log] [blame] [edit]
// Copyright 2015 The ChromiumOS Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef ATTESTATION_SERVER_DATABASE_H_
#define ATTESTATION_SERVER_DATABASE_H_
#include <attestation/proto_bindings/database.pb.h>
namespace attestation {
// Manages a persistent database of attestation-related data.
class Database {
public:
virtual ~Database() = default;
// Const access to the database protobuf.
virtual const AttestationDatabase& GetProtobuf() const = 0;
// Mutable access to the database protobuf. Changes made to the protobuf will
// be reflected immediately by GetProtobuf() but will not be persisted to disk
// until SaveChanges is called successfully.
virtual AttestationDatabase* GetMutableProtobuf() = 0;
// Writes the current database protobuf to disk.
virtual bool SaveChanges() = 0;
// Reloads the database protobuf from disk.
virtual bool Reload() = 0;
};
} // namespace attestation
#endif // ATTESTATION_SERVER_DATABASE_H_