#[repr(C)]pub struct OBEXSession { /* private fields */ }OBEXSession and objc2 only.Expand description
Implementations§
Source§impl OBEXSession
impl OBEXSession
Sourcepub 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 feature OBEX only.
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
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.
Sourcepub 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 feature OBEX only.
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
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.
Sourcepub 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 feature OBEX only.
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
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.
Sourcepub 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 feature OBEX only.
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
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.
Sourcepub 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 feature OBEX only.
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
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.
Sourcepub 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 feature OBEX only.
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
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.
Sourcepub 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 feature OBEX only.
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
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.
Sourcepub 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 feature OBEX only.
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
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.
Sourcepub 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 feature OBEX only.
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
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.
Sourcepub 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 feature OBEX only.
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
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.
Sourcepub 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 feature OBEX only.
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
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.
Sourcepub 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 feature OBEX only.
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
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.
Sourcepub unsafe fn getAvailableCommandPayloadLength(
&self,
in_op_code: OBEXOpCode,
) -> OBEXMaxPacketLength
Available on crate feature OBEX only.
pub unsafe fn getAvailableCommandPayloadLength( &self, in_op_code: OBEXOpCode, ) -> OBEXMaxPacketLength
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.
Sourcepub unsafe fn getAvailableCommandResponsePayloadLength(
&self,
in_op_code: OBEXOpCode,
) -> OBEXMaxPacketLength
Available on crate feature OBEX only.
pub unsafe fn getAvailableCommandResponsePayloadLength( &self, in_op_code: OBEXOpCode, ) -> OBEXMaxPacketLength
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.
Sourcepub unsafe fn getMaxPacketLength(&self) -> OBEXMaxPacketLength
Available on crate feature OBEX only.
pub unsafe fn getMaxPacketLength(&self) -> OBEXMaxPacketLength
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.
Sourcepub unsafe fn hasOpenOBEXConnection(&self) -> bool
pub unsafe fn hasOpenOBEXConnection(&self) -> bool
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.
Sourcepub unsafe fn setEventCallback(
&self,
in_event_callback: OBEXSessionEventCallback,
)
Available on crate feature OBEX only.
pub unsafe fn setEventCallback( &self, in_event_callback: OBEXSessionEventCallback, )
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.
Sourcepub unsafe fn setEventRefCon(&self, in_ref_con: *mut c_void)
pub unsafe fn setEventRefCon(&self, in_ref_con: *mut c_void)
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.
Sourcepub unsafe fn setEventSelector_target_refCon(
&self,
in_event_selector: Option<Sel>,
in_event_selector_target: Option<&AnyObject>,
in_user_ref_con: *mut c_void,
)
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, )
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.
Sourcepub unsafe fn serverHandleIncomingData(&self, event: *mut OBEXTransportEvent)
Available on crate feature OBEX only.
pub unsafe fn serverHandleIncomingData(&self, event: *mut OBEXTransportEvent)
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!
Sourcepub unsafe fn clientHandleIncomingData(&self, event: *mut OBEXTransportEvent)
Available on crate feature OBEX only.
pub unsafe fn clientHandleIncomingData(&self, event: *mut OBEXTransportEvent)
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!
Sourcepub unsafe fn sendDataToTransport_dataLength(
&self,
in_data_to_send: *mut c_void,
in_data_length: usize,
) -> OBEXError
Available on crate feature OBEX only.
pub unsafe fn sendDataToTransport_dataLength( &self, in_data_to_send: *mut c_void, in_data_length: usize, ) -> OBEXError
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.
Sourcepub 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 feature OBEX only.
pub unsafe fn openTransportConnection_selectorTarget_refCon( &self, in_selector: Option<Sel>, in_target: Option<&AnyObject>, in_user_ref_con: *mut c_void, ) -> OBEXError
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.
Sourcepub unsafe fn hasOpenTransportConnection(&self) -> u8
pub unsafe fn hasOpenTransportConnection(&self) -> u8
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.
Sourcepub unsafe fn closeTransportConnection(&self) -> OBEXError
Available on crate feature OBEX only.
pub unsafe fn closeTransportConnection(&self) -> OBEXError
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>§
Sourcepub fn doesNotRecognizeSelector(&self, sel: Sel) -> !
pub fn doesNotRecognizeSelector(&self, sel: Sel) -> !
Handle messages the object doesn’t recognize.
See Apple’s documentation for details.
Methods from Deref<Target = AnyObject>§
Sourcepub fn class(&self) -> &'static AnyClass
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());Sourcepub unsafe fn get_ivar<T>(&self, name: &str) -> &Twhere
T: Encode,
👎Deprecated: this is difficult to use correctly, use Ivar::load instead.
pub unsafe fn get_ivar<T>(&self, name: &str) -> &Twhere
T: Encode,
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.
Sourcepub fn downcast_ref<T>(&self) -> Option<&T>where
T: DowncastTarget,
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 OBEXSession
impl AsRef<AnyObject> for OBEXSession
Source§impl AsRef<NSObject> for OBEXSession
impl AsRef<NSObject> for OBEXSession
Source§impl AsRef<OBEXSession> for IOBluetoothOBEXSession
Available on crate feature IOBluetoothOBEXSession only.
impl AsRef<OBEXSession> for IOBluetoothOBEXSession
IOBluetoothOBEXSession only.Source§fn as_ref(&self) -> &OBEXSession
fn as_ref(&self) -> &OBEXSession
Source§impl AsRef<OBEXSession> for OBEXSession
impl AsRef<OBEXSession> for OBEXSession
Source§impl Borrow<AnyObject> for OBEXSession
impl Borrow<AnyObject> for OBEXSession
Source§impl Borrow<NSObject> for OBEXSession
impl Borrow<NSObject> for OBEXSession
Source§impl Borrow<OBEXSession> for IOBluetoothOBEXSession
Available on crate feature IOBluetoothOBEXSession only.
impl Borrow<OBEXSession> for IOBluetoothOBEXSession
IOBluetoothOBEXSession only.Source§fn borrow(&self) -> &OBEXSession
fn borrow(&self) -> &OBEXSession
Source§impl ClassType for OBEXSession
impl ClassType for OBEXSession
Source§const NAME: &'static str = "OBEXSession"
const NAME: &'static str = "OBEXSession"
Source§type ThreadKind = <<OBEXSession as ClassType>::Super as ClassType>::ThreadKind
type ThreadKind = <<OBEXSession as ClassType>::Super as ClassType>::ThreadKind
Source§impl Debug for OBEXSession
impl Debug for OBEXSession
Source§impl Deref for OBEXSession
impl Deref for OBEXSession
Source§impl Hash for OBEXSession
impl Hash for OBEXSession
Source§impl Message for OBEXSession
impl Message for OBEXSession
Source§impl NSObjectProtocol for OBEXSession
impl NSObjectProtocol for OBEXSession
Source§fn isEqual(&self, other: Option<&AnyObject>) -> bool
fn isEqual(&self, other: Option<&AnyObject>) -> bool
Source§fn hash(&self) -> usize
fn hash(&self) -> usize
Source§fn isKindOfClass(&self, cls: &AnyClass) -> bool
fn isKindOfClass(&self, cls: &AnyClass) -> bool
Source§fn is_kind_of<T>(&self) -> bool
fn is_kind_of<T>(&self) -> bool
isKindOfClass directly, or cast your objects with AnyObject::downcast_ref