.. index:: pair: class; rgpot::abi::ProfileLoader .. _doxid-classrgpot_1_1abi_1_1_profile_loader: class rgpot::abi::ProfileLoader =============================== .. toctree:: :hidden: Overview ~~~~~~~~ .. ref-code-block:: cpp :class: doxyrest-overview-code-block class ProfileLoader { public: // typedefs typedef int(*)(void) :target:`AbiVersionFn`; typedef const char*(*)(void) :target:`VersionFn`; typedef const char*(*)(void) :target:`LastErrorFn`; typedef int(*)(void) :target:`AvailableFn`; typedef void(*)(void) :target:`FinalizeFn`; typedef int(*)(const void*, size_t) :target:`ConfigureFn`; typedef void*(*)(const void*, size_t) :target:`SessionCreateFromConfigFn`; typedef int(*)(void*, const void*, size_t) :target:`SessionConfigureFn`; typedef void(*)(void*) :target:`SessionDestroyFn`; typedef :ref:`ProfileResult`(*)(void*, const void*, size_t, void*, size_t, size_t*) :target:`SessionCalculateResultFn`; typedef :ref:`ProfileResult`(*)(const void*, size_t, const void*, size_t, void*, size_t, size_t*) :target:`CalculateResultFromConfigFn`; typedef size_t(*)(const void*, size_t) :target:`PotentialResultSizeFn`; typedef int(*)(void*, size_t, size_t*) :target:`CapabilitiesResultFn`; // fields AbiVersionFn :target:`abi_version` = nullptr; VersionFn :target:`version` = nullptr; LastErrorFn :target:`last_error` = nullptr; AvailableFn :target:`available` = nullptr; FinalizeFn :target:`finalize` = nullptr; ConfigureFn :target:`configure` = nullptr; SessionCreateFromConfigFn :target:`session_create_from_config` = nullptr; SessionConfigureFn :target:`session_configure` = nullptr; SessionDestroyFn :target:`session_destroy` = nullptr; SessionCalculateResultFn :target:`session_calculate_result` = nullptr; CalculateResultFromConfigFn :target:`calculate_result_from_config` = nullptr; PotentialResultSizeFn :target:`potential_result_size_for_force_input` = nullptr; CapabilitiesResultFn :target:`capabilities_result` = nullptr; // construction :target:`ProfileLoader`(); // methods void :ref:`load`(const std::string& prefix, const std::string& explicit_path = ""); bool :target:`loaded`() const; const std::string& :target:`prefix`() const; std::vector :ref:`capabilities`() const; static std::vector :ref:`candidates`(const std::string& prefix, const std::string& explicit_path); }; .. _details-classrgpot_1_1abi_1_1_profile_loader: Detailed Documentation ~~~~~~~~~~~~~~~~~~~~~~ Methods ------- .. index:: pair: function; load .. _doxid-classrgpot_1_1abi_1_1_profile_loader_1a2de51b82457889ecfbc63183833c732d: .. ref-code-block:: cpp :class: doxyrest-title-code-block void load(const std::string& prefix, const std::string& explicit_path = "") dlopen the first loadable candidate and resolve the full minimum profile. Throws std::runtime_error naming every missing symbol, so a non-conforming build fails loudly at load time instead of at dispatch. .. index:: pair: function; capabilities .. _doxid-classrgpot_1_1abi_1_1_profile_loader_1adf9b0d0c77d990e49de8f830f7938ae8: .. ref-code-block:: cpp :class: doxyrest-title-code-block std::vector capabilities() const Flat ``Capabilities`` message bytes (size query + fill). .. index:: pair: function; candidates .. _doxid-classrgpot_1_1abi_1_1_profile_loader_1a10613432e0cdd58b4a3e5d94b8cc7011: .. ref-code-block:: cpp :class: doxyrest-title-code-block static std::vector candidates(const std::string& prefix, const std::string& explicit_path) Candidate library paths for a prefix: explicit path, env hints, platform default names.