blob: 2c2c74834347bc7c54630bacc4a0dad478db9e4a [file] [log] [blame]
// Copyright 2016 The Fuchsia 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 PERIDOT_BIN_LEDGER_APP_PAGE_IMPL_H_
#define PERIDOT_BIN_LEDGER_APP_PAGE_IMPL_H_
#include <lib/fxl/macros.h>
#include "peridot/bin/ledger/fidl/include/types.h"
namespace ledger {
class PageDelayingFacade;
// An implementation of the |Page| FIDL interface.
class PageImpl : public Page {
public:
explicit PageImpl(PageDelayingFacade* delaying_facade);
~PageImpl() override;
private:
// Page:
void GetId(GetIdCallback callback) override;
void GetSnapshot(fidl::InterfaceRequest<PageSnapshot> snapshot_request,
std::vector<uint8_t> key_prefix,
fidl::InterfaceHandle<PageWatcher> watcher,
GetSnapshotCallback callback) override;
void Put(std::vector<uint8_t> key, std::vector<uint8_t> value,
PutCallback callback) override;
void PutWithPriority(std::vector<uint8_t> key,
std::vector<uint8_t> value, Priority priority,
PutWithPriorityCallback callback) override;
void PutReference(std::vector<uint8_t> key, Reference reference,
Priority priority, PutReferenceCallback callback) override;
void Delete(std::vector<uint8_t> key, DeleteCallback callback) override;
void Clear(ClearCallback callback) override;
void CreateReferenceFromSocket(
uint64_t size, zx::socket data,
CreateReferenceFromSocketCallback callback) override;
void CreateReferenceFromBuffer(
fuchsia::mem::Buffer data,
CreateReferenceFromBufferCallback callback) override;
void StartTransaction(StartTransactionCallback callback) override;
void Commit(CommitCallback callback) override;
void Rollback(RollbackCallback callback) override;
void SetSyncStateWatcher(fidl::InterfaceHandle<SyncWatcher> watcher,
SetSyncStateWatcherCallback callback) override;
void WaitForConflictResolution(
WaitForConflictResolutionCallback callback) override;
PageDelayingFacade* delaying_facade_;
FXL_DISALLOW_COPY_AND_ASSIGN(PageImpl);
};
} // namespace ledger
#endif // PERIDOT_BIN_LEDGER_APP_PAGE_IMPL_H_