pub struct InitializedPluginHandle<'a> { /* private fields */ }Expand description
A handle to a plugin instance that has finished initializing.
This handle can be used to obtain a PluginSharedHandle to then call the plugin’s thread-safe
method.
However, this handle can outlive the plugin instance, as host callbacks may be called during the plugin’s destruction.
Therefore, the PluginSharedHandle can only be accessed through the access
method, ensuring no access can be made during or after destruction.
Implementations§
Source§impl<'a> InitializedPluginHandle<'a>
impl<'a> InitializedPluginHandle<'a>
Sourcepub const fn as_raw(&self) -> &'a clap_plugin
pub const fn as_raw(&self) -> &'a clap_plugin
Returns a shared reference to the raw, C-FFI compatible plugin instance struct.
This type enforces that the reference is valid for the lifetime of the instance ('a).
If you need to access the raw pointer without dereferencing it first, use
as_raw_ptr instead.
Sourcepub const fn as_raw_ptr(&self) -> *const clap_plugin
pub const fn as_raw_ptr(&self) -> *const clap_plugin
Returns a raw pointer to the raw, C-FFI compatible plugin instance struct, without dereferencing it.
If you need to safely access the plugin instance struct through a shared reference,
use as_raw instead.
Sourcepub fn access<T>(
&self,
f: impl FnOnce(PluginSharedHandle<'_>) -> T,
) -> Option<T>
pub fn access<T>( &self, f: impl FnOnce(PluginSharedHandle<'_>) -> T, ) -> Option<T>
Attempts to access and perform the given operation on the plugin’s handle, returning its result.
This method will return None if the plugin instance is being or has been destroyed, and
f will not be called.
However, this method guarantees that the plugin instance will block starting its destruction
while the given operation f is still ongoing.
This ensures the plugin instance is always valid if and when f runs.
§Realtime safety
This method may block the current thread if it is called concurrently while the plugin’s
instance is being destroyed (i.e. PluginInstance::drop is running).
Sourcepub fn get_extension<E: Extension<ExtensionSide = PluginExtensionSide>>(
&self,
) -> Option<E>
pub fn get_extension<E: Extension<ExtensionSide = PluginExtensionSide>>( &self, ) -> Option<E>
Retrieves the plugin’s pointer to the given extension type E.
This returns None if the plugin does not support the given extension.
Trait Implementations§
Source§impl<'a> Clone for InitializedPluginHandle<'a>
impl<'a> Clone for InitializedPluginHandle<'a>
Source§fn clone(&self) -> InitializedPluginHandle<'a>
fn clone(&self) -> InitializedPluginHandle<'a>
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more