use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
#[cfg(feature = "VZSocketDevice")]
pub struct VZVirtioSocketDevice;
#[cfg(feature = "VZSocketDevice")]
unsafe impl ClassType for VZVirtioSocketDevice {
#[inherits(NSObject)]
type Super = VZSocketDevice;
type Mutability = InteriorMutable;
}
);
#[cfg(feature = "VZSocketDevice")]
unsafe impl NSObjectProtocol for VZVirtioSocketDevice {}
extern_methods!(
#[cfg(feature = "VZSocketDevice")]
unsafe impl VZVirtioSocketDevice {
#[method_id(@__retain_semantics New new)]
pub unsafe fn new() -> Retained<Self>;
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[cfg(feature = "VZVirtioSocketListener")]
#[method(setSocketListener:forPort:)]
pub unsafe fn setSocketListener_forPort(
&self,
listener: &VZVirtioSocketListener,
port: u32,
);
#[method(removeSocketListenerForPort:)]
pub unsafe fn removeSocketListenerForPort(&self, port: u32);
#[cfg(all(feature = "VZVirtioSocketConnection", feature = "block2"))]
#[method(connectToPort:completionHandler:)]
pub unsafe fn connectToPort_completionHandler(
&self,
port: u32,
completion_handler: &block2::Block<dyn Fn(*mut VZVirtioSocketConnection, *mut NSError)>,
);
}
);