use crate::common::*;
use crate::Foundation::*;
ns_options!(
#[underlying(NSUInteger)]
pub enum NSFileCoordinatorReadingOptions {
NSFileCoordinatorReadingWithoutChanges = 1 << 0,
NSFileCoordinatorReadingResolvesSymbolicLink = 1 << 1,
NSFileCoordinatorReadingImmediatelyAvailableMetadataOnly = 1 << 2,
NSFileCoordinatorReadingForUploading = 1 << 3,
}
);
ns_options!(
#[underlying(NSUInteger)]
pub enum NSFileCoordinatorWritingOptions {
NSFileCoordinatorWritingForDeleting = 1 << 0,
NSFileCoordinatorWritingForMoving = 1 << 1,
NSFileCoordinatorWritingForMerging = 1 << 2,
NSFileCoordinatorWritingForReplacing = 1 << 3,
NSFileCoordinatorWritingContentIndependentMetadataOnly = 1 << 4,
}
);
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct NSFileAccessIntent;
unsafe impl ClassType for NSFileAccessIntent {
type Super = NSObject;
}
);
extern_methods!(
unsafe impl NSFileAccessIntent {
#[method_id(@__retain_semantics Other readingIntentWithURL:options:)]
pub unsafe fn readingIntentWithURL_options(
url: &NSURL,
options: NSFileCoordinatorReadingOptions,
) -> Id<Self, Shared>;
#[method_id(@__retain_semantics Other writingIntentWithURL:options:)]
pub unsafe fn writingIntentWithURL_options(
url: &NSURL,
options: NSFileCoordinatorWritingOptions,
) -> Id<Self, Shared>;
#[method_id(@__retain_semantics Other URL)]
pub unsafe fn URL(&self) -> Id<NSURL, Shared>;
}
);
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct NSFileCoordinator;
unsafe impl ClassType for NSFileCoordinator {
type Super = NSObject;
}
);
extern_methods!(
unsafe impl NSFileCoordinator {
#[method(addFilePresenter:)]
pub unsafe fn addFilePresenter(filePresenter: &NSFilePresenter);
#[method(removeFilePresenter:)]
pub unsafe fn removeFilePresenter(filePresenter: &NSFilePresenter);
#[method_id(@__retain_semantics Other filePresenters)]
pub unsafe fn filePresenters() -> Id<NSArray<NSFilePresenter>, Shared>;
#[method_id(@__retain_semantics Init initWithFilePresenter:)]
pub unsafe fn initWithFilePresenter(
this: Option<Allocated<Self>>,
filePresenterOrNil: Option<&NSFilePresenter>,
) -> Id<Self, Shared>;
#[method_id(@__retain_semantics Other purposeIdentifier)]
pub unsafe fn purposeIdentifier(&self) -> Id<NSString, Shared>;
#[method(setPurposeIdentifier:)]
pub unsafe fn setPurposeIdentifier(&self, purposeIdentifier: &NSString);
#[method(coordinateAccessWithIntents:queue:byAccessor:)]
pub unsafe fn coordinateAccessWithIntents_queue_byAccessor(
&self,
intents: &NSArray<NSFileAccessIntent>,
queue: &NSOperationQueue,
accessor: &Block<(*mut NSError,), ()>,
);
#[method(coordinateReadingItemAtURL:options:error:byAccessor:)]
pub unsafe fn coordinateReadingItemAtURL_options_error_byAccessor(
&self,
url: &NSURL,
options: NSFileCoordinatorReadingOptions,
outError: *mut *mut NSError,
reader: &Block<(NonNull<NSURL>,), ()>,
);
#[method(coordinateWritingItemAtURL:options:error:byAccessor:)]
pub unsafe fn coordinateWritingItemAtURL_options_error_byAccessor(
&self,
url: &NSURL,
options: NSFileCoordinatorWritingOptions,
outError: *mut *mut NSError,
writer: &Block<(NonNull<NSURL>,), ()>,
);
#[method(coordinateReadingItemAtURL:options:writingItemAtURL:options:error:byAccessor:)]
pub unsafe fn coordinateReadingItemAtURL_options_writingItemAtURL_options_error_byAccessor(
&self,
readingURL: &NSURL,
readingOptions: NSFileCoordinatorReadingOptions,
writingURL: &NSURL,
writingOptions: NSFileCoordinatorWritingOptions,
outError: *mut *mut NSError,
readerWriter: &Block<(NonNull<NSURL>, NonNull<NSURL>), ()>,
);
#[method(coordinateWritingItemAtURL:options:writingItemAtURL:options:error:byAccessor:)]
pub unsafe fn coordinateWritingItemAtURL_options_writingItemAtURL_options_error_byAccessor(
&self,
url1: &NSURL,
options1: NSFileCoordinatorWritingOptions,
url2: &NSURL,
options2: NSFileCoordinatorWritingOptions,
outError: *mut *mut NSError,
writer: &Block<(NonNull<NSURL>, NonNull<NSURL>), ()>,
);
#[method(prepareForReadingItemsAtURLs:options:writingItemsAtURLs:options:error:byAccessor:)]
pub unsafe fn prepareForReadingItemsAtURLs_options_writingItemsAtURLs_options_error_byAccessor(
&self,
readingURLs: &NSArray<NSURL>,
readingOptions: NSFileCoordinatorReadingOptions,
writingURLs: &NSArray<NSURL>,
writingOptions: NSFileCoordinatorWritingOptions,
outError: *mut *mut NSError,
batchAccessor: &Block<(NonNull<Block<(), ()>>,), ()>,
);
#[method(itemAtURL:willMoveToURL:)]
pub unsafe fn itemAtURL_willMoveToURL(&self, oldURL: &NSURL, newURL: &NSURL);
#[method(itemAtURL:didMoveToURL:)]
pub unsafe fn itemAtURL_didMoveToURL(&self, oldURL: &NSURL, newURL: &NSURL);
#[method(itemAtURL:didChangeUbiquityAttributes:)]
pub unsafe fn itemAtURL_didChangeUbiquityAttributes(
&self,
url: &NSURL,
attributes: &NSSet<NSURLResourceKey>,
);
#[method(cancel)]
pub unsafe fn cancel(&self);
}
);