Skip to main content

GCPluginInstance

Struct GCPluginInstance 

pub struct GCPluginInstance<T: GCPluginCallbackHandler>(Arc<GCPluginInstanceInner<T>>);
Expand description

GCPluginInstance is a reference counted wrapper that holds the PluginRunningInstance, which contains the resources necessary for the plugin execution, and provides a safe way to interact with it.

This structure can be cloned and shared between threads.

Tuple Fields§

§0: Arc<GCPluginInstanceInner<T>>

Implementations§

§

impl<T: GCPluginCallbackHandler> GCPluginInstance<T>

pub(crate) fn new( instance_name: &str, plugin_name: String, callback_handler: Box<T>, ) -> Self

Creates a new instance without starting the underlying plugin.

pub(crate) fn init( &self, config: GCPluginInstanceConfig<'_>, plugin_dll: PluginDLL, ) -> Result<(), GCPluginManagerError>

Starts the plugin instance.

This function should not be exposed to the rest of the application. Each instance should be initialized by the GCPluginManager instead. This function assumes that EVERY plugin instance name are unique!

Attempts to start an instance belonging to a different plugin DLL will result in an ErrorPluginMismatch.

pub fn is_running(&self) -> bool

Check if the plugin instance is running.

pub fn get_instance_name(&self) -> &str

Get the instance name

pub fn get_plugin_name(&self) -> &str

Get the plugin DLL name

pub fn get_plugin_info(&self) -> Option<GCPluginInfo>

Get the plugin info

This only returns the plugin info if the plugin instance is running. If the info is required even when instance is not running consider using the GCPlugin instead.

pub(crate) fn shutdown(&self) -> Result<(), GCPluginManagerError>

Shutdown the underlying plugin instance.

This function should be called only by the GCPlugin when the plugin is being stopped, and thus isn’t be exposed to the rest of the application.

Trait Implementations§

§

impl<T> Clone for GCPluginInstance<T>

§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl<T: GCPluginCallbackHandler> Debug for GCPluginInstance<T>

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
§

impl<T: GCPluginCallbackHandler + 'static> Deref for GCPluginInstance<T>

§

type Target = dyn GCDatapointSubscriber

The resulting type after dereferencing.
§

fn deref(&self) -> &Self::Target

Dereferences the value.
§

impl<T: GCPluginCallbackHandler + 'static> From<GCPluginInstance<T>> for Arc<dyn GCDatapointSubscriber>

§

fn from(val: GCPluginInstance<T>) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.