Helios Engine
A modular ECS based data-oriented C++23 game engine framework
Loading...
Searching...
No Matches
dynamic_plugin.hpp File Reference
#include <helios/app/details/profile.hpp>
#include <helios/app/plugin.hpp>
#include <helios/assert.hpp>
#include <helios/log/logger.hpp>
#include <helios/utils/dynamic_library.hpp>
#include <cstdint>
#include <expected>
#include <filesystem>
#include <format>
#include <memory>
#include <string_view>
#include <system_error>

Go to the source code of this file.

Classes

struct  helios::app::PluginTypeExport
 C-compatible plugin identity exported by dynamic libraries. More...
struct  helios::app::DynamicPluginConfig
 Configuration for dynamic plugin loading. More...
class  helios::app::DynamicPlugin
 Wrapper for dynamically loaded plugins. More...

Namespaces

namespace  helios
namespace  helios::app

Typedefs

using helios::app::CreatePluginFn = Plugin* (*)()
 Function signature for plugin creation.
using helios::app::PluginTypeExportFn = const PluginTypeExport* (*)()
 Function signature for the plugin type export symbol.
template<typename T>
using helios::app::DynamicPluginResult = std::expected<T, DynamicPluginError>

Enumerations

enum class  helios::app::DynamicPluginError : uint8_t {
  helios::app::kLibraryLoadFailed , helios::app::kCreateSymbolNotFound , helios::app::kIdSymbolNotFound , helios::app::kNameSymbolNotFound ,
  helios::app::kCreateFailed , helios::app::kReloadFailed
}
 Error codes for dynamic plugin operations. More...

Functions

constexpr std::string_view helios::app::DynamicPluginErrorToString (DynamicPluginError error) noexcept
 Gets a human-readable description for a DynamicPluginError.

Variables

constexpr std::string_view helios::app::kDefaultCreateSymbol = "helios_create_plugin"
 Default symbol name for the plugin creation function.
constexpr std::string_view helios::app::kDefaultPluginIdSymbol
 Default symbol name for the plugin ID function.