use crate::common::*;
use crate::AppKit::*;
use crate::FileProvider::*;
use crate::Foundation::*;
use crate::UniformTypeIdentifiers::*;
ns_enum!(
#[underlying(NSInteger)]
pub enum NSFileProviderDomainRemovalMode {
NSFileProviderDomainRemovalModeRemoveAll = 0,
NSFileProviderDomainRemovalModePreserveDirtyUserData = 1,
NSFileProviderDomainRemovalModePreserveDownloadedUserData = 2,
}
);
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
#[cfg(feature = "FileProvider_NSFileProviderManager")]
pub struct NSFileProviderManager;
#[cfg(feature = "FileProvider_NSFileProviderManager")]
unsafe impl ClassType for NSFileProviderManager {
type Super = NSObject;
type Mutability = InteriorMutable;
}
);
#[cfg(feature = "FileProvider_NSFileProviderManager")]
unsafe impl NSObjectProtocol for NSFileProviderManager {}
extern_methods!(
#[cfg(feature = "FileProvider_NSFileProviderManager")]
unsafe impl NSFileProviderManager {
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Id<Self>;
#[method_id(@__retain_semantics Other defaultManager)]
pub unsafe fn defaultManager() -> Id<NSFileProviderManager>;
#[cfg(feature = "FileProvider_NSFileProviderDomain")]
#[method_id(@__retain_semantics Other managerForDomain:)]
pub unsafe fn managerForDomain(domain: &NSFileProviderDomain) -> Option<Id<Self>>;
#[cfg(feature = "Foundation_NSError")]
#[method(signalEnumeratorForContainerItemIdentifier:completionHandler:)]
pub unsafe fn signalEnumeratorForContainerItemIdentifier_completionHandler(
&self,
container_item_identifier: &NSFileProviderItemIdentifier,
completion: &Block<(*mut NSError,), ()>,
);
#[cfg(all(feature = "Foundation_NSError", feature = "Foundation_NSURL"))]
#[method(getUserVisibleURLForItemIdentifier:completionHandler:)]
pub unsafe fn getUserVisibleURLForItemIdentifier_completionHandler(
&self,
item_identifier: &NSFileProviderItemIdentifier,
completion_handler: &Block<(*mut NSURL, *mut NSError), ()>,
);
#[cfg(all(feature = "Foundation_NSError", feature = "Foundation_NSURL"))]
#[method(getIdentifierForUserVisibleFileAtURL:completionHandler:)]
pub unsafe fn getIdentifierForUserVisibleFileAtURL_completionHandler(
url: &NSURL,
completion_handler: &Block<
(
*mut NSFileProviderItemIdentifier,
*mut NSFileProviderDomainIdentifier,
*mut NSError,
),
(),
>,
);
#[cfg(all(
feature = "Foundation_NSError",
feature = "Foundation_NSURLSessionTask"
))]
#[method(registerURLSessionTask:forItemWithIdentifier:completionHandler:)]
pub unsafe fn registerURLSessionTask_forItemWithIdentifier_completionHandler(
&self,
task: &NSURLSessionTask,
identifier: &NSFileProviderItemIdentifier,
completion: &Block<(*mut NSError,), ()>,
);
#[cfg(feature = "Foundation_NSString")]
#[method_id(@__retain_semantics Other providerIdentifier)]
pub unsafe fn providerIdentifier(&self) -> Id<NSString>;
#[cfg(feature = "Foundation_NSURL")]
#[method_id(@__retain_semantics Other documentStorageURL)]
pub unsafe fn documentStorageURL(&self) -> Id<NSURL>;
#[cfg(all(feature = "Foundation_NSError", feature = "Foundation_NSURL"))]
#[method_id(@__retain_semantics Other temporaryDirectoryURLWithError:_)]
pub unsafe fn temporaryDirectoryURLWithError(&self) -> Result<Id<NSURL>, Id<NSError>>;
#[cfg(all(feature = "Foundation_NSError", feature = "Foundation_NSURL"))]
#[method(writePlaceholderAtURL:withMetadata:error:_)]
pub unsafe fn writePlaceholderAtURL_withMetadata_error(
placeholder_url: &NSURL,
metadata: &NSFileProviderItem,
) -> Result<(), Id<NSError>>;
#[cfg(feature = "Foundation_NSURL")]
#[method_id(@__retain_semantics Other placeholderURLForURL:)]
pub unsafe fn placeholderURLForURL(url: &NSURL) -> Id<NSURL>;
#[cfg(all(
feature = "FileProvider_NSFileProviderDomain",
feature = "Foundation_NSError"
))]
#[method(addDomain:completionHandler:)]
pub unsafe fn addDomain_completionHandler(
domain: &NSFileProviderDomain,
completion_handler: &Block<(*mut NSError,), ()>,
);
#[cfg(all(
feature = "FileProvider_NSFileProviderDomain",
feature = "Foundation_NSError"
))]
#[method(removeDomain:completionHandler:)]
pub unsafe fn removeDomain_completionHandler(
domain: &NSFileProviderDomain,
completion_handler: &Block<(*mut NSError,), ()>,
);
#[cfg(all(
feature = "FileProvider_NSFileProviderDomain",
feature = "Foundation_NSError",
feature = "Foundation_NSURL"
))]
#[method(removeDomain:mode:completionHandler:)]
pub unsafe fn removeDomain_mode_completionHandler(
domain: &NSFileProviderDomain,
mode: NSFileProviderDomainRemovalMode,
completion_handler: &Block<(*mut NSURL, *mut NSError), ()>,
);
#[cfg(all(
feature = "FileProvider_NSFileProviderDomain",
feature = "Foundation_NSArray",
feature = "Foundation_NSError"
))]
#[method(getDomainsWithCompletionHandler:)]
pub unsafe fn getDomainsWithCompletionHandler(
completion_handler: &Block<(NonNull<NSArray<NSFileProviderDomain>>, *mut NSError), ()>,
);
#[cfg(feature = "Foundation_NSError")]
#[method(removeAllDomainsWithCompletionHandler:)]
pub unsafe fn removeAllDomainsWithCompletionHandler(
completion_handler: &Block<(*mut NSError,), ()>,
);
#[cfg(feature = "Foundation_NSError")]
#[method(signalErrorResolved:completionHandler:)]
pub unsafe fn signalErrorResolved_completionHandler(
&self,
error: &NSError,
completion_handler: &Block<(*mut NSError,), ()>,
);
#[cfg(feature = "Foundation_NSProgress")]
#[method_id(@__retain_semantics Other globalProgressForKind:)]
pub unsafe fn globalProgressForKind(
&self,
kind: &NSProgressFileOperationKind,
) -> Id<NSProgress>;
}
);
extern_methods!(
#[cfg(feature = "FileProvider_NSFileProviderManager")]
unsafe impl NSFileProviderManager {
#[method_id(@__retain_semantics New new)]
pub unsafe fn new() -> Id<Self>;
}
);
extern_static!(NSFileProviderMaterializedSetDidChange: &'static NSNotificationName);
extern_methods!(
#[cfg(feature = "FileProvider_NSFileProviderManager")]
unsafe impl NSFileProviderManager {
#[method_id(@__retain_semantics Other enumeratorForMaterializedItems)]
pub unsafe fn enumeratorForMaterializedItems(
&self,
) -> Id<ProtocolObject<dyn NSFileProviderEnumerator>>;
}
);
extern_static!(NSFileProviderPendingSetDidChange: &'static NSNotificationName);
extern_protocol!(
pub unsafe trait NSFileProviderPendingSetEnumerator: NSFileProviderEnumerator {
#[cfg(feature = "FileProvider_NSFileProviderDomainVersion")]
#[method_id(@__retain_semantics Other domainVersion)]
unsafe fn domainVersion(&self) -> Option<Id<NSFileProviderDomainVersion>>;
#[method(refreshInterval)]
unsafe fn refreshInterval(&self) -> NSTimeInterval;
#[method(isMaximumSizeReached)]
unsafe fn isMaximumSizeReached(&self) -> bool;
}
unsafe impl ProtocolType for dyn NSFileProviderPendingSetEnumerator {}
);
extern_methods!(
#[cfg(feature = "FileProvider_NSFileProviderManager")]
unsafe impl NSFileProviderManager {
#[method_id(@__retain_semantics Other enumeratorForPendingItems)]
pub unsafe fn enumeratorForPendingItems(
&self,
) -> Id<ProtocolObject<dyn NSFileProviderPendingSetEnumerator>>;
}
);
extern_methods!(
#[cfg(feature = "FileProvider_NSFileProviderManager")]
unsafe impl NSFileProviderManager {
#[cfg(all(
feature = "FileProvider_NSFileProviderDomain",
feature = "Foundation_NSError",
feature = "Foundation_NSURL"
))]
#[method(importDomain:fromDirectoryAtURL:completionHandler:)]
pub unsafe fn importDomain_fromDirectoryAtURL_completionHandler(
domain: &NSFileProviderDomain,
url: &NSURL,
completion_handler: &Block<(*mut NSError,), ()>,
);
#[cfg(feature = "Foundation_NSError")]
#[method(reimportItemsBelowItemWithIdentifier:completionHandler:)]
pub unsafe fn reimportItemsBelowItemWithIdentifier_completionHandler(
&self,
item_identifier: &NSFileProviderItemIdentifier,
completion_handler: &Block<(*mut NSError,), ()>,
);
#[cfg(feature = "Foundation_NSError")]
#[method(requestModificationOfFields:forItemWithIdentifier:options:completionHandler:)]
pub unsafe fn requestModificationOfFields_forItemWithIdentifier_options_completionHandler(
&self,
fields: NSFileProviderItemFields,
item_identifier: &NSFileProviderItemIdentifier,
options: NSFileProviderModifyItemOptions,
completion_handler: &Block<(*mut NSError,), ()>,
);
}
);
extern_methods!(
#[cfg(feature = "FileProvider_NSFileProviderManager")]
unsafe impl NSFileProviderManager {
#[cfg(feature = "Foundation_NSError")]
#[method(evictItemWithIdentifier:completionHandler:)]
pub unsafe fn evictItemWithIdentifier_completionHandler(
&self,
item_identifier: &NSFileProviderItemIdentifier,
completion_handler: &Block<(*mut NSError,), ()>,
);
}
);
extern_methods!(
#[cfg(feature = "FileProvider_NSFileProviderManager")]
unsafe impl NSFileProviderManager {
#[cfg(feature = "Foundation_NSError")]
#[method(waitForChangesOnItemsBelowItemWithIdentifier:completionHandler:)]
pub unsafe fn waitForChangesOnItemsBelowItemWithIdentifier_completionHandler(
&self,
item_identifier: &NSFileProviderItemIdentifier,
completion_handler: &Block<(*mut NSError,), ()>,
);
}
);
extern_methods!(
#[cfg(feature = "FileProvider_NSFileProviderManager")]
unsafe impl NSFileProviderManager {
#[cfg(feature = "Foundation_NSError")]
#[method(waitForStabilizationWithCompletionHandler:)]
pub unsafe fn waitForStabilizationWithCompletionHandler(
&self,
completion_handler: &Block<(*mut NSError,), ()>,
);
}
);
ns_options!(
#[underlying(NSUInteger)]
pub enum NSFileProviderManagerDisconnectionOptions {
NSFileProviderManagerDisconnectionOptionsTemporary = 1 << 0,
}
);
extern_methods!(
#[cfg(feature = "FileProvider_NSFileProviderManager")]
unsafe impl NSFileProviderManager {
#[cfg(all(feature = "Foundation_NSError", feature = "Foundation_NSString"))]
#[method(disconnectWithReason:options:completionHandler:)]
pub unsafe fn disconnectWithReason_options_completionHandler(
&self,
localized_reason: &NSString,
options: NSFileProviderManagerDisconnectionOptions,
completion_handler: &Block<(*mut NSError,), ()>,
);
#[cfg(feature = "Foundation_NSError")]
#[method(reconnectWithCompletionHandler:)]
pub unsafe fn reconnectWithCompletionHandler(
&self,
completion_handler: &Block<(*mut NSError,), ()>,
);
}
);
extern_methods!(
#[cfg(feature = "FileProvider_NSFileProviderManager")]
unsafe impl NSFileProviderManager {
#[cfg(feature = "Foundation_NSError")]
#[method(requestDownloadForItemWithIdentifier:requestedRange:completionHandler:)]
pub unsafe fn requestDownloadForItemWithIdentifier_requestedRange_completionHandler(
&self,
item_identifier: &NSFileProviderItemIdentifier,
range_to_materialize: NSRange,
completion_handler: &Block<(*mut NSError,), ()>,
);
}
);