IOBluetoothOBEXSession

Struct IOBluetoothOBEXSession 

Source
pub struct IOBluetoothOBEXSession { /* private fields */ }
Available on crate features IOBluetoothOBEXSession and OBEXSession only.
Expand description

Implementations§

Source§

impl IOBluetoothOBEXSession

Source

pub unsafe fn withSDPServiceRecord( in_sdp_service_record: Option<&IOBluetoothSDPServiceRecord>, ) -> Option<Retained<Self>>

Available on crate features objc2 and IOBluetoothSDPServiceRecord only.

Creates a Bluetooth-based OBEX Session using an SDP service record, typically obtained from a device/service browser window controller.

Parameter inSDPServiceRecord: A valid SDP service record describing the service (and RFCOMM channel) you want to connect to with Bluetooth/OBEX.

Returns: An OBEX session representing the device/rfcomm channel found in the service record. nil if we failed.

Note that this does NOT mean the transport connection was open. It will be opened when OBEXConnect is invoked on the session object.

IMPORTANT NOTE* In Bluetooth framework version 1.0.0, the session returned will NOT be autoreleased as it should be according to objc convention. This has been changed starting in Bluetooth version 1.0.1 and later, so it WILL be autoreleased upon return, so you will need to retain it if you want to reference it later.

§Safety

in_sdp_service_record might not allow None.

Source

pub unsafe fn withDevice_channelID( in_device: Option<&IOBluetoothDevice>, in_rfcomm_channel_id: BluetoothRFCOMMChannelID, ) -> Option<Retained<Self>>

Available on crate features objc2 and Bluetooth and IOBluetoothDevice and IOBluetoothObject only.

Creates a Bluetooth-based OBEX Session using a Bluetooth device and a Bluetooth RFCOMM channel ID.

Parameter inDevice: A valid Bluetooth device describing which device you want to connect to with Bluetooth/OBEX.

Parameter inRFCOMMChannelID: An RFCOMM Channel ID numbe that is available on the remote device. This channel will be used when the transport connection is attempted.

Returns: An OBEX session representing the device/rfcomm channel found in the service record. nil if we failed.

Note that this does NOT mean the transport connection was open. It will be opened when OBEXConnect is invoked on the session object.

IMPORTANT NOTE* In Bluetooth framework version 1.0.0, the session returned will NOT be autoreleased as it should be according to objc convention. This has been changed starting in Bluetooth version 1.0.1 and later, so it WILL be autoreleased upon return, so you will need to retain it if you want to reference it later.

§Safety

in_device might not allow None.

Source

pub unsafe fn withIncomingRFCOMMChannel_eventSelector_selectorTarget_refCon( in_channel: Option<&IOBluetoothRFCOMMChannel>, in_event_selector: Option<Sel>, in_event_selector_target: Option<&AnyObject>, in_user_ref_con: *mut c_void, ) -> Option<Retained<Self>>

Available on crate features objc2 and IOBluetoothObject and IOBluetoothRFCOMMChannel only.

Creates a Bluetooth-based OBEX Session using an incoming RFCOMM channel.

Parameter inChannel: The channel to use to create a connection to a device.

Parameter inEventSelector: The selector that gets called when an event occurs on the OBEX Session.

Parameter inEventSelectorTarget: The object that is used to call the above selector.

Parameter inUserRefCon: The reference constant. Pass whatever you wish - it will be returned to you in the selector.

Returns:

IMPORTANT NOTE* In Bluetooth framework version 1.0.0, the session returned will NOT be autoreleased as it should be according to objc convention. This has been changed starting in Bluetooth version 1.0.1 and later, so it WILL be autoreleased upon return, so you will need to retain it if you want to reference it later.

§Safety
  • in_channel might not allow None.
  • in_event_selector must be a valid selector.
  • in_event_selector_target should be of the correct type.
  • in_event_selector_target might not allow None.
  • in_user_ref_con must be a valid pointer.
Source

pub unsafe fn initWithSDPServiceRecord( this: Allocated<Self>, in_sdp_service_record: Option<&IOBluetoothSDPServiceRecord>, ) -> Option<Retained<Self>>

Available on crate features objc2 and IOBluetoothSDPServiceRecord only.

Initializes a Bluetooth-based OBEX Session using an SDP service record.

Parameter inSDPServiceRecord: Returns:

§Safety

in_sdp_service_record might not allow None.

Source

pub unsafe fn initWithDevice_channelID( this: Allocated<Self>, in_device: Option<&IOBluetoothDevice>, in_channel_id: BluetoothRFCOMMChannelID, ) -> Option<Retained<Self>>

Available on crate features objc2 and Bluetooth and IOBluetoothDevice and IOBluetoothObject only.

Initializes a Bluetooth-based OBEX Session using a Bluetooth device.

Parameter inDevice: The bluetooth device on which to open the OBEXSession.

Parameter inChannelID: The RFCOMM channel ID to use when opening the connection.

Returns:

§Safety

in_device might not allow None.

Source

pub unsafe fn initWithIncomingRFCOMMChannel_eventSelector_selectorTarget_refCon( this: Allocated<Self>, in_channel: Option<&IOBluetoothRFCOMMChannel>, in_event_selector: Option<Sel>, in_event_selector_target: Option<&AnyObject>, in_user_ref_con: *mut c_void, ) -> Option<Retained<Self>>

Available on crate features objc2 and IOBluetoothObject and IOBluetoothRFCOMMChannel only.

Initializes a Bluetooth-based OBEX Session using an incoming RFCOMM channel.

Parameter inChannelID: RFCOMM channel ID of the desired channel to be used.

Parameter inEventSelector: The selector to be called when an event is received.

Parameter inEventSelectorTarget: The target object that get the selector message.

Parameter refCon: caller reference constant, pass whatever you want, it will be returned to you in the selector.

Returns:

§Safety
  • in_channel might not allow None.
  • in_event_selector must be a valid selector.
  • in_event_selector_target should be of the correct type.
  • in_event_selector_target might not allow None.
  • in_user_ref_con must be a valid pointer.
Source

pub unsafe fn getRFCOMMChannel( &self, ) -> Option<Retained<IOBluetoothRFCOMMChannel>>

Available on crate features objc2 and IOBluetoothObject and IOBluetoothRFCOMMChannel only.

Get the Bluetooth RFCOMM channel being used by the session object.

Returns: A IOBluetoothRFCOMMChannel object.

This could potentially be nil even though you have a valid OBEX session, because the RFCOMM channel is only valid when the session is connected.

Source

pub unsafe fn getDevice(&self) -> Option<Retained<IOBluetoothDevice>>

Available on crate features objc2 and IOBluetoothDevice and IOBluetoothObject only.

Get the Bluetooth Device being used by the session object.

Returns: An IOBluetoothDevice object.

Source

pub unsafe fn sendBufferTroughChannel(&self) -> c_int

Available on crate feature objc2 only.

Sends the next block of data trough the rfcomm channel.

Returns: Since a send in the rfcomm channel is broken in multiple write calls (this actually is true only if the size is grater than the rfcomm MTU). Each write call is performed by sendBufferTroughChannel. This should never need to be overwritten.

Source

pub unsafe fn restartTransmission(&self)

Available on crate feature objc2 only.

If the transmission was stopeed due to the lack of buffers this call restarts it.

Returns: If the transmission was stopeed due to the lack of buffers this call restarts it.

Source

pub unsafe fn isSessionTargetAMac(&self) -> bool

Available on crate feature objc2 only.

Tells whether the target device is a Mac by checking its service record.

Returns: TRUE only if device service record has Mac entry, FALSE for all else.

Tells whether the target device is a Mac by checking its service record.

Source

pub unsafe fn openTransportConnection_selectorTarget_refCon( &self, in_selector: Option<Sel>, in_target: Option<&AnyObject>, in_user_ref_con: *mut c_void, ) -> OBEXError

Available on crate features objc2 and OBEX only.

An OBEXSession override. When this is called by the session baseclass, we will attempt to open the transport connection. In our case, this would be an RFCOMM channel to another Bluetooth device.

Returns: Success or failure code.

Your selector should have the following signature:

-(void)transportConnectionSelector:(id)refcon status:(OBEXError)status;

Thus you could use it with openTransportConnection like this:

OBEXError error = [anOBEXSession openTransportConnection: sel!( transportConnectionSelector:status: ) selectorTarget:self refCon:anOBEXSession]; // or whatever you want to pass as a refCon…

Be sure to check the status code! Assume the connection was not opened unless status is kOBEXSuccess.

§Safety
  • in_selector must be a valid selector.
  • in_target should be of the correct type.
  • in_target might not allow None.
  • in_user_ref_con must be a valid pointer.
Source

pub unsafe fn hasOpenTransportConnection(&self) -> u8

Available on crate feature objc2 only.

An OBEXSession override. When this is called by the session baseclass, we will return whether or not we have a transport connection established to another OBEX server/client. In our case we will tell whether or not the RFCOMM channel to a remote device is still open.

Returns: True or false, whether there is already an open transport connection for this OBEX session.

Source

pub unsafe fn closeTransportConnection(&self) -> OBEXError

Available on crate features objc2 and OBEX only.

An OBEXSession override. When this is called by the session baseclass, we will close the transport connection if it is opened. In our case, it will be the RFCOMM channel that needs closing.

Returns: Success or failure code, describing whether the call succeeded in closing the transport connection successfully.

Source

pub unsafe fn sendDataToTransport_dataLength( &self, in_data_to_send: *mut c_void, in_data_length: usize, ) -> OBEXError

Available on crate features objc2 and OBEX only.

An OBEXSession override. When this is called by the session baseclass, we will send the data we are given over our transport connection. If none is open, we could try to open it, or just return an error. In our case, it will be sent over the RFCOMM channel.

Returns: Success or failure code, describing whether the call succeeded in writing the data to the transport.

§Safety

in_data_to_send must be a valid pointer.

Source

pub unsafe fn setOpenTransportConnectionAsyncSelector_target_refCon( &self, in_selector: Option<Sel>, in_selector_target: Option<&AnyObject>, in_user_ref_con: *mut c_void, )

Available on crate feature objc2 only.

Allows you to set the selector to be used when a transport connection is opened, or fails to open.

Parameter inEventSelector: Selector to call on the target.

Parameter inEventSelectorTarget: Target to be called with the selector.

Parameter inUserRefCon: User’s refCon that will get passed to them when their selector is invoked.

You do not need to call this on the session typically, unless you have subclassed the OBEXSession to implement a new transport and that transport supports async opening of connections. If it does not support async open, then using this is pointless.

§Safety
  • in_selector must be a valid selector.
  • in_selector_target should be of the correct type.
  • in_selector_target might not allow None.
  • in_user_ref_con must be a valid pointer.
Source

pub unsafe fn setOBEXSessionOpenConnectionCallback_refCon( &self, in_callback: IOBluetoothOBEXSessionOpenConnectionCallback, in_user_ref_con: *mut c_void, )

Available on crate features objc2 and OBEX and OBEXBluetooth only.

For C API support. Allows you to set the callback to be invoked when the OBEX connection is actually opened.

Parameter inCallback: function to call on the target.

Parameter inUserRefCon: user’s reference constant, will be returned on the callback.

§Safety
  • in_callback must be implemented correctly.
  • in_user_ref_con must be a valid pointer.
Source§

impl IOBluetoothOBEXSession

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 = OBEXSession>§

Source

pub unsafe fn OBEXConnect_maxPacketLength_optionalHeaders_optionalHeadersLength_eventSelector_selectorTarget_refCon( &self, in_flags: OBEXFlags, in_max_packet_length: OBEXMaxPacketLength, in_optional_headers: *mut c_void, in_optional_headers_length: usize, in_selector: Option<Sel>, in_target: Option<&AnyObject>, in_user_ref_con: *mut c_void, ) -> OBEXError

Available on crate features objc2 and OBEX only.

Initiate an OBEX connection to a device. Causes underlying transport (Bluetooth, et al) to attempt to connect to a remote device. After success, an OBEX connect packet is sent to establish the OBEX Connection.

Parameter inFlags: OBEX connect flags. See OBEX.h for possibilities.

Parameter inMaxPacketLength: Maximum packet size you want to support. May be negotiated down, depending on target device.

Parameter inOptionalHeaders: Can be NULL. Ptr to some data you want to send as your optional headers. Use the provided header contruction kit in OBEX.h and OBEXHeadersToBytes(void) for convenience.

Parameter inOptionalHeadersLength: Length of data in ptr passed in above.

Parameter inSelector: A VALID selector to be called when something interesting happens due to this call. Selector in your target object MUST have the following signature, or it will not be called properly (look for error messages in Console.app):

  • (void)OBEXConnectHandler:(const OBEXSessionEvent*)inSessionEvent;

Parameter inTarget: A VALID target object for the selector.

Parameter inUserRefCon: Whatever you want to pass here. It will be passed back to you in the refCon portion of the OBEXSessionEvent struct. nil is, of course, OK here.

Returns: An error code value on failure (see OBEX.h and IOReturn.h for possible return values). 0 (kOBEXSuccess) if successful.

A NULL selector or target will result in an error. After return, the data passed in will have been sent over the transport. You will receive a response to your command on your selector. If you have already established an OBEX connection and you call this again you will get an ‘kOBEXSessionAlreadyConnectedError’ as a result.

§Safety
  • in_optional_headers must be a valid pointer.
  • in_selector must be a valid selector.
  • in_target should be of the correct type.
  • in_target might not allow None.
  • in_user_ref_con must be a valid pointer.
Source

pub unsafe fn OBEXDisconnect_optionalHeadersLength_eventSelector_selectorTarget_refCon( &self, in_optional_headers: *mut c_void, in_optional_headers_length: usize, in_selector: Option<Sel>, in_target: Option<&AnyObject>, in_user_ref_con: *mut c_void, ) -> OBEXError

Available on crate features objc2 and OBEX only.

Send an OBEX Disconnect command to the session’s target. THIS DOES NOT necessarily close the underlying transport connection. Deleting the session will ensure that closure.

Parameter inOptionalHeaders: Can be NULL. Ptr to some data you want to send as your optional headers. Use the provided header contruction kit in OBEX.h and OBEXHeadersToBytes(void) for convenience.

Parameter inOptionalHeadersLength: Length of data in ptr passed in above.

Parameter inSelector: A VALID selector to be called when something interesting happens due to this call. Selector in your target object MUST have the following signature, or it will not be called properly (look for error messages in Console.app):

  • (void)OBEXDisconnectHandler:(const OBEXSessionEvent*)inSessionEvent;

Parameter inTarget: A VALID target object for the selector.

Parameter inUserRefCon: Whatever you want to pass here. It will be passed back to you in the refCon portion of the OBEXSessionEvent struct. nil is, of course, OK here.

Returns: An error code value on failure (see OBEX.h and IOReturn.h for possible return values). 0 (kOBEXSuccess) if successful.

A NULL selector or target will result in an error. After return, the data passed in will have been sent over the transport. You will receive a response to your command on your selector. Be careful not to exceed the max packet length in your optional headers, or your command will be rejected. It is recommended that you call getMaxPacketLength on your session before issuing this command so you know how much data the session’s target will accept in a single transaction.

§Safety
  • in_optional_headers must be a valid pointer.
  • in_selector must be a valid selector.
  • in_target should be of the correct type.
  • in_target might not allow None.
  • in_user_ref_con must be a valid pointer.
Source

pub unsafe fn OBEXPut_headersData_headersDataLength_bodyData_bodyDataLength_eventSelector_selectorTarget_refCon( &self, is_final_chunk: u8, in_headers_data: *mut c_void, in_headers_data_length: usize, in_body_data: *mut c_void, in_body_data_length: usize, in_selector: Option<Sel>, in_target: Option<&AnyObject>, in_user_ref_con: *mut c_void, ) -> OBEXError

Available on crate features objc2 and OBEX only.

Send an OBEX Put command to the session’s target.

Parameter isFinalChunk: Specify if this request is complete in one shot - that all the headers you are supplying will fit in the negotiated max packet length.

Parameter inHeadersData: Can be NULL. Ptr to some data you want to send as your headers, such as Length, Name, etc. Use the provided header contruction kit in OBEX.h and OBEXHeadersToBytes(void) for convenience.

Parameter inHeadersDataLength: Length of data in ptr passed in above.

Parameter inBodyData: Can be NULL. Ptr to some data you want to send as your BODY header. Do not construct a real OBEX header here, it will be done for you - just pass a pointer to your data, we’ll do the rest. HOWEVER, be aware that some overhead (3 bytes) will be added to the data in constructing the BODY header for you.

Parameter inBodyDataLength: Length of data in ptr passed in above.

Parameter inSelector: A VALID selector to be called when something interesting happens due to this call. Selector in your target object MUST have the following signature, or it will not be called properly (look for error messages in Console.app):

  • (void)OBEXPutHandler:(const OBEXSessionEvent*)inSessionEvent;

Parameter inTarget: A VALID target object for the selector.

Parameter inUserRefCon: Whatever you want to pass here. It will be passed back to you in the refCon portion of the OBEXSessionEvent struct. nil is, of course, OK here.

Returns: An error code value on failure (see OBEX.h and IOReturn.h for possible return values). 0 (kOBEXSuccess) if successful.

A NULL selector or target will result in an error. After return, the data passed in will have been sent over the transport. You will receive a response to your command on your selector.

§Safety
  • in_headers_data must be a valid pointer.
  • in_body_data must be a valid pointer.
  • in_selector must be a valid selector.
  • in_target should be of the correct type.
  • in_target might not allow None.
  • in_user_ref_con must be a valid pointer.
Source

pub unsafe fn OBEXGet_headers_headersLength_eventSelector_selectorTarget_refCon( &self, is_final_chunk: u8, in_headers: *mut c_void, in_headers_length: usize, in_selector: Option<Sel>, in_target: Option<&AnyObject>, in_user_ref_con: *mut c_void, ) -> OBEXError

Available on crate features objc2 and OBEX only.

Send an OBEX Get command to the session’s target.

Parameter isFinalChunk: Specify if this request is complete in one shot - that all the headers you are supplying will fit in the negotiated max packet length.

Parameter inHeadersData: Can be NULL. Ptr to some data you want to send as your headers, such as Length, Name, etc. Use the provided header contruction kit in OBEX.h and OBEXHeadersToBytes(void) for your convenience.

Parameter inHeadersDataLength: Length of data in ptr passed in above.

Parameter inSelector: A VALID selector to be called when something interesting happens due to this call. Selector in your target object MUST have the following signature, or it will not be called properly (look for error messages in Console.app):

  • (void)OBEXGetHandler:(const OBEXSessionEvent*)inSessionEvent;

Parameter inTarget: A VALID target object for the selector.

Parameter inUserRefCon: Whatever you want to pass here. It will be passed back to you in the refCon portion of the OBEXSessionEvent struct. nil is, of course, OK here.

Returns: An error code value on failure (see OBEX.h and IOReturn.h for possible return values). 0 (kOBEXSuccess) if successful.

A NULL selector or target will result in an error. After return, the data passed in will have been sent over the transport. You will receive a response to your command on your selector.

§Safety
  • in_headers must be a valid pointer.
  • in_selector must be a valid selector.
  • in_target should be of the correct type.
  • in_target might not allow None.
  • in_user_ref_con must be a valid pointer.
Source

pub unsafe fn OBEXAbort_optionalHeadersLength_eventSelector_selectorTarget_refCon( &self, in_optional_headers: *mut c_void, in_optional_headers_length: usize, in_selector: Option<Sel>, in_target: Option<&AnyObject>, in_user_ref_con: *mut c_void, ) -> OBEXError

Available on crate features objc2 and OBEX only.

Send an OBEX Abort command to the session’s target.

Parameter inOptionalHeaders: Can be NULL. Ptr to some data you want to send as your optional headers. Use the provided header contruction kit in OBEX.h and OBEXHeadersToBytes(void) for convenience.

Parameter inOptionalHeadersLength: Length of data in ptr passed in above.

Parameter inSelector: A VALID selector to be called when something interesting happens due to this call. Selector in your target object MUST have the following signature, or it will not be called properly (look for error messages in Console.app):

  • (void)OBEXAbortHandler:(const OBEXSessionEvent*)inSessionEvent;

Parameter inTarget: A VALID target object for the selector.

Parameter inUserRefCon: Whatever you want to pass here. It will be passed back to you in the refCon portion of the OBEXSessionEvent struct. nil is, of course, OK here.

Returns: An error code value on failure (see OBEX.h and IOReturn.h for possible return values). 0 (kOBEXSuccess) if successful.

A NULL selector or target will result in an error. After return, the data passed in will have been sent over the transport. You will receive a response to your command on your selector.

§Safety
  • in_optional_headers must be a valid pointer.
  • in_selector must be a valid selector.
  • in_target should be of the correct type.
  • in_target might not allow None.
  • in_user_ref_con must be a valid pointer.
Source

pub unsafe fn OBEXSetPath_constants_optionalHeaders_optionalHeadersLength_eventSelector_selectorTarget_refCon( &self, in_flags: OBEXFlags, in_constants: OBEXConstants, in_optional_headers: *mut c_void, in_optional_headers_length: usize, in_selector: Option<Sel>, in_target: Option<&AnyObject>, in_user_ref_con: *mut c_void, ) -> OBEXError

Available on crate features objc2 and OBEX only.

Send an OBEX SetPath command to the session’s target.

Parameter inFlags: OBEX setpath flags. See OBEX.h for possibilities.

Parameter inConstants: OBEX setpath constants. See OBEX.h for possibilities.

Parameter inOptionalHeaders: Can be NULL. Ptr to some data you want to send as your optional headers. Use the provided header contruction kit in OBEX.h and OBEXHeadersToBytes(void) for convenience.

Parameter inOptionalHeadersLength: Length of data in ptr passed in above.

Parameter inSelector: A VALID selector to be called when something interesting happens due to this call. Selector in your target object MUST have the following signature, or it will not be called properly (look for error messages in Console.app):

  • (void)OBEXSetPathHandler:(const OBEXSessionEvent*)inSessionEvent;

Parameter inTarget: A VALID target object for the selector.

Parameter inUserRefCon: Whatever you want to pass here. It will be passed back to you in the refCon portion of the OBEXSessionEvent struct. nil is, of course, OK here.

Returns: An error code value on failure (see OBEX.h and IOReturn.h for possible return values). 0 (kOBEXSuccess) if successful.

A NULL selector or target will result in an error. After return, the data passed in will have been sent over the transport. You will receive a response to your command on your selector.

§Safety
  • in_optional_headers must be a valid pointer.
  • in_selector must be a valid selector.
  • in_target should be of the correct type.
  • in_target might not allow None.
  • in_user_ref_con must be a valid pointer.
Source

pub unsafe fn OBEXConnectResponse_flags_maxPacketLength_optionalHeaders_optionalHeadersLength_eventSelector_selectorTarget_refCon( &self, in_response_op_code: OBEXOpCode, in_flags: OBEXFlags, in_max_packet_length: OBEXMaxPacketLength, in_optional_headers: *mut c_void, in_optional_headers_length: usize, in_selector: Option<Sel>, in_target: Option<&AnyObject>, in_user_ref_con: *mut c_void, ) -> OBEXError

Available on crate features objc2 and OBEX only.

Send a connect response to a session’s target.

Parameter inFlags: OBEX connect flags. See OBEX.h for possibilities.

Parameter inConstants: OBEX connect constants. See OBEX.h for possibilities.

Parameter inMaxPacketLength: Maximum packet size you want your OBEX session to communicate with. This MUST be lower than the max packet size the client has reported to you in the connect command you received from it.

Parameter inOptionalHeaders: Can be NULL. Ptr to some data you want to send as your optional headers. Use the provided header contruction kit in OBEX.h and OBEXHeadersToBytes(void) for convenience.

Parameter inOptionalHeadersLength: Length of data in ptr passed in above.

Parameter inSelector: A VALID selector to be called when something interesting happens due to this call. Selector in your target object MUST have the following signature, or it will not be called properly (look for error messages in Console.app):

  • (void)OBEXConnectResponseHandler:(const OBEXSessionEvent*)inSessionEvent;

Parameter inTarget: A VALID target object for the selector.

Parameter inUserRefCon: Whatever you want to pass here. It will be passed back to you in the refCon portion of the OBEXSessionEvent struct. nil is, of course, OK here.

Returns: An error code value on failure (see OBEX.h and IOReturn.h for possible return values). 0 (kOBEXSuccess) if successful.

A NULL selector or target will result in an error. After return, the data passed in will have been sent over the underlying OBEX transport. You will receive any responses to your command response on your selector.

§Safety
  • in_optional_headers must be a valid pointer.
  • in_selector must be a valid selector.
  • in_target should be of the correct type.
  • in_target might not allow None.
  • in_user_ref_con must be a valid pointer.
Source

pub unsafe fn OBEXDisconnectResponse_optionalHeaders_optionalHeadersLength_eventSelector_selectorTarget_refCon( &self, in_response_op_code: OBEXOpCode, in_optional_headers: *mut c_void, in_optional_headers_length: usize, in_selector: Option<Sel>, in_target: Option<&AnyObject>, in_user_ref_con: *mut c_void, ) -> OBEXError

Available on crate features objc2 and OBEX only.

Send a disconnect response to a session’s target.

Parameter inMaxPacketLength: Maximum packet size you want your OBEX session to communicate with. This MUST be lower than the max packet size the client has reported to you in the connect command you received from it.

Parameter inOptionalHeaders: Can be NULL. Ptr to some data you want to send as your optional headers. Use the provided header contruction kit in OBEX.h and OBEXHeadersToBytes(void) for convenience.

Parameter inOptionalHeadersLength: Length of data in ptr passed in above.

Parameter inSelector: A VALID selector to be called when something interesting happens due to this call. Selector in your target object MUST have the following signature, or it will not be called properly (look for error messages in Console.app):

  • (void)OBEXDisconnectResponseHandler:(const OBEXSessionEvent*)inSessionEvent;

Parameter inTarget: A VALID target object for the selector.

Parameter inUserRefCon: Whatever you want to pass here. It will be passed back to you in the refCon portion of the OBEXSessionEvent struct. nil is, of course, OK here.

Returns: An error code value on failure (see OBEX.h and IOReturn.h for possible return values). 0 (kOBEXSuccess) if successful.

A NULL selector or target will result in an error. After return, the data passed in will have been sent over the underlying OBEX transport. You will receive any responses to your command response on your selector.

§Safety
  • in_optional_headers must be a valid pointer.
  • in_selector must be a valid selector.
  • in_target should be of the correct type.
  • in_target might not allow None.
  • in_user_ref_con must be a valid pointer.
Source

pub unsafe fn OBEXPutResponse_optionalHeaders_optionalHeadersLength_eventSelector_selectorTarget_refCon( &self, in_response_op_code: OBEXOpCode, in_optional_headers: *mut c_void, in_optional_headers_length: usize, in_selector: Option<Sel>, in_target: Option<&AnyObject>, in_user_ref_con: *mut c_void, ) -> OBEXError

Available on crate features objc2 and OBEX only.

Send a put response to a session’s target.

Parameter inMaxPacketLength: Maximum packet size you want your OBEX session to communicate with. This MUST be lower than the max packet size the client has reported to you in the connect command you received from it.

Parameter inOptionalHeaders: Can be NULL. Ptr to some data you want to send as your optional headers. Use the provided header contruction kit in OBEX.h and OBEXHeadersToBytes(void) for convenience.

Parameter inOptionalHeadersLength: Length of data in ptr passed in above.

Parameter inSelector: A VALID selector to be called when something interesting happens due to this call. Selector in your target object MUST have the following signature, or it will not be called properly (look for error messages in Console.app):

  • (void)OBEXPutResponseHandler:(const OBEXSessionEvent*)inSessionEvent;

Parameter inTarget: A VALID target object for the selector.

Parameter inUserRefCon: Whatever you want to pass here. It will be passed back to you in the refCon portion of the OBEXSessionEvent struct. nil is, of course, OK here.

Returns: An error code value on failure (see OBEX.h and IOReturn.h for possible return values). 0 (kOBEXSuccess) if successful.

A NULL selector or target will result in an error. After return, the data passed in will have been sent over the underlying OBEX transport. You will receive any responses to your command response on your selector.

§Safety
  • in_optional_headers must be a valid pointer.
  • in_selector must be a valid selector.
  • in_target should be of the correct type.
  • in_target might not allow None.
  • in_user_ref_con must be a valid pointer.
Source

pub unsafe fn OBEXGetResponse_optionalHeaders_optionalHeadersLength_eventSelector_selectorTarget_refCon( &self, in_response_op_code: OBEXOpCode, in_optional_headers: *mut c_void, in_optional_headers_length: usize, in_selector: Option<Sel>, in_target: Option<&AnyObject>, in_user_ref_con: *mut c_void, ) -> OBEXError

Available on crate features objc2 and OBEX only.

Send a get response to a session’s target.

Parameter inMaxPacketLength: Maximum packet size you want your OBEX session to communicate with. This MUST be lower than the max packet size the client has reported to you in the connect command you received from it.

Parameter inOptionalHeaders: Can be NULL. Ptr to some data you want to send as your optional headers. Use the provided header contruction kit in OBEX.h and OBEXHeadersToBytes(void) for convenience.

Parameter inOptionalHeadersLength: Length of data in ptr passed in above.

Parameter inSelector: A VALID selector to be called when something interesting happens due to this call. Selector in your target object MUST have the following signature, or it will not be called properly (look for error messages in Console.app):

  • (void)OBEXGetResponseHandler:(const OBEXSessionEvent*)inSessionEvent;

Parameter inTarget: A VALID target object for the selector.

Parameter inUserRefCon: Whatever you want to pass here. It will be passed back to you in the refCon portion of the OBEXSessionEvent struct. nil is, of course, OK here.

Returns: An error code value on failure (see OBEX.h and IOReturn.h for possible return values). 0 (kOBEXSuccess) if successful.

A NULL selector or target will result in an error. After return, the data passed in will have been sent over the underlying OBEX transport. You will receive any responses to your command response on your selector.

§Safety
  • in_optional_headers must be a valid pointer.
  • in_selector must be a valid selector.
  • in_target should be of the correct type.
  • in_target might not allow None.
  • in_user_ref_con must be a valid pointer.
Source

pub unsafe fn OBEXAbortResponse_optionalHeaders_optionalHeadersLength_eventSelector_selectorTarget_refCon( &self, in_response_op_code: OBEXOpCode, in_optional_headers: *mut c_void, in_optional_headers_length: usize, in_selector: Option<Sel>, in_target: Option<&AnyObject>, in_user_ref_con: *mut c_void, ) -> OBEXError

Available on crate features objc2 and OBEX only.

Send a abort response to a session’s target.

Parameter inMaxPacketLength: Maximum packet size you want your OBEX session to communicate with. This MUST be lower than the max packet size the client has reported to you in the connect command you received from it.

Parameter inOptionalHeaders: Can be NULL. Ptr to some data you want to send as your optional headers. Use the provided header contruction kit in OBEX.h and OBEXHeadersToBytes(void) for convenience.

Parameter inOptionalHeadersLength: Length of data in ptr passed in above.

Parameter inSelector: A VALID selector to be called when something interesting happens due to this call. Selector in your target object MUST have the following signature, or it will not be called properly (look for error messages in Console.app):

  • (void)OBEXAbortResponseHandler:(const OBEXSessionEvent*)inSessionEvent;

Parameter inTarget: A VALID target object for the selector.

Parameter inUserRefCon: Whatever you want to pass here. It will be passed back to you in the refCon portion of the OBEXSessionEvent struct. nil is, of course, OK here.

Returns: An error code value on failure (see OBEX.h and IOReturn.h for possible return values). 0 (kOBEXSuccess) if successful.

A NULL selector or target will result in an error. After return, the data passed in will have been sent over the underlying OBEX transport. You will receive any responses to your command response on your selector.

§Safety
  • in_optional_headers must be a valid pointer.
  • in_selector must be a valid selector.
  • in_target should be of the correct type.
  • in_target might not allow None.
  • in_user_ref_con must be a valid pointer.
Source

pub unsafe fn OBEXSetPathResponse_optionalHeaders_optionalHeadersLength_eventSelector_selectorTarget_refCon( &self, in_response_op_code: OBEXOpCode, in_optional_headers: *mut c_void, in_optional_headers_length: usize, in_selector: Option<Sel>, in_target: Option<&AnyObject>, in_user_ref_con: *mut c_void, ) -> OBEXError

Available on crate features objc2 and OBEX only.

Send a set path response to a session’s target.

Parameter inMaxPacketLength: Maximum packet size you want your OBEX session to communicate with. This MUST be lower than the max packet size the client has reported to you in the connect command you received from it.

Parameter inOptionalHeaders: Can be NULL. Ptr to some data you want to send as your optional headers. Use the provided header contruction kit in OBEX.h and OBEXHeadersToBytes(void) for convenience.

Parameter inOptionalHeadersLength: Length of data in ptr passed in above.

Parameter inSelector: A VALID selector to be called when something interesting happens due to this call. Selector in your target object MUST have the following signature, or it will not be called properly (look for error messages in Console.app):

  • (void)OBEXSetPathResponseHandler:(const OBEXSessionEvent*)inSessionEvent;

Parameter inTarget: A VALID target object for the selector.

Parameter inUserRefCon: Whatever you want to pass here. It will be passed back to you in the refCon portion of the OBEXSessionEvent struct. nil is, of course, OK here.

Returns: An error code value on failure (see OBEX.h and IOReturn.h for possible return values). 0 (kOBEXSuccess) if successful.

A NULL selector or target will result in an error. After return, the data passed in will have been sent over the underlying OBEX transport. You will receive any responses to your command response on your selector.

§Safety
  • in_optional_headers must be a valid pointer.
  • in_selector must be a valid selector.
  • in_target should be of the correct type.
  • in_target might not allow None.
  • in_user_ref_con must be a valid pointer.
Source

pub unsafe fn getAvailableCommandPayloadLength( &self, in_op_code: OBEXOpCode, ) -> OBEXMaxPacketLength

Available on crate features objc2 and OBEX only.

Determine the maximum amount of data you can send in a particular command as an OBEX client session.

Parameter inOpCode: The opcode you are interested in sending (as a client).

Returns: The maximum amount of data a particular packet can handle, after accounting for any command overhead.

Each OBEX Command has a certain amount of overhead. Since the negotiated max packet length does not indicate what the maximum data amount you can send in a particular command’s packet, you can use this function to determine how much data to provide in optional headers or body data headers.

Source

pub unsafe fn getAvailableCommandResponsePayloadLength( &self, in_op_code: OBEXOpCode, ) -> OBEXMaxPacketLength

Available on crate features objc2 and OBEX only.

Determine the maximum amount of data you can send in a particular command response as an OBEX server session.

Parameter inOpCode: The opcode you are interested in responding to (as a server).

Returns: The maximum amount of data a particular packet can handle, after accounting for any command response overhead.

Each OBEX Command response has a certain amount of overhead. Since the negotiated max packet length does not indicate what the maximum data amount you can send in a particular response’s packet, you can use this function to determine how much data to provide in optional headers or body data headers.

Source

pub unsafe fn getMaxPacketLength(&self) -> OBEXMaxPacketLength

Available on crate features objc2 and OBEX only.

Gets current max packet length.

Returns: Max packet length.

This value could change before and after a connect command has been sent or a connect command response has been received, since the recipient could negotiate a lower max packet size.

Source

pub unsafe fn hasOpenOBEXConnection(&self) -> bool

Available on crate feature objc2 only.

Has a successful connect packet been sent and received? This API tells you so.

Returns: True or false, we are OBEX-connected to another OBEX entity.

A “transport” connection may exist (such as a Bluetooth baseband connection), but the OBEX connection may not be established over that transport. If it has been, this function returns true.

Source

pub unsafe fn setEventCallback( &self, in_event_callback: OBEXSessionEventCallback, )

Available on crate features objc2 and OBEX only.

Sets the C-API callback used when the session recieves data.

Parameter inEventCallback: Function to callback. Should be non-NULL, unless you are attempting to clear the callback, but doing that doesn’t make much sense.

This is really not intended for client sessions. Only subclasses would really be interested in using this. They should set these when their subclass object is created, because otherwise they will have no way of receiving the initial command data packet. This is a partner to setEventRefCon, described below.

§Safety

in_event_callback must be implemented correctly.

Source

pub unsafe fn setEventRefCon(&self, in_ref_con: *mut c_void)

Available on crate feature objc2 only.

Sets the C-API callback refCon used when the session recieves data.

Parameter inRefCon: User’s refCon that will get passed when their event callback is invoked.

This is really not intended for client sessions. Only subclasses would really be interested in using this. They should set these when their subclass object is created, because otherwise they will have no context in their callback.

§Safety

in_ref_con must be a valid pointer.

Source

pub unsafe fn setEventSelector_target_refCon( &self, in_event_selector: Option<Sel>, in_event_selector_target: Option<&AnyObject>, in_user_ref_con: *mut c_void, )

Available on crate feature objc2 only.

Allow you to set a selector to be called when events occur on the OBEX session.

Parameter inEventSelector: Selector to call on the target.

Parameter inEventSelectorTarget: Target to be called with the selector.

Parameter inUserRefCon: User’s refCon that will get passed when their event callback is invoked.

Really not needed to be used, since the event selector will get set when an OBEX command is sent out.

§Safety
  • in_event_selector must be a valid selector.
  • in_event_selector_target should be of the correct type.
  • in_event_selector_target might not allow None.
  • in_user_ref_con must be a valid pointer.
Source

pub unsafe fn serverHandleIncomingData(&self, event: *mut OBEXTransportEvent)

Available on crate features objc2 and OBEX only.

Tranport subclasses need to invoke this from their own data-receive handlers. For example, when data is received over a Bluetooth RFCOMM channel in the IOBluetoothOBEXSession, it in turn calls this to dispatch the data. If you do not handle this case, your server session will not work, guaranteed.

Parameter event: New event received from the transport.

Tranport subclasses must call this for OBEX server sessions to work!

§Safety

event must be a valid pointer.

Source

pub unsafe fn clientHandleIncomingData(&self, event: *mut OBEXTransportEvent)

Available on crate features objc2 and OBEX only.

Tranport subclasses need to invoke this from their own data-receive handlers. For example, when data is received over a Bluetooth RFCOMM channel in the IOBluetoothOBEXSession, it in turn calls this to dispatch the data. If you do not handle this case, your server session will not work, guaranteed.

Parameter event: New event received from the transport.

Tranport subclasses must call this for OBEX client sessions to work!

§Safety

event must be a valid pointer.

Source

pub unsafe fn sendDataToTransport_dataLength( &self, in_data_to_send: *mut c_void, in_data_length: usize, ) -> OBEXError

Available on crate features objc2 and OBEX only.

You must override this to send data over your transport. This does nothing by default, it will return a kOBEXUnsupportedError.

Parameter inDataToSend: Data to shove over the transport to a remote OBEX session.

Parameter inDataLength: Length of data passed in.

Returns: Return whether or not the transport could send the data or not. If you are successful, return kOBEXSuccess, otherwise an interesting error code.

Tranport subclasses must override this! When called you should send the data over the transport to the remote session.

§Safety

in_data_to_send must be a valid pointer.

Source

pub unsafe fn openTransportConnection_selectorTarget_refCon( &self, in_selector: Option<Sel>, in_target: Option<&AnyObject>, in_user_ref_con: *mut c_void, ) -> OBEXError

Available on crate features objc2 and OBEX only.

Opens a transport connection to a device. A Bluetooth connection is one example of a transport.

Parameter inSelector: Selector to call for success, failure or timeout.

Parameter inTarget: Target on which to call the selector.

Parameter inUserRefCon: Caller’s reference constant.

Returns: Should return kOBEXSuccess ( 0 ) on success, otherwise an error code.

Tranport subclasses must override this! when called you should attempt to open your transport connection, and if you are successful, return kOBEXSuccess, otherwise an interesting error code.

§Safety
  • in_selector must be a valid selector.
  • in_target should be of the correct type.
  • in_target might not allow None.
  • in_user_ref_con must be a valid pointer.
Source

pub unsafe fn hasOpenTransportConnection(&self) -> u8

Available on crate feature objc2 only.

You must override this - it will be called periodically to determine if a transport connection is open or not.

Returns: Return whether or not the transport connection is still open.

Tranport subclasses must override this! When called you simply return if the transport connection is still open or not.

Source

pub unsafe fn closeTransportConnection(&self) -> OBEXError

Available on crate features objc2 and OBEX only.

You must override this - it will be called when the transport connection should be shutdown.

Returns: Return whether or not the transport connection was closed successfully or not. Return OBEXSuccess ( 0 ) on success, otherwise an error code.

Tranport subclasses must override this! When called you should take whatever steps are necessary to actually close down the transport connection.

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 IOBluetoothOBEXSession

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<IOBluetoothOBEXSession> for IOBluetoothOBEXSession

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 AsRef<NSObject> for IOBluetoothOBEXSession

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<OBEXSession> for IOBluetoothOBEXSession

Available on crate feature objc2 only.
Source§

fn as_ref(&self) -> &OBEXSession

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

impl Borrow<AnyObject> for IOBluetoothOBEXSession

Available on crate feature objc2 only.
Source§

fn borrow(&self) -> &AnyObject

Immutably borrows from an owned value. Read more
Source§

impl Borrow<NSObject> for IOBluetoothOBEXSession

Available on crate feature objc2 only.
Source§

fn borrow(&self) -> &NSObject

Immutably borrows from an owned value. Read more
Source§

impl Borrow<OBEXSession> for IOBluetoothOBEXSession

Available on crate feature objc2 only.
Source§

fn borrow(&self) -> &OBEXSession

Immutably borrows from an owned value. Read more
Source§

impl ClassType for IOBluetoothOBEXSession

Available on crate feature objc2 only.
Source§

const NAME: &'static str = "IOBluetoothOBEXSession"

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

type Super = OBEXSession

The superclass of this class. Read more
Source§

type ThreadKind = <<IOBluetoothOBEXSession 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 IOBluetoothOBEXSession

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 IOBluetoothOBEXSession

Available on crate feature objc2 only.
Source§

type Target = OBEXSession

The resulting type after dereferencing.
Source§

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

Dereferences the value.
Source§

impl Hash for IOBluetoothOBEXSession

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 IOBluetoothRFCOMMChannelDelegate for IOBluetoothOBEXSession

Available on crate feature objc2 only.
Source§

unsafe fn rfcommChannelData_data_length( &self, rfcomm_channel: Option<&IOBluetoothRFCOMMChannel>, data_pointer: *mut c_void, data_length: usize, )
where Self: Sized + Message,

Available on crate features IOBluetoothRFCOMMChannel and IOBluetoothObject only.
Safety Read more
Source§

unsafe fn rfcommChannelOpenComplete_status( &self, rfcomm_channel: Option<&IOBluetoothRFCOMMChannel>, error: c_int, )
where Self: Sized + Message,

Available on crate features IOBluetoothRFCOMMChannel and IOBluetoothObject only.
Safety Read more
Source§

unsafe fn rfcommChannelClosed( &self, rfcomm_channel: Option<&IOBluetoothRFCOMMChannel>, )
where Self: Sized + Message,

Available on crate features IOBluetoothRFCOMMChannel and IOBluetoothObject only.
Safety Read more
Source§

unsafe fn rfcommChannelControlSignalsChanged( &self, rfcomm_channel: Option<&IOBluetoothRFCOMMChannel>, )
where Self: Sized + Message,

Available on crate features IOBluetoothRFCOMMChannel and IOBluetoothObject only.
Safety Read more
Source§

unsafe fn rfcommChannelFlowControlChanged( &self, rfcomm_channel: Option<&IOBluetoothRFCOMMChannel>, )
where Self: Sized + Message,

Available on crate features IOBluetoothRFCOMMChannel and IOBluetoothObject only.
Safety Read more
Source§

unsafe fn rfcommChannelWriteComplete_refcon_status( &self, rfcomm_channel: Option<&IOBluetoothRFCOMMChannel>, refcon: *mut c_void, error: c_int, )
where Self: Sized + Message,

Available on crate features IOBluetoothRFCOMMChannel and IOBluetoothObject only.
Safety Read more
Source§

unsafe fn rfcommChannelWriteComplete_refcon_status_bytesWritten( &self, rfcomm_channel: Option<&IOBluetoothRFCOMMChannel>, refcon: *mut c_void, error: c_int, length: usize, )
where Self: Sized + Message,

Available on crate features IOBluetoothRFCOMMChannel and IOBluetoothObject only.
Safety Read more
Source§

unsafe fn rfcommChannelQueueSpaceAvailable( &self, rfcomm_channel: Option<&IOBluetoothRFCOMMChannel>, )
where Self: Sized + Message,

Available on crate features IOBluetoothRFCOMMChannel and IOBluetoothObject only.
Safety Read more
Source§

impl Message for IOBluetoothOBEXSession

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 IOBluetoothOBEXSession

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 IOBluetoothOBEXSession

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 IOBluetoothOBEXSession

Available on crate feature objc2 only.
Source§

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

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

impl DowncastTarget for IOBluetoothOBEXSession

Available on crate feature objc2 only.
Source§

impl Eq for IOBluetoothOBEXSession

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,