blob: 5f4186b877fd734a4a6259479970a34917c202e3 [file]
#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_