IOHIDTransaction

Struct IOHIDTransaction 

Source
pub struct IOHIDTransaction { /* private fields */ }
Available on crate feature hid only.
Expand description

This is the type of a reference to the IOHIDTransaction.

See also Apple’s documentation

Implementations§

Source§

impl IOHIDTransaction

Source

pub fn new( allocator: Option<&CFAllocator>, device: &IOHIDDevice, direction: IOHIDTransactionDirectionType, options: IOOptionBits, ) -> Option<CFRetained<IOHIDTransaction>>

Creates an IOHIDTransaction object for the specified device.

IOHIDTransaction objects can be used to either send or receive multiple element values. As such the direction used should represent they type of objects added to the transaction.

Parameter allocator: Allocator to be used during creation.

Parameter device: IOHIDDevice object

Parameter direction: The direction, either in or out, for the transaction.

Parameter options: Reserved for future use.

Returns: Returns a new IOHIDTransactionRef.

Source

pub fn device(&self) -> CFRetained<IOHIDDevice>

Obtain the device associated with the transaction.

Parameter transaction: IOHIDTransaction to be queried.

Returns: Returns the a reference to the device.

Source

pub fn direction(&self) -> IOHIDTransactionDirectionType

Obtain the direction of the transaction.

Parameter transaction: IOHIDTransaction to be queried.

Returns: Returns the transaction direction.

Source

pub fn set_direction(&self, direction: IOHIDTransactionDirectionType)

Sets the direction of the transaction

This method is useful for manipulating bi-direction (feature) elements such that you can set or get element values without creating an additional transaction object.

Parameter transaction: IOHIDTransaction object to be modified.

Parameter direction: The new transaction direction.

Source

pub fn add_element(&self, element: &IOHIDElement)

Adds an element to the transaction

To minimize device traffic it is important to add elements that share a common report type and report id.

Parameter transaction: IOHIDTransaction object to be modified.

Parameter element: Element to be added to the transaction.

Source

pub fn remove_element(&self, element: &IOHIDElement)

Removes an element to the transaction

Parameter transaction: IOHIDTransaction object to be modified.

Parameter element: Element to be removed to the transaction.

Source

pub fn contains_element(&self, element: &IOHIDElement) -> bool

Queries the transaction to determine if elemement has been added.

Parameter transaction: IOHIDTransaction object to be queried.

Parameter element: Element to be queried.

Returns: Returns true or false depending if element is present.

Source

pub unsafe fn schedule_with_run_loop( &self, run_loop: &CFRunLoop, run_loop_mode: &CFString, )

Schedules transaction with run loop.

Formally associates transaction with client’s run loop. Scheduling this transaction with the run loop is necessary before making use of any asynchronous APIs.

Parameter transaction: IOHIDTransaction object to be modified.

Parameter runLoop: RunLoop to be used when scheduling any asynchronous activity.

Parameter runLoopMode: Run loop mode to be used when scheduling any asynchronous activity.

§Safety

run_loop possibly has additional threading requirements.

Source

pub unsafe fn unschedule_from_run_loop( &self, run_loop: &CFRunLoop, run_loop_mode: &CFString, )

Unschedules transaction with run loop.

Formally disassociates transaction with client’s run loop.

Parameter transaction: IOHIDTransaction object to be modified.

Parameter runLoop: RunLoop to be used when scheduling any asynchronous activity.

Parameter runLoopMode: Run loop mode to be used when scheduling any asynchronous activity.

§Safety

run_loop possibly has additional threading requirements.

Source

pub fn set_value( &self, element: &IOHIDElement, value: &IOHIDValue, options: IOOptionBits, )

Sets the value for a transaction element.

The value set is pended until the transaction is committed and is only used if the transaction direction is kIOHIDTransactionDirectionTypeOutput. Use the kIOHIDTransactionOptionDefaultOutputValue option to set the default element value.

Parameter transaction: IOHIDTransaction object to be modified.

Parameter element: Element to be modified after a commit.

Parameter value: Value to be set for the given element.

Parameter options: See IOHIDTransactionOption.

Source

pub fn value( &self, element: &IOHIDElement, options: IOOptionBits, ) -> Option<CFRetained<IOHIDValue>>

Obtains the value for a transaction element.

If the transaction direction is kIOHIDTransactionDirectionTypeInput the value represents what was obtained from the device from the transaction. Otherwise, if the transaction direction is kIOHIDTransactionDirectionTypeOutput the value represents the pending value to be sent to the device. Use the kIOHIDTransactionOptionDefaultOutputValue option to get the default element value.

Parameter transaction: IOHIDTransaction object to be queried.

Parameter element: Element to be queried.

Parameter options: See IOHIDTransactionOption.

Returns: Returns IOHIDValueRef for the given element.

Source

pub fn commit(&self) -> IOReturn

Synchronously commits element transaction to the device.

Parameter transaction: IOHIDTransaction object to be modified.

Returns: Returns kIOReturnSuccess if successful or a kern_return_t if unsuccessful.

Source

pub unsafe fn commit_with_callback( &self, timeout: CFTimeInterval, callback: IOHIDCallback, context: *mut c_void, ) -> IOReturn

Asynchronously commits element transaction to the device.

It is possible for elements from different reports to be present in a given transaction causing a commit to transcend multiple reports. Keep this in mind when setting a appropriate timeout.

Parameter transaction: IOHIDTransaction object to be modified.

Parameter timeout: Timeout in milliseconds for the transaction.

Parameter callback: Callback of type IOHIDCallback to be used when transaction has been completed. If null, this method will behave synchronously.

Parameter context: Pointer to data to be passed to the callback.

Returns: Returns kIOReturnSuccess if successful or a kern_return_t if unsuccessful.

§Safety
  • callback must be implemented correctly.
  • context must be a valid pointer or null.
Source

pub fn clear(&self)

Clears element transaction values.

In regards to kIOHIDTransactionDirectionTypeOutput direction, default element values will be preserved.

Parameter transaction: IOHIDTransaction object to be modified.

Methods from Deref<Target = CFType>§

Source

pub fn downcast_ref<T>(&self) -> Option<&T>
where T: ConcreteType,

Attempt to downcast the type to that of type T.

This is the reference-variant. Use CFRetained::downcast if you want to convert a retained type. See also ConcreteType for more details on which types support being converted to.

Source

pub fn retain_count(&self) -> usize

Get the reference count of the object.

This function may be useful for debugging. You normally do not use this function otherwise.

Beware that some things (like CFNumbers, small CFStrings etc.) may not have a normal retain count for optimization purposes, and can return usize::MAX in that case.

Trait Implementations§

Source§

impl AsRef<AnyObject> for IOHIDTransaction

Source§

fn as_ref(&self) -> &AnyObject

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl AsRef<CFType> for IOHIDTransaction

Source§

fn as_ref(&self) -> &CFType

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl AsRef<IOHIDTransaction> for IOHIDTransaction

Source§

fn as_ref(&self) -> &Self

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl Borrow<AnyObject> for IOHIDTransaction

Source§

fn borrow(&self) -> &AnyObject

Immutably borrows from an owned value. Read more
Source§

impl Borrow<CFType> for IOHIDTransaction

Source§

fn borrow(&self) -> &CFType

Immutably borrows from an owned value. Read more
Source§

impl ConcreteType for IOHIDTransaction

Source§

fn type_id() -> CFTypeID

Returns the type identifier of all IOHIDTransaction instances.

Source§

impl Debug for IOHIDTransaction

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Deref for IOHIDTransaction

Source§

type Target = CFType

The resulting type after dereferencing.
Source§

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

Dereferences the value.
Source§

impl Hash for IOHIDTransaction

Source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl Message for IOHIDTransaction

Source§

fn retain(&self) -> Retained<Self>
where Self: Sized,

Increment the reference count of the receiver. Read more
Source§

impl PartialEq for IOHIDTransaction

Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl RefEncode for IOHIDTransaction

Source§

const ENCODING_REF: Encoding

The Objective-C type-encoding for a reference of this type. Read more
Source§

impl Type for IOHIDTransaction

Source§

fn retain(&self) -> CFRetained<Self>
where Self: Sized,

Increment the reference count of the receiver. Read more
Source§

fn as_concrete_TypeRef(&self) -> &Self

👎Deprecated: this is redundant
Helper for easier transition from the core-foundation crate.
Source§

unsafe fn wrap_under_get_rule(ptr: *const Self) -> CFRetained<Self>
where Self: Sized,

👎Deprecated: use CFRetained::retain
Helper for easier transition from the core-foundation crate. Read more
Source§

fn as_CFTypeRef(&self) -> &CFType
where Self: AsRef<CFType>,

👎Deprecated: this is redundant (CF types deref to CFType)
Helper for easier transition from the core-foundation crate.
Source§

unsafe fn wrap_under_create_rule(ptr: *const Self) -> CFRetained<Self>
where Self: Sized,

👎Deprecated: use CFRetained::from_raw
Helper for easier transition from the core-foundation crate. Read more
Source§

impl Eq for IOHIDTransaction

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> 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, 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.
Source§

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