blob: 762001d47f1f179a2c59e5f31c387f7ae87309fc [file] [log] [blame]
// Copyright 2020 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.
#include <fidl/fuchsia.boot/cpp/wire.h>
#include <lib/async/dispatcher.h>
#include <map>
#ifndef MOCK_BOOT_ARGUMENTS_SERVER_H_
#define MOCK_BOOT_ARGUMENTS_SERVER_H_
namespace mock_boot_arguments {
class Server final : public fidl::WireServer<fuchsia_boot::Arguments> {
public:
explicit Server(std::map<std::string, std::string>&& args) : arguments_{args} {}
explicit Server() = default;
zx::result<fidl::WireSyncClient<fuchsia_boot::Arguments>> CreateClient(
async_dispatcher_t* dispatcher);
void GetString(GetStringRequestView request, GetStringCompleter::Sync& completer) override;
void GetStrings(GetStringsRequestView request, GetStringsCompleter::Sync& completer) override;
void GetBool(GetBoolRequestView request, GetBoolCompleter::Sync& completer) override;
void GetBools(GetBoolsRequestView request, GetBoolsCompleter::Sync& completer) override;
void Collect(CollectRequestView request, CollectCompleter::Sync& completer) override;
std::map<std::string, std::string>& GetArgumentsMap() { return arguments_; }
private:
std::map<std::string, std::string> arguments_;
bool StrToBool(const fidl::StringView& key, bool defaultval);
};
} // namespace mock_boot_arguments
#endif // MOCK_BOOT_ARGUMENTS_SERVER_H_