1#ifndef SDL3PP_LOADSO_H_
2#define SDL3PP_LOADSO_H_
4#include <SDL3/SDL_loadso.h>
5#include "SDL3pp_stdinc.h"
70 constexpr explicit operator bool()
const {
return !!
value; }
109 : m_resource(resource)
141 : m_resource(SDL_LoadObject(sofile))
151 std::swap(m_resource, other.m_resource);
168 m_resource =
nullptr;
177 constexpr explicit operator bool() const noexcept {
return !!m_resource; }
312 return SDL_LoadFunction(handle, name);
An opaque datatype that represents a loaded shared object.
Definition: SDL3pp_loadso.h:91
constexpr SharedObject(const SharedObjectRaw resource) noexcept
Constructs from SharedObjectParam.
Definition: SDL3pp_loadso.h:108
constexpr SharedObject & operator=(const SharedObject &other) noexcept=default
Assignment operator.
constexpr SharedObjectRaw get() const noexcept
Retrieves underlying SharedObjectRaw.
Definition: SDL3pp_loadso.h:162
SharedObject(StringParam sofile)
Dynamically load a shared object.
Definition: SDL3pp_loadso.h:140
constexpr auto operator<=>(const SharedObject &other) const noexcept=default
Comparison.
constexpr SharedObject(const SharedObject &other)=delete
Copy constructor.
constexpr SharedObject(std::nullptr_t=nullptr) noexcept
Default ctor.
Definition: SDL3pp_loadso.h:96
constexpr SharedObjectRaw release() noexcept
Retrieves underlying SharedObjectRaw and clear this.
Definition: SDL3pp_loadso.h:165
~SharedObject()
Destructor.
Definition: SDL3pp_loadso.h:146
constexpr SharedObject & operator=(SharedObject &&other) noexcept
Assignment operator.
Definition: SDL3pp_loadso.h:149
constexpr SharedObject(SharedObject &&other) noexcept
Move constructor.
Definition: SDL3pp_loadso.h:117
Helpers to use C++ strings parameters.
Definition: SDL3pp_strings.h:43
FunctionPointer LoadFunction(StringParam name)
Look up the address of the named function in a shared object.
Definition: SDL3pp_loadso.h:315
SharedObject LoadObject(StringParam sofile)
Dynamically load a shared object.
Definition: SDL3pp_loadso.h:278
void UnloadObject(SharedObjectRaw handle)
Unload a shared object from memory.
Definition: SDL3pp_loadso.h:335
void Unload()
Unload a shared object from memory.
Definition: SDL3pp_loadso.h:337
FunctionPointer LoadFunction(SharedObjectParam handle, StringParam name)
Look up the address of the named function in a shared object.
Definition: SDL3pp_loadso.h:310
SDL_SharedObject * SharedObjectRaw
Alias to raw representation for SharedObject.
Definition: SDL3pp_loadso.h:47
SDL_FunctionPointer FunctionPointer
A generic function pointer.
Definition: SDL3pp_stdinc.h:6305
Main include header for the SDL3pp library.
Safely wrap SharedObject for non owning parameters.
Definition: SDL3pp_loadso.h:54
SharedObjectRaw value
parameter's SharedObjectRaw
Definition: SDL3pp_loadso.h:55
constexpr SharedObjectParam(SharedObjectRaw value)
Constructs from SharedObjectRaw.
Definition: SDL3pp_loadso.h:58
constexpr auto operator<=>(const SharedObjectParam &other) const =default
Comparison.
constexpr SharedObjectParam(std::nullptr_t _=nullptr)
Constructs null/invalid.
Definition: SDL3pp_loadso.h:64
Semi-safe reference for SharedObject.
Definition: SDL3pp_loadso.h:227
SharedObjectRef(SharedObjectParam resource) noexcept
Constructs from SharedObjectParam.
Definition: SDL3pp_loadso.h:237
SharedObjectRef(SharedObjectRaw resource) noexcept
Constructs from SharedObjectParam.
Definition: SDL3pp_loadso.h:249
~SharedObjectRef()
Destructor.
Definition: SDL3pp_loadso.h:261
SharedObjectRef(const SharedObjectRef &other) noexcept
Copy constructor.
Definition: SDL3pp_loadso.h:255