OBEXFileTransferServices

Struct OBEXFileTransferServices 

Source
pub struct OBEXFileTransferServices { /* private fields */ }
Available on crate feature OBEXFileTransferServices only.
Expand description

Implementations§

Source§

impl OBEXFileTransferServices

Source

pub unsafe fn delegate(&self) -> Option<Retained<AnyObject>>

Available on crate feature objc2 only.
§Safety

This is not retained internally, you must ensure the object is still alive.

Source

pub unsafe fn setDelegate(&self, delegate: Option<&AnyObject>)

Available on crate feature objc2 only.

Setter for delegate.

§Safety
  • delegate should be of the correct type.
  • delegate might not allow None.
  • This is unretained, you must ensure the object is kept alive while in use.
Source

pub unsafe fn withOBEXSession( in_obex_session: Option<&IOBluetoothOBEXSession>, ) -> Option<Retained<Self>>

Available on crate features objc2 and IOBluetoothOBEXSession and OBEXSession only.

Create a new OBEXFileTransferServices object

This object must be constructed with a valid IOBluetoothOBEXSession. The given IOBluetoothOBEXSession does not need to be connected to the remote server. This module can be manually connected through the connect(void) method.

Parameter inOBEXSession: A valid IOBluetoothOBEXSession

Returns: A newly created OBEXFileTransferServices object on success, nil on failure

§Safety

in_obex_session might not allow None.

Source

pub unsafe fn initWithOBEXSession( this: Allocated<Self>, in_obex_session: Option<&IOBluetoothOBEXSession>, ) -> Option<Retained<Self>>

Available on crate features objc2 and IOBluetoothOBEXSession and OBEXSession only.

Create a new OBEXFileTransferServices object

This object must be constructed with a valid IOBluetoothOBEXSession. The given IOBluetoothOBEXSession does not need to be connected to the remote server. OBEXFileTransferServices can be manually connected through the provided connection methods.

Parameter inOBEXSession: A valid IOBluetoothOBEXSession

Returns: A newly created OBEXFileTransferServices object on success, nil on failure

§Safety

in_obex_session might not allow None.

Source

pub unsafe fn currentPath(&self) -> Option<Retained<NSString>>

Available on crate features objc2 and objc2-foundation only.

Get the remote current directory path during an FTP session

This path is changed with each path-specific command called on OBEXFileTransferServices.

Returns: The current path being browsed over FTP

Source

pub unsafe fn isBusy(&self) -> bool

Available on crate feature objc2 only.

Get the action state of the module

OBEXFileTransferServices will be considered “busy” when an operation in taking place or has not completed. Calling abort: on this module will not automatically reset its busy state. The user will have to wait for the operation to complete or for the current operation to timeout.

Returns: Success or failure code.

Source

pub unsafe fn isConnected(&self) -> bool

Available on crate feature objc2 only.

Get the connected state of this module.

Asks the OBEXSession that was passed to it on creation if it has an open OBEX connection

Returns: Success or failure code.

Source

pub unsafe fn connectToFTPService(&self) -> OBEXError

Available on crate features objc2 and OBEX only.

Connect to a remote device for FTP operations

If the OBEXSession given to OBEXFileTransferServices on creation is not connected it can be manually connected through this method.

Returns: kOBEXSuccess, kOBEXSessionBusyError, or kOBEXSessionAlreadyConnectedError, kOBEXNoResourcesError initially. Further results returned through the fileTransferServicesConnectionComplete: delegate method if initially successful.

Source

pub unsafe fn connectToObjectPushService(&self) -> OBEXError

Available on crate features objc2 and OBEX only.

Connect to a remote device for ObjectPush operations. Most of the FTP functionality of this object will be disabled.

If the OBEXSession given to OBEXFileTransferServices on creation is not connected it can be manually connected through this method.

Returns: kOBEXSuccess, kOBEXSessionBusyError, or kOBEXSessionAlreadyConnectedError, kOBEXNoResourcesError initially. Further results returned through the fileTransferServicesConnectionComplete: delegate method if initially successful.

Source

pub unsafe fn disconnect(&self) -> OBEXError

Available on crate features objc2 and OBEX only.

Disconnect from the remote device

The user can manually disconnect the OBEXSession from the remote device if they want to. OBEXFileTransferServices will disconnect the OBEXSession at release only if it was responsible for opening the connection via a connect method.

Returns: kOBEXSuccess, kOBEXSessionNotConnectedError, or kOBEXSessionBusyError initially. Further results returned through the fileTransferServicesDisconnectionComplete: delegate method if initially successful.

Source

pub unsafe fn changeCurrentFolderToRoot(&self) -> OBEXError

Available on crate features objc2 and OBEX only.

Asynchronously change to the remote root directory

Equivalent to ‘cd ~/’

Returns: kOBEXSuccess or kOBEXSessionBusyError initially. Further results returned through the fileTransferServicesPathChangeComplete: delegate method if initially successful.

Source

pub unsafe fn changeCurrentFolderBackward(&self) -> OBEXError

Available on crate features objc2 and OBEX only.

Change to the directory above the current level if not at the root

Equivalent to ‘cd ..’ only if remote path is not already at root.

Returns: kOBEXSuccess or kOBEXSessionBusyError initially. Further results returned through the fileTransferServicesPathChangeComplete: delegate method if initially successful.

Source

pub unsafe fn changeCurrentFolderForwardToPath( &self, in_dir_name: Option<&NSString>, ) -> OBEXError

Available on crate features objc2 and OBEX and objc2-foundation only.

Change the remote path

Equivalent to ‘cd dirName’.

Parameter inDirName: The name of the remote folder to be set as current

Returns: kOBEXSuccess, kOBEXSessionBusyError, or kOBEXBadArgumentError initially. Further results returned through the fileTransferServicesPathChangeComplete: delegate method if initially successful.

§Safety

in_dir_name might not allow None.

Source

pub unsafe fn createFolder(&self, in_dir_name: Option<&NSString>) -> OBEXError

Available on crate features objc2 and OBEX and objc2-foundation only.

Create a folder on the remote target

Equivalent to ‘mkdir dirName’.

Parameter inDirName: The name of the folder to be created

Returns: kOBEXSuccess, kOBEXSessionBusyError, or kOBEXBadArgumentError initially. Further results returned through the fileTransferServicesCreateFolderComplete delegate method if initially successful.

§Safety

in_dir_name might not allow None.

Source

pub unsafe fn removeItem(&self, in_item_name: Option<&NSString>) -> OBEXError

Available on crate features objc2 and OBEX and objc2-foundation only.

Remove a remote item.

Not supported for use on Apple computer targets

Parameter inItemName: The name of the remote item to be removed

Returns: kOBEXSuccess, kOBEXSessionBusyError, or kOBEXBadArgumentError initially. Further results returned through the fileTransferServicesRemoveItemComplete: delegate method if initially successful.

§Safety

in_item_name might not allow None.

Source

pub unsafe fn retrieveFolderListing(&self) -> OBEXError

Available on crate features objc2 and OBEX only.

Get a remote directory listing

Equivalent to ‘ls’.

Returns: kOBEXSuccess or kOBEXSessionBusyError initially. Further results returned through the fileTransferServicesRetrieveFolderListingComplete: delegate method if initially successful.

Source

pub unsafe fn sendFile( &self, in_local_path_and_name: Option<&NSString>, ) -> OBEXError

Available on crate features objc2 and OBEX and objc2-foundation only.

Put a local file to the remote target

Equivalent to ‘mv inLocalFilePath remoteCurrentPath’.

Parameter inLocalPathAndName: The name and path of the file to be sent an instance of OBEXFilePut.

Returns: kOBEXSuccess, kOBEXSessionBusyError, or kOBEXBadArgumentError initially. Further results returned through the fileTransferServicesSendComplete: and fileTransferServicesSendProgress: delegate methods if initially successful.

§Safety

in_local_path_and_name might not allow None.

Source

pub unsafe fn copyRemoteFile_toLocalPath( &self, in_remote_file_name: Option<&NSString>, in_local_path_and_name: Option<&NSString>, ) -> OBEXError

Available on crate features objc2 and OBEX and objc2-foundation only.

Copy a remote file to a local path

Equivalent to ‘cp remotePath/remoteFileName localPathAndName’.

Parameter inRemoteFileName: The name of the remote file to get

Parameter inLocalPathAndName: The path and name of where the received file will go

Returns: kOBEXSuccess, kOBEXSessionBusyError, or kOBEXBadArgumentError. initially. Further results returned through the fileTransferServicesGetComplete: and fileTransferServicesGetProgress: delegate methods if initially successful.

§Safety
  • in_remote_file_name might not allow None.
  • in_local_path_and_name might not allow None.
Source

pub unsafe fn sendData_type_name( &self, in_data: Option<&NSData>, in_type: Option<&NSString>, in_name: Option<&NSString>, ) -> OBEXError

Available on crate features objc2 and OBEX and objc2-foundation only.

Send data to a remote target

Use this method when you have data to send but no file to read from.

Parameter inData: The data to be sent

Parameter inType: The type of the data to be sent that will be used in the OBEX type header, usually a mime-type. For example, use “text/x-vCard” when sending vCards. This argument is optional.

Parameter inName: The name of the file that the data can be referenced as.

Returns: kOBEXSuccess, kOBEXSessionBusyError, or kOBEXBadArgumentError initially. Further results returned through the fileTransferServicesSendComplete: and fileTransferServicesSendProgress: delegate methods if initially successful.

§Safety
  • in_data might not allow None.
  • in_type might not allow None.
  • in_name might not allow None.
Source

pub unsafe fn getDefaultVCard( &self, in_local_path_and_name: Option<&NSString>, ) -> OBEXError

Available on crate features objc2 and OBEX and objc2-foundation only.

Get the remote default VCard, if it is supported

Some devices such as cellphones and computers support default VCards

Parameter inLocalPathAndName: The path and name of where the received file will go

Returns: kOBEXSuccess, kOBEXSessionBusyError, or kOBEXBadArgumentError initially. Further results returned through the fileTransferServicesGetComplete: and fileTransferServicesGetProgress: delegate methods if initially successful.

§Safety

in_local_path_and_name might not allow None.

Source

pub unsafe fn abort(&self) -> OBEXError

Available on crate features objc2 and OBEX only.

Abort the current operation

Attempts send an abort request to the remote device. Returns the OBEXFileTransferServices object to an idle state though the state of the remote device is not guaranteed.

Returns: kOBEXSuccess, or kOBEXGeneralError if no command is in progress. ABORT commands can only be sent on our turn, meaning we may have to timeout if the target side never responds to the command in progress. In that case this object will call back with a status of kOBEXTimeoutError and an error. Further results returned through the fileTransferServicesAbortComplete: delegate method if initially successful.

Source§

impl OBEXFileTransferServices

Methods declared on superclass NSObject.

Source

pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>

Available on crate feature objc2 only.
Source

pub unsafe fn new() -> Retained<Self>

Available on crate feature objc2 only.

Methods from Deref<Target = NSObject>§

Source

pub fn doesNotRecognizeSelector(&self, sel: Sel) -> !

Handle messages the object doesn’t recognize.

See Apple’s documentation for details.

Methods from Deref<Target = AnyObject>§

Source

pub fn class(&self) -> &'static AnyClass

Dynamically find the class of this object.

§Panics

May panic if the object is invalid (which may be the case for objects returned from unavailable init/new methods).

§Example

Check that an instance of NSObject has the precise class NSObject.

use objc2::ClassType;
use objc2::runtime::NSObject;

let obj = NSObject::new();
assert_eq!(obj.class(), NSObject::class());
Source

pub unsafe fn get_ivar<T>(&self, name: &str) -> &T
where T: Encode,

👎Deprecated: this is difficult to use correctly, use Ivar::load instead.

Use Ivar::load instead.

§Safety

The object must have an instance variable with the given name, and it must be of type T.

See Ivar::load_ptr for details surrounding this.

Source

pub fn downcast_ref<T>(&self) -> Option<&T>
where T: DowncastTarget,

Attempt to downcast the object to a class of type T.

This is the reference-variant. Use Retained::downcast if you want to convert a retained object to another type.

§Mutable classes

Some classes have immutable and mutable variants, such as NSString and NSMutableString.

When some Objective-C API signature says it gives you an immutable class, it generally expects you to not mutate that, even though it may technically be mutable “under the hood”.

So using this method to convert a NSString to a NSMutableString, while not unsound, is generally frowned upon unless you created the string yourself, or the API explicitly documents the string to be mutable.

See Apple’s documentation on mutability and on isKindOfClass: for more details.

§Generic classes

Objective-C generics are called “lightweight generics”, and that’s because they aren’t exposed in the runtime. This makes it impossible to safely downcast to generic collections, so this is disallowed by this method.

You can, however, safely downcast to generic collections where all the type-parameters are AnyObject.

§Panics

This works internally by calling isKindOfClass:. That means that the object must have the instance method of that name, and an exception will be thrown (if CoreFoundation is linked) or the process will abort if that is not the case. In the vast majority of cases, you don’t need to worry about this, since both root objects NSObject and NSProxy implement this method.

§Examples

Cast an NSString back and forth from NSObject.

use objc2::rc::Retained;
use objc2_foundation::{NSObject, NSString};

let obj: Retained<NSObject> = NSString::new().into_super();
let string = obj.downcast_ref::<NSString>().unwrap();
// Or with `downcast`, if we do not need the object afterwards
let string = obj.downcast::<NSString>().unwrap();

Try (and fail) to cast an NSObject to an NSString.

use objc2_foundation::{NSObject, NSString};

let obj = NSObject::new();
assert!(obj.downcast_ref::<NSString>().is_none());

Try to cast to an array of strings.

use objc2_foundation::{NSArray, NSObject, NSString};

let arr = NSArray::from_retained_slice(&[NSObject::new()]);
// This is invalid and doesn't type check.
let arr = arr.downcast_ref::<NSArray<NSString>>();

This fails to compile, since it would require enumerating over the array to ensure that each element is of the desired type, which is a performance pitfall.

Downcast when processing each element instead.

use objc2_foundation::{NSArray, NSObject, NSString};

let arr = NSArray::from_retained_slice(&[NSObject::new()]);

for elem in arr {
    if let Some(data) = elem.downcast_ref::<NSString>() {
        // handle `data`
    }
}

Trait Implementations§

Source§

impl AsRef<AnyObject> for OBEXFileTransferServices

Available on crate feature objc2 only.
Source§

fn as_ref(&self) -> &AnyObject

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl AsRef<NSObject> for OBEXFileTransferServices

Available on crate feature objc2 only.
Source§

fn as_ref(&self) -> &NSObject

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl AsRef<OBEXFileTransferServices> for OBEXFileTransferServices

Available on crate feature objc2 only.
Source§

fn as_ref(&self) -> &Self

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl Borrow<AnyObject> for OBEXFileTransferServices

Available on crate feature objc2 only.
Source§

fn borrow(&self) -> &AnyObject

Immutably borrows from an owned value. Read more
Source§

impl Borrow<NSObject> for OBEXFileTransferServices

Available on crate feature objc2 only.
Source§

fn borrow(&self) -> &NSObject

Immutably borrows from an owned value. Read more
Source§

impl ClassType for OBEXFileTransferServices

Available on crate feature objc2 only.
Source§

const NAME: &'static str = "OBEXFileTransferServices"

The name of the Objective-C class that this type represents. Read more
Source§

type Super = NSObject

The superclass of this class. Read more
Source§

type ThreadKind = <<OBEXFileTransferServices as ClassType>::Super as ClassType>::ThreadKind

Whether the type can be used from any thread, or from only the main thread. Read more
Source§

fn class() -> &'static AnyClass

Get a reference to the Objective-C class that this type represents. Read more
Source§

fn as_super(&self) -> &Self::Super

Get an immutable reference to the superclass.
Source§

impl Debug for OBEXFileTransferServices

Available on crate feature objc2 only.
Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Deref for OBEXFileTransferServices

Available on crate feature objc2 only.
Source§

type Target = NSObject

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl Hash for OBEXFileTransferServices

Available on crate feature objc2 only.
Source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl Message for OBEXFileTransferServices

Available on crate feature objc2 only.
Source§

fn retain(&self) -> Retained<Self>
where Self: Sized,

Increment the reference count of the receiver. Read more
Source§

impl NSObjectProtocol for OBEXFileTransferServices

Available on crate feature objc2 only.
Source§

fn isEqual(&self, other: Option<&AnyObject>) -> bool
where Self: Sized + Message,

Check whether the object is equal to an arbitrary other object. Read more
Source§

fn hash(&self) -> usize
where Self: Sized + Message,

An integer that can be used as a table address in a hash table structure. Read more
Source§

fn isKindOfClass(&self, cls: &AnyClass) -> bool
where Self: Sized + Message,

Check if the object is an instance of the class, or one of its subclasses. Read more
Source§

fn is_kind_of<T>(&self) -> bool
where T: ClassType, Self: Sized + Message,

👎Deprecated: use isKindOfClass directly, or cast your objects with AnyObject::downcast_ref
Check if the object is an instance of the class type, or one of its subclasses. Read more
Source§

fn isMemberOfClass(&self, cls: &AnyClass) -> bool
where Self: Sized + Message,

Check if the object is an instance of a specific class, without checking subclasses. Read more
Source§

fn respondsToSelector(&self, aSelector: Sel) -> bool
where Self: Sized + Message,

Check whether the object implements or inherits a method with the given selector. Read more
Source§

fn conformsToProtocol(&self, aProtocol: &AnyProtocol) -> bool
where Self: Sized + Message,

Check whether the object conforms to a given protocol. Read more
Source§

fn description(&self) -> Retained<NSObject>
where Self: Sized + Message,

A textual representation of the object. Read more
Source§

fn debugDescription(&self) -> Retained<NSObject>
where Self: Sized + Message,

A textual representation of the object to use when debugging. Read more
Source§

fn isProxy(&self) -> bool
where Self: Sized + Message,

Check whether the receiver is a subclass of the NSProxy root class instead of the usual NSObject. Read more
Source§

fn retainCount(&self) -> usize
where Self: Sized + Message,

The reference count of the object. Read more
Source§

impl PartialEq for OBEXFileTransferServices

Available on crate feature objc2 only.
Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl RefEncode for OBEXFileTransferServices

Available on crate feature objc2 only.
Source§

const ENCODING_REF: Encoding = <NSObject as ::objc2::RefEncode>::ENCODING_REF

The Objective-C type-encoding for a reference of this type. Read more
Source§

impl DowncastTarget for OBEXFileTransferServices

Available on crate feature objc2 only.
Source§

impl Eq for OBEXFileTransferServices

Available on crate feature objc2 only.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<'a, T> AnyThread for T
where T: ClassType<ThreadKind = dyn AnyThread + 'a> + ?Sized,

Source§

fn alloc() -> Allocated<Self>
where Self: Sized + ClassType,

Allocate a new instance of the class. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> AutoreleaseSafe for T
where T: ?Sized,