use objc2::__framework_prelude::*;
use crate::*;
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct NSFileHandle;
unsafe impl ClassType for NSFileHandle {
type Super = NSObject;
type Mutability = InteriorMutable;
}
);
unsafe impl Send for NSFileHandle {}
unsafe impl Sync for NSFileHandle {}
#[cfg(feature = "NSObject")]
unsafe impl NSCoding for NSFileHandle {}
unsafe impl NSObjectProtocol for NSFileHandle {}
#[cfg(feature = "NSObject")]
unsafe impl NSSecureCoding for NSFileHandle {}
extern_methods!(
unsafe impl NSFileHandle {
#[cfg(feature = "NSData")]
#[method_id(@__retain_semantics Other availableData)]
pub unsafe fn availableData(&self) -> Retained<NSData>;
#[method_id(@__retain_semantics Init initWithFileDescriptor:closeOnDealloc:)]
pub unsafe fn initWithFileDescriptor_closeOnDealloc(
this: Allocated<Self>,
fd: c_int,
closeopt: bool,
) -> Retained<Self>;
#[cfg(feature = "NSCoder")]
#[method_id(@__retain_semantics Init initWithCoder:)]
pub unsafe fn initWithCoder(
this: Allocated<Self>,
coder: &NSCoder,
) -> Option<Retained<Self>>;
#[cfg(all(feature = "NSData", feature = "NSError"))]
#[method_id(@__retain_semantics Other readDataToEndOfFileAndReturnError:_)]
pub unsafe fn readDataToEndOfFileAndReturnError(
&self,
) -> Result<Retained<NSData>, Retained<NSError>>;
#[cfg(all(feature = "NSData", feature = "NSError"))]
#[method_id(@__retain_semantics Other readDataUpToLength:error:_)]
pub unsafe fn readDataUpToLength_error(
&self,
length: NSUInteger,
) -> Result<Retained<NSData>, Retained<NSError>>;
#[cfg(all(feature = "NSData", feature = "NSError"))]
#[method(writeData:error:_)]
pub unsafe fn writeData_error(&self, data: &NSData) -> Result<(), Retained<NSError>>;
#[cfg(feature = "NSError")]
#[method(getOffset:error:_)]
pub unsafe fn getOffset_error(
&self,
offset_in_file: NonNull<c_ulonglong>,
) -> Result<(), Retained<NSError>>;
#[cfg(feature = "NSError")]
#[method(seekToEndReturningOffset:error:_)]
pub unsafe fn seekToEndReturningOffset_error(
&self,
offset_in_file: *mut c_ulonglong,
) -> Result<(), Retained<NSError>>;
#[cfg(feature = "NSError")]
#[method(seekToOffset:error:_)]
pub unsafe fn seekToOffset_error(
&self,
offset: c_ulonglong,
) -> Result<(), Retained<NSError>>;
#[cfg(feature = "NSError")]
#[method(truncateAtOffset:error:_)]
pub unsafe fn truncateAtOffset_error(
&self,
offset: c_ulonglong,
) -> Result<(), Retained<NSError>>;
#[cfg(feature = "NSError")]
#[method(synchronizeAndReturnError:_)]
pub unsafe fn synchronizeAndReturnError(&self) -> Result<(), Retained<NSError>>;
#[cfg(feature = "NSError")]
#[method(closeAndReturnError:_)]
pub unsafe fn closeAndReturnError(&self) -> Result<(), Retained<NSError>>;
}
);
extern_methods!(
unsafe impl NSFileHandle {
#[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_methods!(
unsafe impl NSFileHandle {
#[method_id(@__retain_semantics Other fileHandleWithStandardInput)]
pub unsafe fn fileHandleWithStandardInput() -> Retained<NSFileHandle>;
#[method_id(@__retain_semantics Other fileHandleWithStandardOutput)]
pub unsafe fn fileHandleWithStandardOutput() -> Retained<NSFileHandle>;
#[method_id(@__retain_semantics Other fileHandleWithStandardError)]
pub unsafe fn fileHandleWithStandardError() -> Retained<NSFileHandle>;
#[method_id(@__retain_semantics Other fileHandleWithNullDevice)]
pub unsafe fn fileHandleWithNullDevice() -> Retained<NSFileHandle>;
#[cfg(feature = "NSString")]
#[method_id(@__retain_semantics Other fileHandleForReadingAtPath:)]
pub unsafe fn fileHandleForReadingAtPath(path: &NSString) -> Option<Retained<Self>>;
#[cfg(feature = "NSString")]
#[method_id(@__retain_semantics Other fileHandleForWritingAtPath:)]
pub unsafe fn fileHandleForWritingAtPath(path: &NSString) -> Option<Retained<Self>>;
#[cfg(feature = "NSString")]
#[method_id(@__retain_semantics Other fileHandleForUpdatingAtPath:)]
pub unsafe fn fileHandleForUpdatingAtPath(path: &NSString) -> Option<Retained<Self>>;
#[cfg(all(feature = "NSError", feature = "NSURL"))]
#[method_id(@__retain_semantics Other fileHandleForReadingFromURL:error:_)]
pub unsafe fn fileHandleForReadingFromURL_error(
url: &NSURL,
) -> Result<Retained<Self>, Retained<NSError>>;
#[cfg(all(feature = "NSError", feature = "NSURL"))]
#[method_id(@__retain_semantics Other fileHandleForWritingToURL:error:_)]
pub unsafe fn fileHandleForWritingToURL_error(
url: &NSURL,
) -> Result<Retained<Self>, Retained<NSError>>;
#[cfg(all(feature = "NSError", feature = "NSURL"))]
#[method_id(@__retain_semantics Other fileHandleForUpdatingURL:error:_)]
pub unsafe fn fileHandleForUpdatingURL_error(
url: &NSURL,
) -> Result<Retained<Self>, Retained<NSError>>;
}
);
extern "C" {
#[cfg(all(feature = "NSObjCRuntime", feature = "NSString"))]
pub static NSFileHandleOperationException: &'static NSExceptionName;
}
extern "C" {
#[cfg(all(feature = "NSNotification", feature = "NSString"))]
pub static NSFileHandleReadCompletionNotification: &'static NSNotificationName;
}
extern "C" {
#[cfg(all(feature = "NSNotification", feature = "NSString"))]
pub static NSFileHandleReadToEndOfFileCompletionNotification: &'static NSNotificationName;
}
extern "C" {
#[cfg(all(feature = "NSNotification", feature = "NSString"))]
pub static NSFileHandleConnectionAcceptedNotification: &'static NSNotificationName;
}
extern "C" {
#[cfg(all(feature = "NSNotification", feature = "NSString"))]
pub static NSFileHandleDataAvailableNotification: &'static NSNotificationName;
}
extern "C" {
#[cfg(feature = "NSString")]
pub static NSFileHandleNotificationDataItem: &'static NSString;
}
extern "C" {
#[cfg(feature = "NSString")]
pub static NSFileHandleNotificationFileHandleItem: &'static NSString;
}
extern "C" {
#[cfg(feature = "NSString")]
pub static NSFileHandleNotificationMonitorModes: &'static NSString;
}
extern_methods!(
unsafe impl NSFileHandle {
#[cfg(all(feature = "NSArray", feature = "NSObjCRuntime", feature = "NSString"))]
#[method(readInBackgroundAndNotifyForModes:)]
pub unsafe fn readInBackgroundAndNotifyForModes(
&self,
modes: Option<&NSArray<NSRunLoopMode>>,
);
#[method(readInBackgroundAndNotify)]
pub unsafe fn readInBackgroundAndNotify(&self);
#[cfg(all(feature = "NSArray", feature = "NSObjCRuntime", feature = "NSString"))]
#[method(readToEndOfFileInBackgroundAndNotifyForModes:)]
pub unsafe fn readToEndOfFileInBackgroundAndNotifyForModes(
&self,
modes: Option<&NSArray<NSRunLoopMode>>,
);
#[method(readToEndOfFileInBackgroundAndNotify)]
pub unsafe fn readToEndOfFileInBackgroundAndNotify(&self);
#[cfg(all(feature = "NSArray", feature = "NSObjCRuntime", feature = "NSString"))]
#[method(acceptConnectionInBackgroundAndNotifyForModes:)]
pub unsafe fn acceptConnectionInBackgroundAndNotifyForModes(
&self,
modes: Option<&NSArray<NSRunLoopMode>>,
);
#[method(acceptConnectionInBackgroundAndNotify)]
pub unsafe fn acceptConnectionInBackgroundAndNotify(&self);
#[cfg(all(feature = "NSArray", feature = "NSObjCRuntime", feature = "NSString"))]
#[method(waitForDataInBackgroundAndNotifyForModes:)]
pub unsafe fn waitForDataInBackgroundAndNotifyForModes(
&self,
modes: Option<&NSArray<NSRunLoopMode>>,
);
#[method(waitForDataInBackgroundAndNotify)]
pub unsafe fn waitForDataInBackgroundAndNotify(&self);
#[cfg(feature = "block2")]
#[method(readabilityHandler)]
pub unsafe fn readabilityHandler(
&self,
) -> *mut block2::Block<dyn Fn(NonNull<NSFileHandle>)>;
#[cfg(feature = "block2")]
#[method(setReadabilityHandler:)]
pub unsafe fn setReadabilityHandler(
&self,
readability_handler: Option<&block2::Block<dyn Fn(NonNull<NSFileHandle>)>>,
);
#[cfg(feature = "block2")]
#[method(writeabilityHandler)]
pub unsafe fn writeabilityHandler(
&self,
) -> *mut block2::Block<dyn Fn(NonNull<NSFileHandle>)>;
#[cfg(feature = "block2")]
#[method(setWriteabilityHandler:)]
pub unsafe fn setWriteabilityHandler(
&self,
writeability_handler: Option<&block2::Block<dyn Fn(NonNull<NSFileHandle>)>>,
);
}
);
extern_methods!(
unsafe impl NSFileHandle {
#[method_id(@__retain_semantics Init initWithFileDescriptor:)]
pub unsafe fn initWithFileDescriptor(this: Allocated<Self>, fd: c_int) -> Retained<Self>;
#[method(fileDescriptor)]
pub unsafe fn fileDescriptor(&self) -> c_int;
}
);
extern_methods!(
unsafe impl NSFileHandle {
#[cfg(feature = "NSData")]
#[deprecated]
#[method_id(@__retain_semantics Other readDataToEndOfFile)]
pub unsafe fn readDataToEndOfFile(&self) -> Retained<NSData>;
#[cfg(feature = "NSData")]
#[deprecated]
#[method_id(@__retain_semantics Other readDataOfLength:)]
pub unsafe fn readDataOfLength(&self, length: NSUInteger) -> Retained<NSData>;
#[cfg(feature = "NSData")]
#[deprecated]
#[method(writeData:)]
pub unsafe fn writeData(&self, data: &NSData);
#[deprecated]
#[method(offsetInFile)]
pub unsafe fn offsetInFile(&self) -> c_ulonglong;
#[deprecated]
#[method(seekToEndOfFile)]
pub unsafe fn seekToEndOfFile(&self) -> c_ulonglong;
#[deprecated]
#[method(seekToFileOffset:)]
pub unsafe fn seekToFileOffset(&self, offset: c_ulonglong);
#[deprecated]
#[method(truncateFileAtOffset:)]
pub unsafe fn truncateFileAtOffset(&self, offset: c_ulonglong);
#[deprecated]
#[method(synchronizeFile)]
pub unsafe fn synchronizeFile(&self);
#[deprecated]
#[method(closeFile)]
pub unsafe fn closeFile(&self);
}
);
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct NSPipe;
unsafe impl ClassType for NSPipe {
type Super = NSObject;
type Mutability = InteriorMutable;
}
);
unsafe impl Send for NSPipe {}
unsafe impl Sync for NSPipe {}
unsafe impl NSObjectProtocol for NSPipe {}
extern_methods!(
unsafe impl NSPipe {
#[method_id(@__retain_semantics Other fileHandleForReading)]
pub unsafe fn fileHandleForReading(&self) -> Retained<NSFileHandle>;
#[method_id(@__retain_semantics Other fileHandleForWriting)]
pub unsafe fn fileHandleForWriting(&self) -> Retained<NSFileHandle>;
#[method_id(@__retain_semantics Other pipe)]
pub unsafe fn pipe() -> Retained<NSPipe>;
}
);
extern_methods!(
unsafe impl NSPipe {
#[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>;
}
);