blob: 6ecab67c2b9a283d2e5e3d549583ec8dc790be06 [file] [log] [blame]
// Copyright 2017 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 SRC_LEDGER_BIN_TESTING_GET_PAGE_ENSURE_INITIALIZED_H_
#define SRC_LEDGER_BIN_TESTING_GET_PAGE_ENSURE_INITIALIZED_H_
#include <lib/fit/function.h>
#include "src/ledger/bin/fidl/include/types.h"
namespace ledger {
// Determines whether calling the |GetPageEnsureInitialized| callback should be
// done after some delay. This can be used in benchmarks, to make sure that all
// backround I/O operations have finished before measurements start.
enum DelayCallback : bool { NO, YES };
// Retrieves the requested page of the given Ledger instance amd returns after
// ensuring that it is initialized. If |id| is nullptr, a new page with a unique
// id is created.
void GetPageEnsureInitialized(
LedgerPtr* ledger, PageIdPtr requested_id, DelayCallback delay_callback,
fit::function<void()> error_handler,
fit::function<void(Status, PagePtr, PageId)> callback);
} // namespace ledger
#endif // SRC_LEDGER_BIN_TESTING_GET_PAGE_ENSURE_INITIALIZED_H_