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