cheep-crator-2/vendor/core-foundation/src/mach_port.rs

29 lines
788 B
Rust

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))
}
}
}
}