blob: 63a2c31dff6ccfd5b3ad071fc69bafcf17c5e344 [file] [log] [blame]
Brad Bishop4b916f12017-05-23 18:06:38 -04001/**
2 * Copyright © 2017 IBM Corporation
3 *
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
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
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.
15 */
16#include "propertywatchimpl.hpp"
17
18namespace phosphor
19{
20namespace dbus
21{
22namespace monitoring
23{
24
25/** @brief convert index.
26 *
27 * An optimal start implementation requires objects organized in the
28 * same structure as the mapper response. The convert method reorganizes
29 * the flat structure of the index to match.
30 *
31 * @param[in] index - The index to be converted.
32 */
33MappedPropertyIndex convert(const PropertyIndex& index)
34{
35 MappedPropertyIndex m;
36
37 for (const auto& i : index)
38 {
Matt Spinler1abcb062018-02-26 09:14:31 -060039 const auto& path = std::get<pathIndex>(i.first);
40 const auto& interface = std::get<interfaceIndex>(i.first);
41 const auto& property = std::get<propertyIndex>(i.first);
Brad Bishop4b916f12017-05-23 18:06:38 -040042 m[path][interface].push_back(property);
43 }
44
45 return m;
46}
47} // namespace monitoring
48} // namespace dbus
49} // namespace phosphor