use objc2::__framework_prelude::*;
use crate::*;
extern_protocol!(
pub unsafe trait NSXPCProxyCreating {
#[method_id(@__retain_semantics Other remoteObjectProxy)]
unsafe fn remoteObjectProxy(&self) -> Retained<AnyObject>;
#[cfg(all(feature = "NSError", feature = "block2"))]
#[method_id(@__retain_semantics Other remoteObjectProxyWithErrorHandler:)]
unsafe fn remoteObjectProxyWithErrorHandler(
&self,
handler: &block2::Block<dyn Fn(NonNull<NSError>)>,
) -> Retained<AnyObject>;
#[cfg(all(feature = "NSError", feature = "block2"))]
#[optional]
#[method_id(@__retain_semantics Other synchronousRemoteObjectProxyWithErrorHandler:)]
unsafe fn synchronousRemoteObjectProxyWithErrorHandler(
&self,
handler: &block2::Block<dyn Fn(NonNull<NSError>)>,
) -> Retained<AnyObject>;
}
unsafe impl ProtocolType for dyn NSXPCProxyCreating {}
);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct NSXPCConnectionOptions(pub NSUInteger);
bitflags::bitflags! {
impl NSXPCConnectionOptions: NSUInteger {
const NSXPCConnectionPrivileged = 1<<12;
}
}
unsafe impl Encode for NSXPCConnectionOptions {
const ENCODING: Encoding = NSUInteger::ENCODING;
}
unsafe impl RefEncode for NSXPCConnectionOptions {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct NSXPCConnection;
unsafe impl ClassType for NSXPCConnection {
type Super = NSObject;
type Mutability = InteriorMutable;
}
);
unsafe impl NSObjectProtocol for NSXPCConnection {}
unsafe impl NSXPCProxyCreating for NSXPCConnection {}
extern_methods!(
unsafe impl NSXPCConnection {
#[cfg(feature = "NSString")]
#[method_id(@__retain_semantics Init initWithServiceName:)]
pub unsafe fn initWithServiceName(
this: Allocated<Self>,
service_name: &NSString,
) -> Retained<Self>;
#[cfg(feature = "NSString")]
#[method_id(@__retain_semantics Other serviceName)]
pub unsafe fn serviceName(&self) -> Option<Retained<NSString>>;
#[cfg(feature = "NSString")]
#[method_id(@__retain_semantics Init initWithMachServiceName:options:)]
pub unsafe fn initWithMachServiceName_options(
this: Allocated<Self>,
name: &NSString,
options: NSXPCConnectionOptions,
) -> Retained<Self>;
#[method_id(@__retain_semantics Init initWithListenerEndpoint:)]
pub unsafe fn initWithListenerEndpoint(
this: Allocated<Self>,
endpoint: &NSXPCListenerEndpoint,
) -> Retained<Self>;
#[method_id(@__retain_semantics Other endpoint)]
pub unsafe fn endpoint(&self) -> Retained<NSXPCListenerEndpoint>;
#[method_id(@__retain_semantics Other exportedInterface)]
pub unsafe fn exportedInterface(&self) -> Option<Retained<NSXPCInterface>>;
#[method(setExportedInterface:)]
pub unsafe fn setExportedInterface(&self, exported_interface: Option<&NSXPCInterface>);
#[method_id(@__retain_semantics Other exportedObject)]
pub unsafe fn exportedObject(&self) -> Option<Retained<AnyObject>>;
#[method(setExportedObject:)]
pub unsafe fn setExportedObject(&self, exported_object: Option<&AnyObject>);
#[method_id(@__retain_semantics Other remoteObjectInterface)]
pub unsafe fn remoteObjectInterface(&self) -> Option<Retained<NSXPCInterface>>;
#[method(setRemoteObjectInterface:)]
pub unsafe fn setRemoteObjectInterface(
&self,
remote_object_interface: Option<&NSXPCInterface>,
);
#[method_id(@__retain_semantics Other remoteObjectProxy)]
pub unsafe fn remoteObjectProxy(&self) -> Retained<AnyObject>;
#[cfg(all(feature = "NSError", feature = "block2"))]
#[method_id(@__retain_semantics Other remoteObjectProxyWithErrorHandler:)]
pub unsafe fn remoteObjectProxyWithErrorHandler(
&self,
handler: &block2::Block<dyn Fn(NonNull<NSError>)>,
) -> Retained<AnyObject>;
#[cfg(all(feature = "NSError", feature = "block2"))]
#[method_id(@__retain_semantics Other synchronousRemoteObjectProxyWithErrorHandler:)]
pub unsafe fn synchronousRemoteObjectProxyWithErrorHandler(
&self,
handler: &block2::Block<dyn Fn(NonNull<NSError>)>,
) -> Retained<AnyObject>;
#[cfg(feature = "block2")]
#[method(interruptionHandler)]
pub unsafe fn interruptionHandler(&self) -> *mut block2::Block<dyn Fn()>;
#[cfg(feature = "block2")]
#[method(setInterruptionHandler:)]
pub unsafe fn setInterruptionHandler(
&self,
interruption_handler: Option<&block2::Block<dyn Fn()>>,
);
#[cfg(feature = "block2")]
#[method(invalidationHandler)]
pub unsafe fn invalidationHandler(&self) -> *mut block2::Block<dyn Fn()>;
#[cfg(feature = "block2")]
#[method(setInvalidationHandler:)]
pub unsafe fn setInvalidationHandler(
&self,
invalidation_handler: Option<&block2::Block<dyn Fn()>>,
);
#[method(resume)]
pub unsafe fn resume(&self);
#[method(suspend)]
pub unsafe fn suspend(&self);
#[method(activate)]
pub unsafe fn activate(&self);
#[method(invalidate)]
pub unsafe fn invalidate(&self);
#[cfg(feature = "libc")]
#[method(processIdentifier)]
pub unsafe fn processIdentifier(&self) -> libc::pid_t;
#[cfg(feature = "libc")]
#[method(effectiveUserIdentifier)]
pub unsafe fn effectiveUserIdentifier(&self) -> libc::uid_t;
#[cfg(feature = "libc")]
#[method(effectiveGroupIdentifier)]
pub unsafe fn effectiveGroupIdentifier(&self) -> libc::gid_t;
#[method_id(@__retain_semantics Other currentConnection)]
pub unsafe fn currentConnection() -> Option<Retained<NSXPCConnection>>;
#[cfg(feature = "block2")]
#[method(scheduleSendBarrierBlock:)]
pub unsafe fn scheduleSendBarrierBlock(&self, block: &block2::Block<dyn Fn()>);
#[cfg(feature = "NSString")]
#[method(setCodeSigningRequirement:)]
pub unsafe fn setCodeSigningRequirement(&self, requirement: &NSString);
}
);
extern_methods!(
unsafe impl NSXPCConnection {
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[method_id(@__retain_semantics New new)]
pub unsafe fn new() -> Retained<Self>;
}
);
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct NSXPCListener;
unsafe impl ClassType for NSXPCListener {
type Super = NSObject;
type Mutability = InteriorMutable;
}
);
unsafe impl NSObjectProtocol for NSXPCListener {}
extern_methods!(
unsafe impl NSXPCListener {
#[method_id(@__retain_semantics Other serviceListener)]
pub unsafe fn serviceListener() -> Retained<NSXPCListener>;
#[method_id(@__retain_semantics Other anonymousListener)]
pub unsafe fn anonymousListener() -> Retained<NSXPCListener>;
#[cfg(feature = "NSString")]
#[method_id(@__retain_semantics Init initWithMachServiceName:)]
pub unsafe fn initWithMachServiceName(
this: Allocated<Self>,
name: &NSString,
) -> Retained<Self>;
#[method_id(@__retain_semantics Other delegate)]
pub unsafe fn delegate(
&self,
) -> Option<Retained<ProtocolObject<dyn NSXPCListenerDelegate>>>;
#[method(setDelegate:)]
pub unsafe fn setDelegate(
&self,
delegate: Option<&ProtocolObject<dyn NSXPCListenerDelegate>>,
);
#[method_id(@__retain_semantics Other endpoint)]
pub unsafe fn endpoint(&self) -> Retained<NSXPCListenerEndpoint>;
#[method(resume)]
pub unsafe fn resume(&self);
#[method(suspend)]
pub unsafe fn suspend(&self);
#[method(activate)]
pub unsafe fn activate(&self);
#[method(invalidate)]
pub unsafe fn invalidate(&self);
#[cfg(feature = "NSString")]
#[method(setConnectionCodeSigningRequirement:)]
pub unsafe fn setConnectionCodeSigningRequirement(&self, requirement: &NSString);
}
);
extern_methods!(
unsafe impl NSXPCListener {
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[method_id(@__retain_semantics New new)]
pub unsafe fn new() -> Retained<Self>;
}
);
extern_protocol!(
pub unsafe trait NSXPCListenerDelegate: NSObjectProtocol {
#[optional]
#[method(listener:shouldAcceptNewConnection:)]
unsafe fn listener_shouldAcceptNewConnection(
&self,
listener: &NSXPCListener,
new_connection: &NSXPCConnection,
) -> bool;
}
unsafe impl ProtocolType for dyn NSXPCListenerDelegate {}
);
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct NSXPCInterface;
unsafe impl ClassType for NSXPCInterface {
type Super = NSObject;
type Mutability = InteriorMutable;
}
);
unsafe impl NSObjectProtocol for NSXPCInterface {}
extern_methods!(
unsafe impl NSXPCInterface {
#[method_id(@__retain_semantics Other interfaceWithProtocol:)]
pub unsafe fn interfaceWithProtocol(protocol: &AnyProtocol) -> Retained<NSXPCInterface>;
#[method_id(@__retain_semantics Other protocol)]
pub unsafe fn protocol(&self) -> Retained<AnyProtocol>;
#[method(setProtocol:)]
pub unsafe fn setProtocol(&self, protocol: &AnyProtocol);
#[cfg(feature = "NSSet")]
#[method(setClasses:forSelector:argumentIndex:ofReply:)]
pub unsafe fn setClasses_forSelector_argumentIndex_ofReply(
&self,
classes: &NSSet<TodoClass>,
sel: Sel,
arg: NSUInteger,
of_reply: bool,
);
#[cfg(feature = "NSSet")]
#[method_id(@__retain_semantics Other classesForSelector:argumentIndex:ofReply:)]
pub unsafe fn classesForSelector_argumentIndex_ofReply(
&self,
sel: Sel,
arg: NSUInteger,
of_reply: bool,
) -> Retained<NSSet<TodoClass>>;
#[method(setInterface:forSelector:argumentIndex:ofReply:)]
pub unsafe fn setInterface_forSelector_argumentIndex_ofReply(
&self,
ifc: &NSXPCInterface,
sel: Sel,
arg: NSUInteger,
of_reply: bool,
);
#[method_id(@__retain_semantics Other interfaceForSelector:argumentIndex:ofReply:)]
pub unsafe fn interfaceForSelector_argumentIndex_ofReply(
&self,
sel: Sel,
arg: NSUInteger,
of_reply: bool,
) -> Option<Retained<NSXPCInterface>>;
}
);
extern_methods!(
unsafe impl NSXPCInterface {
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[method_id(@__retain_semantics New new)]
pub unsafe fn new() -> Retained<Self>;
}
);
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct NSXPCListenerEndpoint;
unsafe impl ClassType for NSXPCListenerEndpoint {
type Super = NSObject;
type Mutability = InteriorMutable;
}
);
unsafe impl Send for NSXPCListenerEndpoint {}
unsafe impl Sync for NSXPCListenerEndpoint {}
#[cfg(feature = "NSObject")]
unsafe impl NSCoding for NSXPCListenerEndpoint {}
unsafe impl NSObjectProtocol for NSXPCListenerEndpoint {}
#[cfg(feature = "NSObject")]
unsafe impl NSSecureCoding for NSXPCListenerEndpoint {}
extern_methods!(
unsafe impl NSXPCListenerEndpoint {}
);
extern_methods!(
unsafe impl NSXPCListenerEndpoint {
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[method_id(@__retain_semantics New new)]
pub unsafe fn new() -> Retained<Self>;
}
);
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
#[cfg(feature = "NSCoder")]
pub struct NSXPCCoder;
#[cfg(feature = "NSCoder")]
unsafe impl ClassType for NSXPCCoder {
#[inherits(NSObject)]
type Super = NSCoder;
type Mutability = InteriorMutable;
}
);
#[cfg(feature = "NSCoder")]
unsafe impl NSObjectProtocol for NSXPCCoder {}
extern_methods!(
#[cfg(feature = "NSCoder")]
unsafe impl NSXPCCoder {
#[method_id(@__retain_semantics Other userInfo)]
pub unsafe fn userInfo(&self) -> Option<Retained<NSObject>>;
#[method(setUserInfo:)]
pub unsafe fn setUserInfo(&self, user_info: Option<&NSObject>);
#[method_id(@__retain_semantics Other connection)]
pub unsafe fn connection(&self) -> Option<Retained<NSXPCConnection>>;
}
);
extern_methods!(
#[cfg(feature = "NSCoder")]
unsafe impl NSXPCCoder {
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[method_id(@__retain_semantics New new)]
pub unsafe fn new() -> Retained<Self>;
}
);