| #ifndef THIRD_PARTY_GBMCWEB_DEVPATH_PLUGIN_REDFISH_TO_UHM_TRIE_H_ |
| #define THIRD_PARTY_GBMCWEB_DEVPATH_PLUGIN_REDFISH_TO_UHM_TRIE_H_ |
| |
| #include <memory> |
| |
| |
| #include "redfish_to_uhm_mapping.pb.h" |
| #include "redfish_to_uhm_mapping_value.hpp" |
| #include "redfish_to_uhm_trie_node.hpp" |
| |
| namespace devpath_plugin { |
| |
| class RedfishToUhmTrie { |
| public: |
| RedfishToUhmTrie() = default; |
| |
| // Split path by '/' and insert based on key's URL pattern |
| void Insert(const ::devpath_plugin::Key& key, |
| const std::shared_ptr<const RedfishToUhmMappingValue>& value); |
| |
| // Split path by '/' and lookup using the key's URL pattern |
| std::shared_ptr<const RedfishToUhmMappingValue> GetMappingFromUrl( |
| const ::devpath_plugin::Key& key) const; |
| |
| const RedfishToUhmTrieNode& GetRoot() const { return root_; } |
| |
| private: |
| RedfishToUhmTrieNode root_; |
| }; |
| |
| } // namespace devpath_plugin |
| |
| #endif // THIRD_PARTY_GBMCWEB_DEVPATH_PLUGIN_REDFISH_TO_UHM_TRIE_H_ |