| // 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 LIB_TEST_RUNNER_CPP_TEST_RUNNER_STORE_IMPL_H_ |
| #define LIB_TEST_RUNNER_CPP_TEST_RUNNER_STORE_IMPL_H_ |
| |
| #include <map> |
| #include <queue> |
| |
| #include <fuchsia/testing/runner/cpp/fidl.h> |
| #include "lib/fidl/cpp/binding_set.h" |
| #include "lib/fidl/cpp/string.h" |
| #include "src/lib/fxl/macros.h" |
| |
| using fuchsia::testing::runner::TestRunnerStore; |
| |
| namespace test_runner { |
| |
| class TestRunnerStoreImpl : public TestRunnerStore { |
| public: |
| TestRunnerStoreImpl(); |
| void AddBinding(fidl::InterfaceRequest<TestRunnerStore> req); |
| |
| private: |
| // |TestRunnerStore| |
| void Get(std::string key, GetCallback cb) override; |
| // |TestRunnerStore| |
| void Put(std::string key, std::string value, PutCallback cb) override; |
| |
| void MaybeNotify(const std::string& key); |
| |
| std::map<fidl::StringPtr, std::queue<GetCallback>> get_queue_; |
| std::map<fidl::StringPtr, std::queue<std::string>> store_; |
| fidl::BindingSet<TestRunnerStore> binding_set_; |
| |
| FXL_DISALLOW_COPY_AND_ASSIGN(TestRunnerStoreImpl); |
| }; |
| |
| } // namespace test_runner |
| |
| #endif // LIB_TEST_RUNNER_CPP_TEST_RUNNER_STORE_IMPL_H_ |