// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once #include #include #include namespace storage { namespace spi { /** * A simple rpc server persistence provider factory that will only * work once, by returning a precreated persistence provider instance. **/ struct DummyProviderFactory : ProviderStub::PersistenceProviderFactory { typedef std::unique_ptr UP; typedef storage::spi::PersistenceProvider Provider; mutable std::unique_ptr provider; DummyProviderFactory(std::unique_ptr p) : provider(std::move(p)) {} std::unique_ptr create() const override { ASSERT_TRUE(provider.get() != 0); std::unique_ptr ret = std::move(provider); ASSERT_TRUE(provider.get() == 0); return ret; } }; } // namespace spi } // namespace storage