// Minimal ONNX model provider adapter exposing yams_model_provider_v1 #pragma once #include #include #include #include #include #include extern "C" { #include "yams/plugins/model_provider_v1.h" } struct OnnxProviderContext { std::mutex mu; yams_model_load_progress_cb progress_cb = nullptr; void* progress_user = nullptr; // For a future implementation, track loaded models. std::unordered_set loaded_models; }; // Returns a singleton vtable for the ONNX provider and ensures its context is initialized. // The returned pointer is owned by the plugin and remains valid for the plugin lifetime. extern "C" yams_model_provider_v1* yams_onnx_get_model_provider(); // Explicitly shutdown the model pool before static destruction. // Must be called from yams_plugin_shutdown() to avoid mutex issues. extern "C" void yams_onnx_shutdown_provider();