2 * Copyright (c) 2020 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 #include "dali-scene-loader/public-api/customization.h"
18 #include "dali/devel-api/common/map-wrapper.h"
25 struct Customization::Map::Impl {
26 std::map<Tag, Customization> mCustomizations;
29 Customization::Map::Map()
33 Customization::Map::~Map() = default;
35 Customization* Customization::Map::Set(Tag tag, Customization&& customization)
37 auto& result = (mImpl->mCustomizations[tag] = customization);
41 const Customization* Customization::Map::Get(Tag tag) const
43 auto& customizations = mImpl->mCustomizations;
44 auto iFind = customizations.find(tag);
45 if (iFind != customizations.end())
47 return &iFind->second;
52 Customization* Customization::Map::Get(Tag tag)
54 auto& customizations = mImpl->mCustomizations;
55 auto iFind = customizations.find(tag);
56 if (iFind != customizations.end())
58 return &iFind->second;
63 uint32_t Customization::Map::Size() const
65 return mImpl->mCustomizations.size();
68 void Customization::Map::Clear()
70 mImpl->mCustomizations.clear();
73 struct Customization::Choices::Impl
75 std::map<Tag, OptionType> mOptions;
78 Customization::Choices::Choices()
82 Customization::Choices::~Choices() = default;
84 void Customization::Choices::Set(Tag tag, OptionType option)
86 mImpl->mOptions[tag] = option;
89 Customization::OptionType Customization::Choices::Get(Tag tag) const
91 auto& options = mImpl->mOptions;
92 auto iFind = options.find(tag);
93 if (iFind != options.end())
100 uint32_t Customization::Choices::Size() const
102 return mImpl->mOptions.size();
105 void Customization::Choices::Clear()
107 mImpl->mOptions.clear();