Source code
Revision control
Copy as Markdown
Other Tools
//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
#[cfg(feature = "objc2-core-foundation")]
use objc2_core_foundation::*;
use crate::*;
/// [Apple's documentation](https://developer.apple.com/documentation/foundation/nssocketnativehandle?language=objc)
pub type NSSocketNativeHandle = c_int;
extern "C" {
/// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsportdidbecomeinvalidnotification?language=objc)
#[cfg(all(feature = "NSNotification", feature = "NSString"))]
pub static NSPortDidBecomeInvalidNotification: &'static NSNotificationName;
}
extern_class!(
/// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsport?language=objc)
#[unsafe(super(NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct NSPort;
);
#[cfg(feature = "NSObject")]
extern_conformance!(
unsafe impl NSCoding for NSPort {}
);
#[cfg(feature = "NSObject")]
extern_conformance!(
unsafe impl NSCopying for NSPort {}
);
#[cfg(feature = "NSObject")]
unsafe impl CopyingHelper for NSPort {
type Result = Self;
}
extern_conformance!(
unsafe impl NSObjectProtocol for NSPort {}
);
impl NSPort {
extern_methods!(
#[unsafe(method(port))]
#[unsafe(method_family = none)]
pub fn port() -> Retained<NSPort>;
#[unsafe(method(invalidate))]
#[unsafe(method_family = none)]
pub fn invalidate(&self);
#[unsafe(method(isValid))]
#[unsafe(method_family = none)]
pub fn isValid(&self) -> bool;
#[unsafe(method(setDelegate:))]
#[unsafe(method_family = none)]
pub unsafe fn setDelegate(&self, an_object: Option<&ProtocolObject<dyn NSPortDelegate>>);
#[unsafe(method(delegate))]
#[unsafe(method_family = none)]
pub fn delegate(&self) -> Option<Retained<ProtocolObject<dyn NSPortDelegate>>>;
#[cfg(all(feature = "NSObjCRuntime", feature = "NSRunLoop", feature = "NSString"))]
/// # Safety
///
/// `run_loop` possibly has additional threading requirements.
#[unsafe(method(scheduleInRunLoop:forMode:))]
#[unsafe(method_family = none)]
pub unsafe fn scheduleInRunLoop_forMode(&self, run_loop: &NSRunLoop, mode: &NSRunLoopMode);
#[cfg(all(feature = "NSObjCRuntime", feature = "NSRunLoop", feature = "NSString"))]
/// # Safety
///
/// `run_loop` possibly has additional threading requirements.
#[unsafe(method(removeFromRunLoop:forMode:))]
#[unsafe(method_family = none)]
pub unsafe fn removeFromRunLoop_forMode(&self, run_loop: &NSRunLoop, mode: &NSRunLoopMode);
#[unsafe(method(reservedSpaceLength))]
#[unsafe(method_family = none)]
pub fn reservedSpaceLength(&self) -> NSUInteger;
#[cfg(all(feature = "NSArray", feature = "NSDate"))]
/// # Safety
///
/// `components` generic should be of the correct type.
#[unsafe(method(sendBeforeDate:components:from:reserved:))]
#[unsafe(method_family = none)]
pub unsafe fn sendBeforeDate_components_from_reserved(
&self,
limit_date: &NSDate,
components: Option<&NSMutableArray>,
receive_port: Option<&NSPort>,
header_space_reserved: NSUInteger,
) -> bool;
#[cfg(all(feature = "NSArray", feature = "NSDate"))]
/// # Safety
///
/// `components` generic should be of the correct type.
#[unsafe(method(sendBeforeDate:msgid:components:from:reserved:))]
#[unsafe(method_family = none)]
pub unsafe fn sendBeforeDate_msgid_components_from_reserved(
&self,
limit_date: &NSDate,
msg_id: NSUInteger,
components: Option<&NSMutableArray>,
receive_port: Option<&NSPort>,
header_space_reserved: NSUInteger,
) -> bool;
#[cfg(all(
feature = "NSConnection",
feature = "NSObjCRuntime",
feature = "NSRunLoop",
feature = "NSString"
))]
/// # Safety
///
/// `run_loop` possibly has additional threading requirements.
#[deprecated = "Use NSXPCConnection instead"]
#[unsafe(method(addConnection:toRunLoop:forMode:))]
#[unsafe(method_family = none)]
pub unsafe fn addConnection_toRunLoop_forMode(
&self,
conn: &NSConnection,
run_loop: &NSRunLoop,
mode: &NSRunLoopMode,
);
#[cfg(all(
feature = "NSConnection",
feature = "NSObjCRuntime",
feature = "NSRunLoop",
feature = "NSString"
))]
/// # Safety
///
/// `run_loop` possibly has additional threading requirements.
#[deprecated = "Use NSXPCConnection instead"]
#[unsafe(method(removeConnection:fromRunLoop:forMode:))]
#[unsafe(method_family = none)]
pub unsafe fn removeConnection_fromRunLoop_forMode(
&self,
conn: &NSConnection,
run_loop: &NSRunLoop,
mode: &NSRunLoopMode,
);
);
}
/// Methods declared on superclass `NSObject`.
impl NSPort {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub fn new() -> Retained<Self>;
);
}
impl DefaultRetained for NSPort {
#[inline]
fn default_retained() -> Retained<Self> {
Self::new()
}
}
extern_protocol!(
/// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsportdelegate?language=objc)
pub unsafe trait NSPortDelegate: NSObjectProtocol {
#[cfg(feature = "NSPortMessage")]
#[optional]
#[unsafe(method(handlePortMessage:))]
#[unsafe(method_family = none)]
fn handlePortMessage(&self, message: &NSPortMessage);
}
);
/// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsmachportoptions?language=objc)
// NS_OPTIONS
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct NSMachPortOptions(pub NSUInteger);
bitflags::bitflags! {
impl NSMachPortOptions: NSUInteger {
#[doc(alias = "NSMachPortDeallocateNone")]
const DeallocateNone = 0;
#[doc(alias = "NSMachPortDeallocateSendRight")]
const DeallocateSendRight = 1<<0;
#[doc(alias = "NSMachPortDeallocateReceiveRight")]
const DeallocateReceiveRight = 1<<1;
}
}
unsafe impl Encode for NSMachPortOptions {
const ENCODING: Encoding = NSUInteger::ENCODING;
}
unsafe impl RefEncode for NSMachPortOptions {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
extern_class!(
/// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsmachport?language=objc)
#[unsafe(super(NSPort, NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct NSMachPort;
);
#[cfg(feature = "objc2-core-foundation")]
impl AsRef<NSMachPort> for CFMachPort {
#[inline]
fn as_ref(&self) -> &NSMachPort {
unsafe { &*((self as *const Self).cast()) }
}
}
#[cfg(feature = "objc2-core-foundation")]
impl AsRef<CFMachPort> for NSMachPort {
#[inline]
fn as_ref(&self) -> &CFMachPort {
unsafe { &*((self as *const Self).cast()) }
}
}
#[cfg(feature = "NSObject")]
extern_conformance!(
unsafe impl NSCoding for NSMachPort {}
);
#[cfg(feature = "NSObject")]
extern_conformance!(
unsafe impl NSCopying for NSMachPort {}
);
#[cfg(feature = "NSObject")]
unsafe impl CopyingHelper for NSMachPort {
type Result = Self;
}
extern_conformance!(
unsafe impl NSObjectProtocol for NSMachPort {}
);
impl NSMachPort {
extern_methods!(
#[unsafe(method(portWithMachPort:))]
#[unsafe(method_family = none)]
pub fn portWithMachPort(mach_port: u32) -> Retained<NSPort>;
#[unsafe(method(initWithMachPort:))]
#[unsafe(method_family = init)]
pub fn initWithMachPort(this: Allocated<Self>, mach_port: u32) -> Retained<Self>;
#[unsafe(method(setDelegate:))]
#[unsafe(method_family = none)]
pub unsafe fn setDelegate(
&self,
an_object: Option<&ProtocolObject<dyn NSMachPortDelegate>>,
);
#[unsafe(method(delegate))]
#[unsafe(method_family = none)]
pub fn delegate(&self) -> Option<Retained<ProtocolObject<dyn NSMachPortDelegate>>>;
#[unsafe(method(portWithMachPort:options:))]
#[unsafe(method_family = none)]
pub fn portWithMachPort_options(mach_port: u32, f: NSMachPortOptions) -> Retained<NSPort>;
#[unsafe(method(initWithMachPort:options:))]
#[unsafe(method_family = init)]
pub fn initWithMachPort_options(
this: Allocated<Self>,
mach_port: u32,
f: NSMachPortOptions,
) -> Retained<Self>;
#[unsafe(method(machPort))]
#[unsafe(method_family = none)]
pub fn machPort(&self) -> u32;
#[cfg(all(feature = "NSObjCRuntime", feature = "NSRunLoop", feature = "NSString"))]
/// # Safety
///
/// `run_loop` possibly has additional threading requirements.
#[unsafe(method(scheduleInRunLoop:forMode:))]
#[unsafe(method_family = none)]
pub unsafe fn scheduleInRunLoop_forMode(&self, run_loop: &NSRunLoop, mode: &NSRunLoopMode);
#[cfg(all(feature = "NSObjCRuntime", feature = "NSRunLoop", feature = "NSString"))]
/// # Safety
///
/// `run_loop` possibly has additional threading requirements.
#[unsafe(method(removeFromRunLoop:forMode:))]
#[unsafe(method_family = none)]
pub unsafe fn removeFromRunLoop_forMode(&self, run_loop: &NSRunLoop, mode: &NSRunLoopMode);
);
}
/// Methods declared on superclass `NSObject`.
impl NSMachPort {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub fn new() -> Retained<Self>;
);
}
impl DefaultRetained for NSMachPort {
#[inline]
fn default_retained() -> Retained<Self> {
Self::new()
}
}
extern_protocol!(
/// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsmachportdelegate?language=objc)
pub unsafe trait NSMachPortDelegate: NSPortDelegate {
/// # Safety
///
/// `msg` must be a valid pointer.
#[optional]
#[unsafe(method(handleMachMessage:))]
#[unsafe(method_family = none)]
unsafe fn handleMachMessage(&self, msg: NonNull<c_void>);
}
);
extern_class!(
/// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsmessageport?language=objc)
#[unsafe(super(NSPort, NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct NSMessagePort;
);
#[cfg(feature = "objc2-core-foundation")]
impl AsRef<NSMessagePort> for CFMessagePort {
#[inline]
fn as_ref(&self) -> &NSMessagePort {
unsafe { &*((self as *const Self).cast()) }
}
}
#[cfg(feature = "objc2-core-foundation")]
impl AsRef<CFMessagePort> for NSMessagePort {
#[inline]
fn as_ref(&self) -> &CFMessagePort {
unsafe { &*((self as *const Self).cast()) }
}
}
#[cfg(feature = "NSObject")]
extern_conformance!(
unsafe impl NSCoding for NSMessagePort {}
);
#[cfg(feature = "NSObject")]
extern_conformance!(
unsafe impl NSCopying for NSMessagePort {}
);
#[cfg(feature = "NSObject")]
unsafe impl CopyingHelper for NSMessagePort {
type Result = Self;
}
extern_conformance!(
unsafe impl NSObjectProtocol for NSMessagePort {}
);
impl NSMessagePort {
extern_methods!();
}
/// Methods declared on superclass `NSObject`.
impl NSMessagePort {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub fn new() -> Retained<Self>;
);
}
impl DefaultRetained for NSMessagePort {
#[inline]
fn default_retained() -> Retained<Self> {
Self::new()
}
}
extern_class!(
/// [Apple's documentation](https://developer.apple.com/documentation/foundation/nssocketport?language=objc)
#[unsafe(super(NSPort, NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct NSSocketPort;
);
#[cfg(feature = "NSObject")]
extern_conformance!(
unsafe impl NSCoding for NSSocketPort {}
);
#[cfg(feature = "NSObject")]
extern_conformance!(
unsafe impl NSCopying for NSSocketPort {}
);
#[cfg(feature = "NSObject")]
unsafe impl CopyingHelper for NSSocketPort {
type Result = Self;
}
extern_conformance!(
unsafe impl NSObjectProtocol for NSSocketPort {}
);
impl NSSocketPort {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(initWithTCPPort:))]
#[unsafe(method_family = init)]
pub fn initWithTCPPort(this: Allocated<Self>, port: c_ushort) -> Option<Retained<Self>>;
#[cfg(feature = "NSData")]
#[unsafe(method(initWithProtocolFamily:socketType:protocol:address:))]
#[unsafe(method_family = init)]
pub fn initWithProtocolFamily_socketType_protocol_address(
this: Allocated<Self>,
family: c_int,
r#type: c_int,
protocol: c_int,
address: &NSData,
) -> Option<Retained<Self>>;
#[unsafe(method(initWithProtocolFamily:socketType:protocol:socket:))]
#[unsafe(method_family = init)]
pub fn initWithProtocolFamily_socketType_protocol_socket(
this: Allocated<Self>,
family: c_int,
r#type: c_int,
protocol: c_int,
sock: NSSocketNativeHandle,
) -> Option<Retained<Self>>;
#[cfg(feature = "NSString")]
#[unsafe(method(initRemoteWithTCPPort:host:))]
#[unsafe(method_family = init)]
pub fn initRemoteWithTCPPort_host(
this: Allocated<Self>,
port: c_ushort,
host_name: Option<&NSString>,
) -> Option<Retained<Self>>;
#[cfg(feature = "NSData")]
#[unsafe(method(initRemoteWithProtocolFamily:socketType:protocol:address:))]
#[unsafe(method_family = init)]
pub fn initRemoteWithProtocolFamily_socketType_protocol_address(
this: Allocated<Self>,
family: c_int,
r#type: c_int,
protocol: c_int,
address: &NSData,
) -> Retained<Self>;
#[unsafe(method(protocolFamily))]
#[unsafe(method_family = none)]
pub fn protocolFamily(&self) -> c_int;
#[unsafe(method(socketType))]
#[unsafe(method_family = none)]
pub fn socketType(&self) -> c_int;
#[unsafe(method(protocol))]
#[unsafe(method_family = none)]
pub fn protocol(&self) -> c_int;
#[cfg(feature = "NSData")]
#[unsafe(method(address))]
#[unsafe(method_family = none)]
pub fn address(&self) -> Retained<NSData>;
#[unsafe(method(socket))]
#[unsafe(method_family = none)]
pub fn socket(&self) -> NSSocketNativeHandle;
);
}
/// Methods declared on superclass `NSObject`.
impl NSSocketPort {
extern_methods!(
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub fn new() -> Retained<Self>;
);
}
impl DefaultRetained for NSSocketPort {
#[inline]
fn default_retained() -> Retained<Self> {
Self::new()
}
}