core-foundation: Add basic CFMachPort
This commit is contained in:
@@ -233,3 +233,4 @@ pub mod propertylist;
|
||||
pub mod runloop;
|
||||
pub mod timezone;
|
||||
pub mod uuid;
|
||||
pub mod mach_port;
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
use base::TCFType;
|
||||
use core_foundation_sys::base::kCFAllocatorDefault;
|
||||
use runloop::CFRunLoopSource;
|
||||
pub use core_foundation_sys::mach_port::*;
|
||||
|
||||
|
||||
declare_TCFType! {
|
||||
/// An immutable numeric value.
|
||||
CFMachPort, CFMachPortRef
|
||||
}
|
||||
impl_TCFType!(CFMachPort, CFMachPortRef, CFMachPortGetTypeID);
|
||||
impl_CFTypeDescription!(CFMachPort);
|
||||
|
||||
impl CFMachPort {
|
||||
pub fn create_runloop_source(
|
||||
&self,
|
||||
order: CFIndex,
|
||||
) -> Result<CFRunLoopSource, ()> {
|
||||
unsafe {
|
||||
let runloop_source_ref = CFMachPortCreateRunLoopSource(kCFAllocatorDefault, self.0, order);
|
||||
if runloop_source_ref.is_null() {
|
||||
Err(())
|
||||
} else {
|
||||
Ok(CFRunLoopSource::wrap_under_create_rule(runloop_source_ref))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user