blob: 26d71c106be915e350db1df86302def6074ddbaa [file] [log] [blame]
// Copyright 2014 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef BUFFET_STORAGE_INTERFACE_H_
#define BUFFET_STORAGE_INTERFACE_H_
#include <memory>
#include <base/values.h>
namespace buffet {
// We need to persist data in a couple places, and it is convenient to hide
// the details of this storage behind an interface for test purposes.
class StorageInterface {
public:
// Load the device registration configuration from storage.
// If it fails (e.g. the storage container [file?] doesn't exist), then
// it returns empty unique_ptr (aka nullptr).
virtual std::unique_ptr<base::Value> Load() = 0;
// Save the device registration configuration to storage.
// If saved successfully, returns true. Could fail when writing to
// physical storage like file system for various reasons (out of disk space,
// access permissions, etc).
virtual bool Save(const base::Value* config) = 0;
};
} // namespace buffet
#endif // BUFFET_STORAGE_INTERFACE_H_