// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. /** * \class storage::framework::StorageComponentRegisterImpl * \ingroup component * * \brief Subclass of component register impl that handles storage components. */ #pragma once #include "storagecomponentregisterimpl.h" #include #include #include namespace storage { class ServiceLayerComponentRegisterImpl : public virtual ServiceLayerComponentRegister, public virtual StorageComponentRegisterImpl { std::mutex _componentLock; std::vector _components; ContentBucketSpaceRepo _bucketSpaceRepo; MinimumUsedBitsTracker _minUsedBitsTracker; public: using UP = std::unique_ptr; explicit ServiceLayerComponentRegisterImpl(const ContentBucketDbOptions&); ContentBucketSpaceRepo& getBucketSpaceRepo() { return _bucketSpaceRepo; } MinimumUsedBitsTracker& getMinUsedBitsTracker() { return _minUsedBitsTracker; } void registerServiceLayerComponent(ServiceLayerManagedComponent&) override; void setDistribution(std::shared_ptr distribution) override; }; } // storage