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.