10#ifndef LIBSIMINTEGRATORS_INTEGRATOR_REGISTRY_H
11#define LIBSIMINTEGRATORS_INTEGRATOR_REGISTRY_H
SimResult
Return codes shared by libsimcore modules.
Definition field.h:29
Base definitions for time-integration schemes in libsimintegrators.
SimResult integrator_registry_create(const IntegratorRegistry *registry, const char *name, const IntegratorConfig *config, Integrator *out)
Create an integrator from a registered factory.
SimResult integrator_registry_register(IntegratorRegistry *registry, const char *name, IntegratorCreateFn create_fn)
Add or replace a factory under a registry name.
SimResult(* IntegratorCreateFn)(const IntegratorConfig *config, Integrator *out)
Factory function creating an integrator instance.
Definition integrator_registry.h:27
IntegratorCreateFn integrator_registry_lookup(const IntegratorRegistry *registry, const char *name)
Look up a factory by registry name.
void integrator_registry_destroy(IntegratorRegistry *registry)
Release registry storage.
SimResult integrator_registry_init(IntegratorRegistry *registry)
Initialize a registry and register built-in integrator factories.
SimResult integrator_registry_register_builtin(IntegratorRegistry *registry)
Register the built-in integrator factory set.
Configuration parameters for integrator construction.
Definition integrator.h:97
Entry stored by the registry.
Definition integrator_registry.h:35
char name[32]
Definition integrator_registry.h:36
IntegratorCreateFn create
Definition integrator_registry.h:37
Registry container for integrator factories.
Definition integrator_registry.h:46
IntegratorRegistryEntry * entries
Definition integrator_registry.h:47
size_t capacity
Definition integrator_registry.h:49
size_t count
Definition integrator_registry.h:48
Integrator instance shared across schemes.
Definition integrator.h:125