objc2_io_bluetooth/generated/objc2/
OBEXFileTransferServices.rs

1//! This file has been automatically generated by `objc2`'s `header-translator`.
2//! DO NOT EDIT
3use core::ffi::*;
4use core::ptr::NonNull;
5use objc2::__framework_prelude::*;
6#[cfg(feature = "objc2-core-foundation")]
7use objc2_core_foundation::*;
8#[cfg(feature = "objc2-foundation")]
9use objc2_foundation::*;
10
11use crate::*;
12
13extern_class!(
14    /// [Apple's documentation](https://developer.apple.com/documentation/iobluetooth/obexfiletransferservices?language=objc)
15    #[unsafe(super(NSObject))]
16    #[derive(Debug, PartialEq, Eq, Hash)]
17    pub struct OBEXFileTransferServices;
18);
19
20extern_conformance!(
21    unsafe impl NSObjectProtocol for OBEXFileTransferServices {}
22);
23
24impl OBEXFileTransferServices {
25    extern_methods!(
26        /// # Safety
27        ///
28        /// This is not retained internally, you must ensure the object is still alive.
29        #[unsafe(method(delegate))]
30        #[unsafe(method_family = none)]
31        pub unsafe fn delegate(&self) -> Option<Retained<AnyObject>>;
32
33        /// Setter for [`delegate`][Self::delegate].
34        ///
35        /// # Safety
36        ///
37        /// - `delegate` should be of the correct type.
38        /// - `delegate` might not allow `None`.
39        /// - This is unretained, you must ensure the object is kept alive while in use.
40        #[unsafe(method(setDelegate:))]
41        #[unsafe(method_family = none)]
42        pub unsafe fn setDelegate(&self, delegate: Option<&AnyObject>);
43
44        #[cfg(all(feature = "IOBluetoothOBEXSession", feature = "OBEXSession"))]
45        /// Create a new OBEXFileTransferServices object
46        ///
47        /// This object must be constructed with a valid IOBluetoothOBEXSession. The given
48        /// IOBluetoothOBEXSession does not need to be connected to the remote server.
49        /// This module can be manually connected through the connect(void) method.
50        ///
51        /// Parameter `inOBEXSession`: A valid IOBluetoothOBEXSession
52        ///
53        /// Returns: A newly created OBEXFileTransferServices object on success, nil on failure
54        ///
55        /// # Safety
56        ///
57        /// `in_obex_session` might not allow `None`.
58        #[unsafe(method(withOBEXSession:))]
59        #[unsafe(method_family = none)]
60        pub unsafe fn withOBEXSession(
61            in_obex_session: Option<&IOBluetoothOBEXSession>,
62        ) -> Option<Retained<Self>>;
63
64        #[cfg(all(feature = "IOBluetoothOBEXSession", feature = "OBEXSession"))]
65        /// Create a new OBEXFileTransferServices object
66        ///
67        /// This object must be constructed with a valid IOBluetoothOBEXSession. The given
68        /// IOBluetoothOBEXSession does not need to be connected to the remote server.
69        /// OBEXFileTransferServices can be manually connected through the provided connection
70        /// methods.
71        ///
72        /// Parameter `inOBEXSession`: A valid IOBluetoothOBEXSession
73        ///
74        /// Returns: A newly created OBEXFileTransferServices object on success, nil on failure
75        ///
76        /// # Safety
77        ///
78        /// `in_obex_session` might not allow `None`.
79        #[unsafe(method(initWithOBEXSession:))]
80        #[unsafe(method_family = init)]
81        pub unsafe fn initWithOBEXSession(
82            this: Allocated<Self>,
83            in_obex_session: Option<&IOBluetoothOBEXSession>,
84        ) -> Option<Retained<Self>>;
85
86        #[cfg(feature = "objc2-foundation")]
87        /// Get the remote current directory path during an FTP session
88        ///
89        /// This path is changed with each path-specific command called on OBEXFileTransferServices.
90        ///
91        /// Returns: The current path being browsed over FTP
92        #[unsafe(method(currentPath))]
93        #[unsafe(method_family = none)]
94        pub unsafe fn currentPath(&self) -> Option<Retained<NSString>>;
95
96        /// Get the action state of the module
97        ///
98        /// OBEXFileTransferServices will be considered "busy" when an operation in taking place or
99        /// has not completed.  Calling abort: on this module will not automatically reset its busy
100        /// state.  The user will have to wait for the operation to complete or for the current
101        /// operation to timeout.
102        ///
103        /// Returns: Success or failure code.
104        #[unsafe(method(isBusy))]
105        #[unsafe(method_family = none)]
106        pub unsafe fn isBusy(&self) -> bool;
107
108        /// Get the connected state of this module.
109        ///
110        /// Asks the OBEXSession that was passed to it on creation if it has an open OBEX connection
111        ///
112        /// Returns: Success or failure code.
113        #[unsafe(method(isConnected))]
114        #[unsafe(method_family = none)]
115        pub unsafe fn isConnected(&self) -> bool;
116
117        #[cfg(feature = "OBEX")]
118        /// Connect to a remote device for FTP operations
119        ///
120        /// If the OBEXSession given to OBEXFileTransferServices on creation is not connected it
121        /// can be manually connected through this method.
122        ///
123        /// Returns: kOBEXSuccess, kOBEXSessionBusyError, or kOBEXSessionAlreadyConnectedError, kOBEXNoResourcesError
124        /// initially.  Further results returned through the fileTransferServicesConnectionComplete:
125        /// delegate method if initially successful.
126        #[unsafe(method(connectToFTPService))]
127        #[unsafe(method_family = none)]
128        pub unsafe fn connectToFTPService(&self) -> OBEXError;
129
130        #[cfg(feature = "OBEX")]
131        /// Connect to a remote device for ObjectPush operations.
132        /// Most of the FTP functionality of this object will be disabled.
133        ///
134        /// If the OBEXSession given to OBEXFileTransferServices on creation is not connected it
135        /// can be manually connected through this method.
136        ///
137        /// Returns: kOBEXSuccess, kOBEXSessionBusyError, or kOBEXSessionAlreadyConnectedError, kOBEXNoResourcesError
138        /// initially.  Further results returned through the fileTransferServicesConnectionComplete:
139        /// delegate method if initially successful.
140        #[unsafe(method(connectToObjectPushService))]
141        #[unsafe(method_family = none)]
142        pub unsafe fn connectToObjectPushService(&self) -> OBEXError;
143
144        #[cfg(feature = "OBEX")]
145        /// Disconnect from the remote device
146        ///
147        /// The user can manually disconnect the OBEXSession from the remote device if they want
148        /// to.  OBEXFileTransferServices will disconnect the OBEXSession at release only if it was responsible
149        /// for opening the connection via a connect method.
150        ///
151        /// Returns: kOBEXSuccess, kOBEXSessionNotConnectedError, or kOBEXSessionBusyError initially. Further results
152        /// returned through the fileTransferServicesDisconnectionComplete: delegate method if initially successful.
153        #[unsafe(method(disconnect))]
154        #[unsafe(method_family = none)]
155        pub unsafe fn disconnect(&self) -> OBEXError;
156
157        #[cfg(feature = "OBEX")]
158        /// Asynchronously change to the remote root directory
159        ///
160        /// Equivalent to 'cd ~/'
161        ///
162        /// Returns: kOBEXSuccess or kOBEXSessionBusyError initially.  Further results
163        /// returned through the fileTransferServicesPathChangeComplete: delegate method if initially successful.
164        #[unsafe(method(changeCurrentFolderToRoot))]
165        #[unsafe(method_family = none)]
166        pub unsafe fn changeCurrentFolderToRoot(&self) -> OBEXError;
167
168        #[cfg(feature = "OBEX")]
169        /// Change to the directory above the current level if not at the root
170        ///
171        /// Equivalent to 'cd ..' only if remote path is not already at root.
172        ///
173        /// Returns: kOBEXSuccess or kOBEXSessionBusyError initially. Further results
174        /// returned through the fileTransferServicesPathChangeComplete: delegate method if initially successful.
175        #[unsafe(method(changeCurrentFolderBackward))]
176        #[unsafe(method_family = none)]
177        pub unsafe fn changeCurrentFolderBackward(&self) -> OBEXError;
178
179        #[cfg(all(feature = "OBEX", feature = "objc2-foundation"))]
180        /// Change the remote path
181        ///
182        /// Equivalent to 'cd dirName'.
183        ///
184        /// Parameter `inDirName`: The name of the remote folder to be set as current
185        ///
186        /// Returns: kOBEXSuccess, kOBEXSessionBusyError, or kOBEXBadArgumentError initially. Further results
187        /// returned through the fileTransferServicesPathChangeComplete: delegate method if initially successful.
188        ///
189        /// # Safety
190        ///
191        /// `in_dir_name` might not allow `None`.
192        #[unsafe(method(changeCurrentFolderForwardToPath:))]
193        #[unsafe(method_family = none)]
194        pub unsafe fn changeCurrentFolderForwardToPath(
195            &self,
196            in_dir_name: Option<&NSString>,
197        ) -> OBEXError;
198
199        #[cfg(all(feature = "OBEX", feature = "objc2-foundation"))]
200        /// Create a folder on the remote target
201        ///
202        /// Equivalent to 'mkdir dirName'.
203        ///
204        /// Parameter `inDirName`: The name of the folder to be created
205        ///
206        /// Returns: kOBEXSuccess, kOBEXSessionBusyError, or kOBEXBadArgumentError initially.
207        /// Further results returned through the fileTransferServicesCreateFolderComplete delegate method
208        /// if initially successful.
209        ///
210        /// # Safety
211        ///
212        /// `in_dir_name` might not allow `None`.
213        #[unsafe(method(createFolder:))]
214        #[unsafe(method_family = none)]
215        pub unsafe fn createFolder(&self, in_dir_name: Option<&NSString>) -> OBEXError;
216
217        #[cfg(all(feature = "OBEX", feature = "objc2-foundation"))]
218        /// Remove a remote item.
219        ///
220        /// Not supported for use on Apple computer targets
221        ///
222        /// Parameter `inItemName`: The name of the remote item to be removed
223        ///
224        /// Returns: kOBEXSuccess, kOBEXSessionBusyError, or kOBEXBadArgumentError initially.
225        /// Further results returned through the fileTransferServicesRemoveItemComplete: delegate method
226        /// if initially successful.
227        ///
228        /// # Safety
229        ///
230        /// `in_item_name` might not allow `None`.
231        #[unsafe(method(removeItem:))]
232        #[unsafe(method_family = none)]
233        pub unsafe fn removeItem(&self, in_item_name: Option<&NSString>) -> OBEXError;
234
235        #[cfg(feature = "OBEX")]
236        /// Get a remote directory listing
237        ///
238        /// Equivalent to 'ls'.
239        ///
240        /// Returns: kOBEXSuccess or kOBEXSessionBusyError initially.  Further results returned through
241        /// the fileTransferServicesRetrieveFolderListingComplete: delegate method if initially successful.
242        #[unsafe(method(retrieveFolderListing))]
243        #[unsafe(method_family = none)]
244        pub unsafe fn retrieveFolderListing(&self) -> OBEXError;
245
246        #[cfg(all(feature = "OBEX", feature = "objc2-foundation"))]
247        /// Put a local file to the remote target
248        ///
249        /// Equivalent to 'mv inLocalFilePath remoteCurrentPath'.
250        ///
251        /// Parameter `inLocalPathAndName`: The name and path of the file to be sent an instance of OBEXFilePut.
252        ///
253        /// Returns: kOBEXSuccess, kOBEXSessionBusyError, or kOBEXBadArgumentError initially. Further
254        /// results returned through the fileTransferServicesSendComplete: and
255        /// fileTransferServicesSendProgress: delegate methods if initially successful.
256        ///
257        /// # Safety
258        ///
259        /// `in_local_path_and_name` might not allow `None`.
260        #[unsafe(method(sendFile:))]
261        #[unsafe(method_family = none)]
262        pub unsafe fn sendFile(&self, in_local_path_and_name: Option<&NSString>) -> OBEXError;
263
264        #[cfg(all(feature = "OBEX", feature = "objc2-foundation"))]
265        /// Copy a remote file to a local path
266        ///
267        /// Equivalent to 'cp remotePath/remoteFileName localPathAndName'.
268        ///
269        /// Parameter `inRemoteFileName`: The name of the remote file to get
270        ///
271        /// Parameter `inLocalPathAndName`: The path and name of where the received file will go
272        ///
273        /// Returns: kOBEXSuccess, kOBEXSessionBusyError, or kOBEXBadArgumentError. initially.  Further
274        /// results returned through the fileTransferServicesGetComplete: and
275        /// fileTransferServicesGetProgress: delegate methods if initially successful.
276        ///
277        /// # Safety
278        ///
279        /// - `in_remote_file_name` might not allow `None`.
280        /// - `in_local_path_and_name` might not allow `None`.
281        #[unsafe(method(copyRemoteFile:toLocalPath:))]
282        #[unsafe(method_family = none)]
283        pub unsafe fn copyRemoteFile_toLocalPath(
284            &self,
285            in_remote_file_name: Option<&NSString>,
286            in_local_path_and_name: Option<&NSString>,
287        ) -> OBEXError;
288
289        #[cfg(all(feature = "OBEX", feature = "objc2-foundation"))]
290        /// Send data to a remote target
291        ///
292        /// Use this method when you have data to send but no file to read from.
293        ///
294        /// Parameter `inData`: The data to be sent
295        ///
296        /// Parameter `inType`: The type of the data to be sent that will be used in the OBEX type header,
297        /// usually a mime-type.  For example, use "text/x-vCard" when sending vCards. This
298        /// argument is optional.
299        ///
300        /// Parameter `inName`: The name of the file that the data can be referenced as.
301        ///
302        /// Returns: kOBEXSuccess, kOBEXSessionBusyError, or kOBEXBadArgumentError initially. Further
303        /// results returned through the fileTransferServicesSendComplete: and
304        /// fileTransferServicesSendProgress: delegate methods if initially successful.
305        ///
306        /// # Safety
307        ///
308        /// - `in_data` might not allow `None`.
309        /// - `in_type` might not allow `None`.
310        /// - `in_name` might not allow `None`.
311        #[unsafe(method(sendData:type:name:))]
312        #[unsafe(method_family = none)]
313        pub unsafe fn sendData_type_name(
314            &self,
315            in_data: Option<&NSData>,
316            in_type: Option<&NSString>,
317            in_name: Option<&NSString>,
318        ) -> OBEXError;
319
320        #[cfg(all(feature = "OBEX", feature = "objc2-foundation"))]
321        /// Get the remote default VCard, if it is supported
322        ///
323        /// Some devices such as cellphones and computers support default VCards
324        ///
325        /// Parameter `inLocalPathAndName`: The path and name of where the received file will go
326        ///
327        /// Returns: kOBEXSuccess, kOBEXSessionBusyError, or kOBEXBadArgumentError initially.  Further
328        /// results returned through the fileTransferServicesGetComplete: and
329        /// fileTransferServicesGetProgress: delegate methods if initially successful.
330        ///
331        /// # Safety
332        ///
333        /// `in_local_path_and_name` might not allow `None`.
334        #[unsafe(method(getDefaultVCard:))]
335        #[unsafe(method_family = none)]
336        pub unsafe fn getDefaultVCard(
337            &self,
338            in_local_path_and_name: Option<&NSString>,
339        ) -> OBEXError;
340
341        #[cfg(feature = "OBEX")]
342        /// Abort the current operation
343        ///
344        /// Attempts send an abort request to the remote device.  Returns the OBEXFileTransferServices
345        /// object to an idle state though the state of the remote device is not guaranteed.
346        ///
347        /// Returns: kOBEXSuccess, or kOBEXGeneralError if no command is in progress. ABORT
348        /// commands can only be sent on our turn, meaning we may have to timeout if the
349        /// target side never responds to the command in progress.  In that case this object
350        /// will call back with a status of kOBEXTimeoutError and an error. Further results
351        /// returned through the fileTransferServicesAbortComplete: delegate method if initially successful.
352        #[unsafe(method(abort))]
353        #[unsafe(method_family = none)]
354        pub unsafe fn abort(&self) -> OBEXError;
355    );
356}
357
358/// Methods declared on superclass `NSObject`.
359impl OBEXFileTransferServices {
360    extern_methods!(
361        #[unsafe(method(init))]
362        #[unsafe(method_family = init)]
363        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
364
365        #[unsafe(method(new))]
366        #[unsafe(method_family = new)]
367        pub unsafe fn new() -> Retained<Self>;
368    );
369}
370
371extern "C" {
372    /// NSNumber integer value. This key is used with the NSDictionary returned from the fileTransferServicesPutProgress:
373    /// and fileTransferServicesGetProgress: delegate methods
374    ///
375    /// See also [Apple's documentation](https://developer.apple.com/documentation/iobluetooth/kftsprogressbytestransferredkey?language=objc)
376    #[cfg(feature = "objc2-core-foundation")]
377    pub static kFTSProgressBytesTransferredKey: Option<&'static CFString>;
378}
379
380extern "C" {
381    /// NSNumber integer value. This key is used with the NSDictionary returned from the fileTransferServicesPutProgress:
382    /// and fileTransferServicesGetProgress: delegate methods
383    ///
384    /// See also [Apple's documentation](https://developer.apple.com/documentation/iobluetooth/kftsprogressbytestotalkey?language=objc)
385    #[cfg(feature = "objc2-core-foundation")]
386    pub static kFTSProgressBytesTotalKey: Option<&'static CFString>;
387}
388
389extern "C" {
390    /// NSNumber float value. This key is used with the NSDictionary returned from the fileTransferServicesPutProgress:
391    /// and fileTransferServicesGetProgress: delegate methods
392    ///
393    /// See also [Apple's documentation](https://developer.apple.com/documentation/iobluetooth/kftsprogresspercentagekey?language=objc)
394    #[cfg(feature = "objc2-core-foundation")]
395    pub static kFTSProgressPercentageKey: Option<&'static CFString>;
396}
397
398extern "C" {
399    /// [Apple's documentation](https://developer.apple.com/documentation/iobluetooth/kftsprogressprecentagekey?language=objc)
400    #[cfg(feature = "objc2-core-foundation")]
401    pub static kFTSProgressPrecentageKey: Option<&'static CFString>;
402}
403
404extern "C" {
405    /// NSNumber double value. This key is used with the NSDictionary returned from the fileTransferServicesPutProgress:
406    /// and fileTransferServicesGetProgress: delegate methods
407    ///
408    /// See also [Apple's documentation](https://developer.apple.com/documentation/iobluetooth/kftsprogressestimatedtimekey?language=objc)
409    #[cfg(feature = "objc2-core-foundation")]
410    pub static kFTSProgressEstimatedTimeKey: Option<&'static CFString>;
411}
412
413extern "C" {
414    /// NSNumber int value. This key is used with the NSDictionary returned from the fileTransferServicesPutProgress:
415    /// and fileTransferServicesGetProgress: delegate methods
416    ///
417    /// See also [Apple's documentation](https://developer.apple.com/documentation/iobluetooth/kftsprogresstimeelapsedkey?language=objc)
418    #[cfg(feature = "objc2-core-foundation")]
419    pub static kFTSProgressTimeElapsedKey: Option<&'static CFString>;
420}
421
422extern "C" {
423    /// NSNumber float value. This key is used with the NSDictionary returned from the fileTransferServicesPutProgress:
424    /// and fileTransferServicesGetProgress: delegate methods
425    ///
426    /// See also [Apple's documentation](https://developer.apple.com/documentation/iobluetooth/kftsprogresstransferratekey?language=objc)
427    #[cfg(feature = "objc2-core-foundation")]
428    pub static kFTSProgressTransferRateKey: Option<&'static CFString>;
429}
430
431extern "C" {
432    /// NSString value.  This key is used with the array of NSDictionary's returned through the delegate method
433    /// fileTransferServicesGetListingComplete: after calling getFolderListing.
434    ///
435    /// See also [Apple's documentation](https://developer.apple.com/documentation/iobluetooth/kftslistingnamekey?language=objc)
436    #[cfg(feature = "objc2-core-foundation")]
437    pub static kFTSListingNameKey: Option<&'static CFString>;
438}
439
440extern "C" {
441    /// FTSFileType value.  This key is used with the array of NSDictionary's returned through the delegate method
442    /// fileTransferServicesGetListingComplete: after calling getFolderListing.
443    ///
444    /// See also [Apple's documentation](https://developer.apple.com/documentation/iobluetooth/kftslistingtypekey?language=objc)
445    #[cfg(feature = "objc2-core-foundation")]
446    pub static kFTSListingTypeKey: Option<&'static CFString>;
447}
448
449extern "C" {
450    /// Int value.  This key is used with the array of NSDictionary's returned through the delegate method
451    /// fileTransferServicesGetListingComplete: after calling getFolderListing.
452    ///
453    /// See also [Apple's documentation](https://developer.apple.com/documentation/iobluetooth/kftslistingsizekey?language=objc)
454    #[cfg(feature = "objc2-core-foundation")]
455    pub static kFTSListingSizeKey: Option<&'static CFString>;
456}
457
458/// The type values associated with the kFTSListingTypeKey dictionary value
459///
460/// See also [Apple's documentation](https://developer.apple.com/documentation/iobluetooth/ftsfiletype?language=objc)
461#[repr(transparent)]
462#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
463pub struct FTSFileType(pub c_uint);
464impl FTSFileType {
465    #[doc(alias = "kFTSFileTypeFolder")]
466    pub const Folder: Self = Self(1);
467    #[doc(alias = "kFTSFileTypeFile")]
468    pub const File: Self = Self(2);
469}
470
471unsafe impl Encode for FTSFileType {
472    const ENCODING: Encoding = c_uint::ENCODING;
473}
474
475unsafe impl RefEncode for FTSFileType {
476    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
477}
478
479mod private_NSObjectOBEXFileTransferServicesDelegate {
480    pub trait Sealed {}
481}
482
483/// Category "OBEXFileTransferServicesDelegate" on [`NSObject`].
484#[doc(alias = "OBEXFileTransferServicesDelegate")]
485pub unsafe trait NSObjectOBEXFileTransferServicesDelegate:
486    ClassType + Sized + private_NSObjectOBEXFileTransferServicesDelegate::Sealed
487{
488    extern_methods!(
489        #[cfg(feature = "OBEX")]
490        /// The delegate method that corresponds to the connect method
491        ///
492        /// inError will either be kOBEXSuccess or it will be an error returned by the OBEX Session
493        ///
494        /// # Safety
495        ///
496        /// `in_services` might not allow `None`.
497        #[unsafe(method(fileTransferServicesConnectionComplete:error:))]
498        #[unsafe(method_family = none)]
499        unsafe fn fileTransferServicesConnectionComplete_error(
500            &self,
501            in_services: Option<&OBEXFileTransferServices>,
502            in_error: OBEXError,
503        );
504
505        #[cfg(feature = "OBEX")]
506        /// The delegate method that corresponds to the disconnect method
507        ///
508        /// inError will be kOBEXSuccess on success.  This method will also be called if the connection
509        /// is lost to the server.  Possible error codes include kOBEXSessionTransportDiedError,
510        /// kOBEXSessionNoTransportError, and kOBEXSessionNotConnectedError.
511        ///
512        /// # Safety
513        ///
514        /// `in_services` might not allow `None`.
515        #[unsafe(method(fileTransferServicesDisconnectionComplete:error:))]
516        #[unsafe(method_family = none)]
517        unsafe fn fileTransferServicesDisconnectionComplete_error(
518            &self,
519            in_services: Option<&OBEXFileTransferServices>,
520            in_error: OBEXError,
521        );
522
523        #[cfg(feature = "OBEX")]
524        /// The delegate method that corresponds to the abort method
525        ///
526        /// Possible inError values are kOBEXSuccess and kOBEXTimeoutError
527        ///
528        /// # Safety
529        ///
530        /// `in_services` might not allow `None`.
531        #[unsafe(method(fileTransferServicesAbortComplete:error:))]
532        #[unsafe(method_family = none)]
533        unsafe fn fileTransferServicesAbortComplete_error(
534            &self,
535            in_services: Option<&OBEXFileTransferServices>,
536            in_error: OBEXError,
537        );
538
539        #[cfg(all(feature = "OBEX", feature = "objc2-foundation"))]
540        /// The delegate method that corresponds to the removeItemNamed: method.
541        ///
542        ///
543        /// Parameter `inItemName`: The name of the remote item that was removed
544        ///
545        /// # Safety
546        ///
547        /// - `in_services` might not allow `None`.
548        /// - `in_item_name` might not allow `None`.
549        #[unsafe(method(fileTransferServicesRemoveItemComplete:error:removedItem:))]
550        #[unsafe(method_family = none)]
551        unsafe fn fileTransferServicesRemoveItemComplete_error_removedItem(
552            &self,
553            in_services: Option<&OBEXFileTransferServices>,
554            in_error: OBEXError,
555            in_item_name: Option<&NSString>,
556        );
557
558        #[cfg(all(feature = "OBEX", feature = "objc2-foundation"))]
559        /// The delegate method that corresponds to the createFolderNamed: method.
560        ///
561        ///
562        /// Parameter `inFolderName`: The name of the newly created folder
563        ///
564        /// # Safety
565        ///
566        /// - `in_services` might not allow `None`.
567        /// - `in_folder_name` might not allow `None`.
568        #[unsafe(method(fileTransferServicesCreateFolderComplete:error:folder:))]
569        #[unsafe(method_family = none)]
570        unsafe fn fileTransferServicesCreateFolderComplete_error_folder(
571            &self,
572            in_services: Option<&OBEXFileTransferServices>,
573            in_error: OBEXError,
574            in_folder_name: Option<&NSString>,
575        );
576
577        #[cfg(all(feature = "OBEX", feature = "objc2-foundation"))]
578        /// The delegate method that corresponds to the changeCurrentFolderToRoot:,
579        /// changeCurrentFolderBackward:, and changeCurrentFolderForward: methods
580        ///
581        ///
582        /// Parameter `inPath`: The current remote path
583        ///
584        /// # Safety
585        ///
586        /// - `in_services` might not allow `None`.
587        /// - `in_path` might not allow `None`.
588        #[unsafe(method(fileTransferServicesPathChangeComplete:error:finalPath:))]
589        #[unsafe(method_family = none)]
590        unsafe fn fileTransferServicesPathChangeComplete_error_finalPath(
591            &self,
592            in_services: Option<&OBEXFileTransferServices>,
593            in_error: OBEXError,
594            in_path: Option<&NSString>,
595        );
596
597        #[cfg(all(feature = "OBEX", feature = "objc2-foundation"))]
598        /// The delegate method that corresponds to the retrieveFolderListing method
599        ///
600        ///
601        /// Parameter `inListing`: An array of NSDictionary's that detail each file at the current path.  The keys
602        /// to this dictionary are defined in the OBEXFileTransferServicesDelegate category.
603        ///
604        /// # Safety
605        ///
606        /// - `in_services` might not allow `None`.
607        /// - `in_listing` generic should be of the correct type.
608        /// - `in_listing` might not allow `None`.
609        #[unsafe(method(fileTransferServicesRetrieveFolderListingComplete:error:listing:))]
610        #[unsafe(method_family = none)]
611        unsafe fn fileTransferServicesRetrieveFolderListingComplete_error_listing(
612            &self,
613            in_services: Option<&OBEXFileTransferServices>,
614            in_error: OBEXError,
615            in_listing: Option<&NSArray>,
616        );
617
618        #[cfg(feature = "OBEX")]
619        /// The delegate method for receiving information on the preparation of each file to send
620        ///
621        /// This method will be called before the transfer operation.
622        ///
623        /// # Safety
624        ///
625        /// `in_services` might not allow `None`.
626        #[unsafe(method(fileTransferServicesFilePreparationComplete:error:))]
627        #[unsafe(method_family = none)]
628        unsafe fn fileTransferServicesFilePreparationComplete_error(
629            &self,
630            in_services: Option<&OBEXFileTransferServices>,
631            in_error: OBEXError,
632        );
633
634        #[cfg(feature = "objc2-foundation")]
635        /// The delegate method for receiving information on the sendFile: transfer
636        ///
637        /// This method will be called during the transfer operation.
638        ///
639        /// Parameter `inProgressDescription`: A dictionary containing information on the state of the transfer. The keys
640        /// to this dictionary are defined in the OBEXFileTransferServicesDelegate category.
641        ///
642        /// # Safety
643        ///
644        /// - `in_services` might not allow `None`.
645        /// - `in_progress_description` generic should be of the correct type.
646        /// - `in_progress_description` might not allow `None`.
647        #[unsafe(method(fileTransferServicesSendFileProgress:transferProgress:))]
648        #[unsafe(method_family = none)]
649        unsafe fn fileTransferServicesSendFileProgress_transferProgress(
650            &self,
651            in_services: Option<&OBEXFileTransferServices>,
652            in_progress_description: Option<&NSDictionary>,
653        );
654
655        #[cfg(feature = "OBEX")]
656        /// The delegate method that corresponds to the sendFile: method.
657        ///
658        /// This method will be called when the transfer operation has finished.
659        ///
660        /// # Safety
661        ///
662        /// `in_services` might not allow `None`.
663        #[unsafe(method(fileTransferServicesSendFileComplete:error:))]
664        #[unsafe(method_family = none)]
665        unsafe fn fileTransferServicesSendFileComplete_error(
666            &self,
667            in_services: Option<&OBEXFileTransferServices>,
668            in_error: OBEXError,
669        );
670
671        #[cfg(feature = "objc2-foundation")]
672        /// The delegate method for receiving information on the GET transfer
673        ///
674        /// This method will be called during the transfer operation
675        ///
676        /// Parameter `inProgressDescription`: A dictionary containing information on the state of the transfer. The keys
677        /// to this dictionary are defined in the OBEXFileTransferServicesDelegate category.
678        ///
679        /// # Safety
680        ///
681        /// - `in_services` might not allow `None`.
682        /// - `in_progress_description` generic should be of the correct type.
683        /// - `in_progress_description` might not allow `None`.
684        #[unsafe(method(fileTransferServicesCopyRemoteFileProgress:transferProgress:))]
685        #[unsafe(method_family = none)]
686        unsafe fn fileTransferServicesCopyRemoteFileProgress_transferProgress(
687            &self,
688            in_services: Option<&OBEXFileTransferServices>,
689            in_progress_description: Option<&NSDictionary>,
690        );
691
692        #[cfg(feature = "OBEX")]
693        /// The delegate method that corresponds to the getFileNamed:toLocalPathAndName: method
694        ///
695        /// This method will be called when the transfer operation has finished
696        ///
697        /// # Safety
698        ///
699        /// `in_services` might not allow `None`.
700        #[unsafe(method(fileTransferServicesCopyRemoteFileComplete:error:))]
701        #[unsafe(method_family = none)]
702        unsafe fn fileTransferServicesCopyRemoteFileComplete_error(
703            &self,
704            in_services: Option<&OBEXFileTransferServices>,
705            in_error: OBEXError,
706        );
707    );
708}
709
710impl private_NSObjectOBEXFileTransferServicesDelegate::Sealed for NSObject {}
711unsafe impl NSObjectOBEXFileTransferServicesDelegate for NSObject {}