26#include <shared_mutex>
101 std::span<const private_tag_definition> definitions)
110 [[nodiscard]]
auto find(std::string_view creator_id,
111 uint8_t element_offset)
const
112 -> std::optional<private_tag_definition>;
118 [[nodiscard]]
auto size() const ->
size_t;
private_tag_registry(const private_tag_registry &)=delete
private_tag_registry(private_tag_registry &&)=delete
std::map< key_type, private_tag_definition > definitions_
Storage for registered definitions.
auto register_vendor(std::string_view creator_id, std::span< const private_tag_definition > definitions) -> size_t
Register a complete vendor dictionary (batch registration)
void clear()
Clear all registered definitions.
auto find(std::string_view creator_id, uint8_t element_offset) const -> std::optional< private_tag_definition >
Look up a private tag definition by creator ID and element offset.
auto register_tag(std::string_view creator_id, const private_tag_definition &definition) -> bool
Register a single vendor-specific private tag definition.
static auto instance() -> private_tag_registry &
Get the singleton instance.
auto size() const -> size_t
Get the number of registered definitions.
auto operator=(private_tag_registry &&) -> private_tag_registry &=delete
std::pair< std::string, uint8_t > key_type
Key type: (creator_id, element_offset)
auto operator=(const private_tag_registry &) -> private_tag_registry &=delete
std::shared_mutex mutex_
Mutex for thread-safe access.
vr_type
DICOM Value Representation (VR) types.
Definition of a vendor-specific private tag.
std::string name
Human-readable name.
encoding::vr_type vr
Value Representation.
uint8_t element_offset
Offset within the private block (0x00-0xFF)