43#ifndef RTYPE_LIBRARYMANAGER_HPP_
44 #define RTYPE_LIBRARYMANAGER_HPP_
51 #include <shared_mutex>
53 #include <string_view>
54 #include <unordered_map>
82 auto
load(
std::string_view path)
109 std::unordered_map<
std::
string,
Declaration of the DynamicLibrary class.
Error handling system with categorized error codes.
Comprehensive error object with severity and retry tracking.
Represents a dynamically loaded library.
Manages dynamic libraries, providing loading and caching mechanisms.
std::shared_mutex _mutex
Mutex for thread-safe access.
auto loadShared(std::string_view path) -> std::expected< std::shared_ptr< DynamicLibrary >, rtp::Error >
Shared API.
~LibraryManager() noexcept=default
auto load(std::string_view path) -> std::expected< const DynamicLibrary *, rtp::Error >
Main API.
static auto loadStandalone(std::string_view path) -> std::expected< std::unique_ptr< DynamicLibrary >, rtp::Error >
Isolated API (Factory).
std::unordered_map< std::string, std::shared_ptr< DynamicLibrary > > _libraries
auto getOrLoadInternal(std::string_view path) -> std::expected< std::shared_ptr< DynamicLibrary >, rtp::Error >
Get an existing library or load it if not present.
LibraryManager(void)=default