#[repr(C)]pub struct IComponentVTable {Show 16 fields
pub get_extension: unsafe extern "thiscall" fn(*mut OmpComponent, u64) -> *mut (),
pub add_extension: unsafe extern "thiscall" fn(*mut OmpComponent, *mut (), bool) -> bool,
pub remove_extension_ptr: unsafe extern "thiscall" fn(*mut OmpComponent, *mut ()) -> bool,
pub remove_extension_uid: unsafe extern "thiscall" fn(*mut OmpComponent, u64) -> bool,
pub destructor: unsafe extern "thiscall" fn(),
pub supported_version: unsafe extern "thiscall" fn() -> i32,
pub component_name: unsafe extern "thiscall" fn(),
pub component_type: unsafe extern "thiscall" fn() -> i32,
pub component_version: unsafe extern "thiscall" fn(),
pub on_load: unsafe extern "thiscall" fn(*mut OmpComponent, *mut ICore),
pub on_init: unsafe extern "thiscall" fn(*mut OmpComponent, *mut IComponentList),
pub on_ready: unsafe extern "thiscall" fn(),
pub on_free: unsafe extern "thiscall" fn(*mut OmpComponent, *mut OmpComponent),
pub provide_configuration: unsafe extern "thiscall" fn(*mut OmpComponent, *mut ILogger, *mut IEarlyConfig, bool),
pub free: unsafe extern "thiscall" fn(),
pub reset: unsafe extern "thiscall" fn(),
}Expand description
Primary IComponent vtable for the MSVC ABI (Windows).
Calling convention: extern "thiscall" (this in ECX).
MSVC i686 with single inheritance generates a single destructor slot (scalar deleting).
The destructor sits at the position where ~IExtensible() was declared (after the other
IExtensible virtuals):
[0] getExtension, [1] addExtension, [2] removeExtension(ptr),
[3] removeExtension(UID), [4] ~IExtensible (scalar deleting)
IComponent adds:
[5] supportedVersion, [6] componentName, [7] componentType,
[8] componentVersion, [9] onLoad, [10] onInit, [11] onReady,
[12] onFree, [13] provideConfiguration, [14] free, [15] reset
Fields§
§get_extension: unsafe extern "thiscall" fn(*mut OmpComponent, u64) -> *mut ()§add_extension: unsafe extern "thiscall" fn(*mut OmpComponent, *mut (), bool) -> bool§remove_extension_ptr: unsafe extern "thiscall" fn(*mut OmpComponent, *mut ()) -> bool§remove_extension_uid: unsafe extern "thiscall" fn(*mut OmpComponent, u64) -> bool§destructor: unsafe extern "thiscall" fn()§supported_version: unsafe extern "thiscall" fn() -> i32§component_name: unsafe extern "thiscall" fn()§component_type: unsafe extern "thiscall" fn() -> i32§component_version: unsafe extern "thiscall" fn()§on_load: unsafe extern "thiscall" fn(*mut OmpComponent, *mut ICore)§on_init: unsafe extern "thiscall" fn(*mut OmpComponent, *mut IComponentList)§on_ready: unsafe extern "thiscall" fn()§on_free: unsafe extern "thiscall" fn(*mut OmpComponent, *mut OmpComponent)§provide_configuration: unsafe extern "thiscall" fn(*mut OmpComponent, *mut ILogger, *mut IEarlyConfig, bool)§free: unsafe extern "thiscall" fn()§reset: unsafe extern "thiscall" fn()Auto Trait Implementations§
impl Freeze for IComponentVTable
impl RefUnwindSafe for IComponentVTable
impl Send for IComponentVTable
impl Sync for IComponentVTable
impl Unpin for IComponentVTable
impl UnsafeUnpin for IComponentVTable
impl UnwindSafe for IComponentVTable
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more