class rgpot::abi::ProfileLoader¶
Overview¶
class ProfileLoader {
public:
// typedefs
typedef int(*)(void) AbiVersionFn;
typedef const char*(*)(void) VersionFn;
typedef const char*(*)(void) LastErrorFn;
typedef int(*)(void) AvailableFn;
typedef void(*)(void) FinalizeFn;
typedef int(*)(const void*, size_t) ConfigureFn;
typedef void*(*)(const void*, size_t) SessionCreateFromConfigFn;
typedef int(*)(void*, const void*, size_t) SessionConfigureFn;
typedef void(*)(void*) SessionDestroyFn;
typedef ProfileResult(*)(void*, const void*, size_t, void*, size_t, size_t*) SessionCalculateResultFn;
typedef ProfileResult(*)(const void*, size_t, const void*, size_t, void*, size_t, size_t*) CalculateResultFromConfigFn;
typedef size_t(*)(const void*, size_t) PotentialResultSizeFn;
typedef int(*)(void*, size_t, size_t*) CapabilitiesResultFn;
// fields
AbiVersionFn abi_version = nullptr;
VersionFn version = nullptr;
LastErrorFn last_error = nullptr;
AvailableFn available = nullptr;
FinalizeFn finalize = nullptr;
ConfigureFn configure = nullptr;
SessionCreateFromConfigFn session_create_from_config = nullptr;
SessionConfigureFn session_configure = nullptr;
SessionDestroyFn session_destroy = nullptr;
SessionCalculateResultFn session_calculate_result = nullptr;
CalculateResultFromConfigFn calculate_result_from_config = nullptr;
PotentialResultSizeFn potential_result_size_for_force_input = nullptr;
CapabilitiesResultFn capabilities_result = nullptr;
// construction
ProfileLoader();
// methods
void load(const std::string& prefix, const std::string& explicit_path = “”);
bool loaded() const;
const std::string& prefix() const;
std::vector<unsigned char> capabilities() const;
static std::vector<std::string> candidates(const std::string& prefix, const std::string& explicit_path);
};
Detailed Documentation¶
Methods¶
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.
std::vector<unsigned char> capabilities() const
Flat Capabilities message bytes (size query + fill).
static std::vector<std::string> candidates(const std::string& prefix, const std::string& explicit_path)
Candidate library paths for a prefix: explicit path, env hints, platform default names.