graft
April 7, 2026 ยท View on GitHub
{#graftmodule}
graft
Native plugin ABI contract and runtime loading helpers.
Namespaces
| Name | Description |
|---|---|
graft | Shared-library plugin contracts and runtime loading helpers. |
{#graft}
graft
Shared-library plugin contracts and runtime loading helpers.
Classes
| Name | Description |
|---|---|
Library | |
Manifest |
Enumerations
| Name | Description |
|---|---|
RuntimeKind |
{#runtimekind}
RuntimeKind
enum RuntimeKind
| Value | Description |
|---|---|
Unknown | |
Native | |
Worker |
Functions
| Return | Name | Description |
|---|---|---|
Graft_APIRuntimeKind | parseRuntimeKind | |
Graft_API const char * | runtimeKindName | |
Graft_API void | validateManifest |
{#parseruntimekind}
parseRuntimeKind
Graft_APIRuntimeKind parseRuntimeKind(std::string_view runtime) noexcept
{#runtimekindname}
runtimeKindName
Graft_API const char * runtimeKindName(RuntimeKind runtime) noexcept
{#validatemanifest}
validateManifest
Graft_API void validateManifest(const Manifest & manifest, std::string_view path)
Variables
| Return | Name | Description |
|---|---|---|
constexpr std::uint32_t | ABI_VERSION | |
constexpr const char * | MANIFEST_SYMBOL | |
constexpr const char * | RUNTIME_NATIVE | |
constexpr const char * | RUNTIME_WORKER |
{#abi_version}
ABI_VERSION
constexpr std::uint32_t ABI_VERSION = 1
{#manifest_symbol}
MANIFEST_SYMBOL
constexpr const char * MANIFEST_SYMBOL = "icy_graft_manifest"
{#runtime_native}
RUNTIME_NATIVE
constexpr const char * RUNTIME_NATIVE = "native"
{#runtime_worker}
RUNTIME_WORKER
constexpr const char * RUNTIME_WORKER = "worker"
{#library}
Library
#include <icy/graft/graft.h>
Public Methods
| Return | Name | Description |
|---|---|---|
Library | Defaulted constructor. | |
Library | Deleted constructor. | |
Library | Deleted constructor. | |
void | open | |
void | close | |
bool | isOpen const | |
const std::string & | path const | |
const Manifest & | manifest const | |
void * | requireSymbolAddress const | |
T | requireSymbol const inline | |
T | entrypoint const inline |
{#library-1}
Library
Library() = default
Defaulted constructor.
{#library-2}
Library
Library(const Library &) = delete
Deleted constructor.
{#library-3}
Library
Library(Library &&) = delete
Deleted constructor.
{#open-6}
open
void open(const std::string & path)
{#close-24}
close
void close() noexcept
{#isopen}
isOpen
const
bool isOpen() const noexcept
{#path-3}
path
const
const std::string & path() const noexcept
{#manifest-3}
manifest
const
const Manifest & manifest() const
{#requiresymboladdress}
requireSymbolAddress
const
void * requireSymbolAddress(const char * name) const
{#requiresymbol}
requireSymbol
const inline
template<typename T> inline T requireSymbol(const char * name) const
{#entrypoint-1}
entrypoint
const inline
template<typename T> inline T entrypoint() const
Private Attributes
| Return | Name | Description |
|---|---|---|
SharedLibrary | _library | |
std::string | _path | |
const Manifest * | _manifest | |
bool | _open |
{#_library}
_library
SharedLibrary _library
{#_path-4}
_path
std::string _path
{#_manifest}
_manifest
const Manifest * _manifest = nullptr
{#_open}
_open
bool _open = false
Private Methods
| Return | Name | Description |
|---|---|---|
void | loadManifest |
{#loadmanifest}
loadManifest
void loadManifest()
{#manifest-4}
Manifest
#include <icy/graft/graft.h>
Public Attributes
| Return | Name | Description |
|---|---|---|
std::uint32_t | abiVersion | |
const char * | fileName | |
const char * | id | |
const char * | name | |
const char * | version | |
const char * | runtime | |
const char * | entrypoint |
{#abiversion-1}
abiVersion
std::uint32_t abiVersion
{#filename-3}
fileName
const char * fileName
{#id-4}
id
const char * id
{#name-8}
name
const char * name
{#version-6}
version
const char * version
{#runtime-1}
runtime
const char * runtime
{#entrypoint-2}
entrypoint
const char * entrypoint