// Copyright (c) Advanced Micro Devices, Inc. // SPDX-License-Identifier: MIT #pragma once #include "profiler-hub/writer_types.hpp" #include "common/types.hpp" #include "entity_utility.hpp" #include #include #include #include namespace profiler_hub { using primary_key_t = size_t; struct entity_registry { [[nodiscard]] auto& node_info() { return m_node_info; } [[nodiscard]] auto& process_info() { return m_process_info; } [[nodiscard]] auto& agent_info() { return m_agent_info; } [[nodiscard]] auto& pmc_info() { return m_pmc_info; } [[nodiscard]] auto& thread_info() { return m_thread_info; } [[nodiscard]] auto& stream_info() { return m_stream_info; } [[nodiscard]] auto& queue_info() { return m_queue_info; } [[nodiscard]] auto& code_object_info() { return m_code_object_info; } [[nodiscard]] auto& kernel_symbol_info() { return m_kernel_symbol_info; } [[nodiscard]] auto& track_info() { return m_track_info; } [[nodiscard]] auto& string_info() { return m_string_info; } private: entity_utility> m_node_info{}; entity_utility> m_process_info{}; entity_utility< std::unordered_map> m_agent_info{}; entity_utility> m_pmc_info{}; entity_utility> m_thread_info{}; entity_utility> m_stream_info{}; entity_utility> m_queue_info{}; entity_utility> m_code_object_info{}; entity_utility> m_kernel_symbol_info{}; entity_utility> m_track_info{}; entity_utility> m_string_info{}; }; } // namespace profiler_hub