X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=include%2Fprivate%2Fnamespaceconfigurationsimpl.hpp;fp=include%2Fprivate%2Fnamespaceconfigurationsimpl.hpp;h=87c80b9faa8bcdd03228b65b746ae2f66b35a9de;hb=ef2bf51d04aaf01fa0cabdcaf905b23423067662;hp=0000000000000000000000000000000000000000;hpb=edc9b96a441194b571e8d55ec1603b5be0ea52eb;p=ric-plt%2Fsdl.git diff --git a/include/private/namespaceconfigurationsimpl.hpp b/include/private/namespaceconfigurationsimpl.hpp new file mode 100644 index 0000000..87c80b9 --- /dev/null +++ b/include/private/namespaceconfigurationsimpl.hpp @@ -0,0 +1,51 @@ +/* + Copyright (c) 2018-2019 Nokia. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef SHAREDDATALAYER_NAMESPACECONFIGURATIONIMPL_HPP_ +#define SHAREDDATALAYER_NAMESPACECONFIGURATIONIMPL_HPP_ + +#include "private/namespaceconfigurations.hpp" +#include +#include + +namespace shareddatalayer +{ + class NamespaceConfigurationsImpl: public NamespaceConfigurations + { + public: + NamespaceConfigurationsImpl(); + + ~NamespaceConfigurationsImpl() override; + + void addNamespaceConfiguration(const NamespaceConfiguration& namespaceConfiguration) override; + bool isDbBackendUseEnabled(const std::string& ns) const override; + bool areNotificationsEnabled(const std::string& ns) const override; + std::string getDescription(const std::string& ns) const override; + bool isEmpty() const override; + + //Meant for UT usage + bool isNamespaceInLookupTable(const std::string& ns) const; + + private: + std::vector namespaceConfigurations; + const std::vector::size_type defaultConfigurationIndex; + mutable std::unordered_map::size_type> namespaceConfigurationsLookupTable; + + const NamespaceConfiguration& findConfigurationForNamespace(const std::string& ns) const; + }; +} + +#endif