Struct ThreadObject
pub struct ThreadObject<T>(/* private fields */);Expand description
ThreadObject represents a weak reference to a Kanzi object.
It exists primarily to allow Objects to be shared safely between multiple threads.
To create a ThreadObject, call the ThreadObject::downgrade function.
To convert a ThreadObject back to an owned object, call ThreadObject::upgrade.
Implementations§
§impl<T> ThreadObject<T>where
T: ObjectConstraint,
impl<T> ThreadObject<T>where
T: ObjectConstraint,
pub fn upgrade(self, domain: &Domain) -> Result<Option<T>, Error>
pub fn upgrade(self, domain: &Domain) -> Result<Option<T>, Error>
Upgrades a ThreadObject to an owned object of the same type.
If None is returned, the object has been destroyed.
pub fn unlock(self, domain: &Domain) -> Weak<T>
pub fn unlock(self, domain: &Domain) -> Weak<T>
Unlocks a ThreadObject to a Weak object of the same type.
pub fn downgrade(object: T) -> ThreadObject<T>
pub fn downgrade(object: T) -> ThreadObject<T>
Downgrades an object to a thread object of the same type.
pub fn downgrade_ref(object: &T) -> ThreadObject<T>
pub fn downgrade_ref(object: &T) -> ThreadObject<T>
Downgrades an object reference to a thread object of the same type.
Methods from Deref<Target = ThreadObjectInner<T>>§
pub fn upgrade_ref(&self, domain: &Domain) -> Result<Option<T>, Error>
pub fn upgrade_ref(&self, domain: &Domain) -> Result<Option<T>, Error>
Upgrades a ThreadObject reference to an owned object of the same type.
If None is returned, the object has been destroyed.
pub fn unlock_ref(&self, domain: &Domain) -> Weak<T>
pub fn unlock_ref(&self, domain: &Domain) -> Weak<T>
Unlocks a ThreadObject reference to a Weak reference of the same type.
Trait Implementations§
§impl<T> Clone for ThreadObject<T>where
T: Clone,
impl<T> Clone for ThreadObject<T>where
T: Clone,
§fn clone(&self) -> ThreadObject<T>
fn clone(&self) -> ThreadObject<T>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl<T> Deref for ThreadObject<T>
impl<T> Deref for ThreadObject<T>
§type Target = ThreadObjectInner<T>
type Target = ThreadObjectInner<T>
§fn deref(&self) -> &<ThreadObject<T> as Deref>::Target
fn deref(&self) -> &<ThreadObject<T> as Deref>::Target
Auto Trait Implementations§
impl<T> Freeze for ThreadObject<T>
impl<T> RefUnwindSafe for ThreadObject<T>where
T: RefUnwindSafe,
impl<T> Send for ThreadObject<T>
impl<T> Sync for ThreadObject<T>
impl<T> Unpin for ThreadObject<T>
impl<T> UnwindSafe for ThreadObject<T>where
T: RefUnwindSafe,
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit)