OBEXSession
Объект, представляющий соединение OBEX с удаленной целью.
У Вас не будет потребности в получении/использовании необработанного OBEXSession, так как это требует, чтобы базовая передача сделала что-либо полезное. Однако, как только у Вас есть объект, который является подклассом этого класса, можно использовать функции в настоящем документе для управления этим OBEXSession. Прежде всего Вы захотите использовать OBEXConnect (если Вы будете клиентским сеансом) фактически заставить транспорт открывать соединение с удаленной целью и устанавливать соединение OBEX по нему. Оттуда можно дать больше команд на основе ответов от сервера.
Если Вы - сеанс сервера, первой вещью, которую необходимо получить, является пакет команды OBEXConnect, и Вы захотите выпустить пакет OBEXConnectResponse, с Вашим ответом на ту команду (успех, отклоненный, плохой запрос, и т.д.).
Можно использовать средства доступа сеанса для доступа к определенной информации, такой как согласованная макс. длина пакета.
Если Вы хотите реализовать свой собственный OBEXSession по транспорту, такому как Ethernet, то необходимо будет видеть конец файла для определения, какие функции переопределить, и что передать тем функциям.
Никакой механизм тайм-аута не был реализован до сих пор для OBEXSessions. При необходимости в тайм-аутах необходимо будет реализовать их сами. Это исследуется для будущей версии. Однако знайте, что Спецификация OBEX явно не требует тайм-аутов, так уверены, что Вы позволяете достаточному количеству времени для команд завершаться, поскольку некоторые устройства могут быть медленными при отправке больших объемов данных.
Наследование
-
NSObject -
OBEXSession -
IOBluetoothOBEXSession
-
NSObject -
OBEXSession -
IOBluetoothOBEXSession
Оператор импорта
Swift
import IOBluetooth
Objective C
@import IOBluetooth;
Доступность
Доступный в OS X v10.2 и позже.
-
Подклассы Tranport должны вызвать, это от их собственных данных - получает обработчики. Например, когда данные получены по Bluetooth канал RFCOMM в IOBluetoothOBEXSession, это поочередно вызывает это для диспетчеризации данных. Если Вы не обработаете этот случай, то Ваш сеанс сервера не будет работать, гарантируемый.
Объявление
Swift
func clientHandleIncomingData(_event: UnsafeMutablePointer<OBEXTransportEvent>)Objective C
- (void)clientHandleIncomingData:(OBEXTransportEvent *)eventПараметры
eventНовое событие получено от транспорта.
Обсуждение
Подклассы Tranport должны вызвать это для клиентских сеансов OBEX для работы!
Оператор импорта
Objective C
@import IOBluetooth;Swift
import IOBluetoothДоступность
Доступный в OS X v10.2 и позже.
-
Необходимо переопределить это - это вызовут, когда транспортное соединение должно будет быть завершением работы.
Объявление
Swift
func closeTransportConnection() -> OBEXErrorObjective C
- (OBEXError)closeTransportConnectionВозвращаемое значение
Возвратитесь, было ли транспортное соединение закрыто успешно или нет. Возвратите OBEXSuccess (0) на успехе, иначе код ошибки.
Обсуждение
Подклассы Tranport должны переопределить это! Когда вызвано необходимо предпринять любые шаги, необходимы для фактического закрытия транспортного соединения.
Оператор импорта
Objective C
@import IOBluetooth;Swift
import IOBluetoothДоступность
Доступный в OS X v10.2 и позже.
-
Определите максимальную сумму данных, которые можно отправить в определенной команде как клиентский сеанс OBEX.
Объявление
Swift
func getAvailableCommandPayloadLength(_inOpCode: OBEXOpCode) -> OBEXMaxPacketLengthObjective C
- (OBEXMaxPacketLength)getAvailableCommandPayloadLength:(OBEXOpCode)inOpCodeПараметры
inOpCodeКод операции Вы интересуетесь отправкой (как клиент).
Возвращаемое значение
Максимальная сумма данных определенный пакет может обработать после учета любой команды наверху.
Обсуждение
Каждая Команда OBEX имеет определенную сумму издержек. Так как согласованная макс. длина пакета не указывает то, что составляют максимальные данные, можно отправить в пакете определенной команды, можно использовать эту функцию для определения сколько данных для обеспечения в дополнительных заголовках или заголовках данных организации.
Оператор импорта
Objective C
@import IOBluetooth;Swift
import IOBluetoothДоступность
Доступный в OS X v10.2 и позже.
-
Определите максимальную сумму данных, которые можно отправить в определенном ответе команды как сеанс сервера OBEX.
Объявление
Swift
func getAvailableCommandResponsePayloadLength(_inOpCode: OBEXOpCode) -> OBEXMaxPacketLengthObjective C
- (OBEXMaxPacketLength)getAvailableCommandResponsePayloadLength:(OBEXOpCode)inOpCodeПараметры
inOpCodeКод операции Вы интересуетесь ответом к (как сервер).
Возвращаемое значение
Максимальная сумма данных определенный пакет может обработать после учета любого ответа команды наверху.
Обсуждение
Каждый ответ Команды OBEX имеет определенную сумму издержек. Так как согласованная макс. длина пакета не указывает то, что составляют максимальные данные, можно отправить в пакете определенного ответа, можно использовать эту функцию для определения сколько данных для обеспечения в дополнительных заголовках или заголовках данных организации.
Оператор импорта
Objective C
@import IOBluetooth;Swift
import IOBluetoothДоступность
Доступный в OS X v10.2 и позже.
-
Получает текущую макс. длину пакета.
Объявление
Swift
func getMaxPacketLength() -> OBEXMaxPacketLengthObjective C
- (OBEXMaxPacketLength)getMaxPacketLengthВозвращаемое значение
Макс. длина пакета.
Обсуждение
Это значение *могло* изменение прежде и после того, как команда подключения была отправлена, или ответ команды подключения был получен, так как получатель мог согласовать более низкий максимальный размер пакета.
Оператор импорта
Objective C
@import IOBluetooth;Swift
import IOBluetoothДоступность
Доступный в OS X v10.2 и позже.
-
Успешный пакет подключения был отправлен и получен? Этот API говорит Вам так.
Объявление
Swift
func hasOpenOBEXConnection() -> BoolObjective C
- (BOOL)hasOpenOBEXConnectionВозвращаемое значение
Истина или ложь, мы OBEX-подключены к другому объекту OBEX.
Обсуждение
«Транспортное» соединение может существовать (такие как основополосное соединение Bluetooth), но соединение OBEX не может быть установлено по тому транспорту. Если это было, эта функция возвращает true.
Оператор импорта
Objective C
@import IOBluetooth;Swift
import IOBluetoothДоступность
Доступный в OS X v10.2 и позже.
-
Необходимо переопределить это - это будут вызывать периодически, чтобы определить, открыто ли транспортное соединение или нет.
Объявление
Swift
func hasOpenTransportConnection() -> BooleanObjective C
- (Boolean)hasOpenTransportConnectionВозвращаемое значение
Возвратитесь, открыто ли транспортное соединение все еще.
Обсуждение
Подклассы Tranport должны переопределить это! Если транспортное соединение все еще открыто или нет, когда вызвано Вы просто возвращаетесь.
Оператор импорта
Objective C
@import IOBluetooth;Swift
import IOBluetoothДоступность
Доступный в OS X v10.2 и позже.
-
OBEXAbort (_: optionalHeadersLength:eventSelector:selectorTarget:refCon:) - OBEXAbort:optionalHeadersLength:eventSelector:selectorTarget:refCon:Отправьте команду OBEX Abort в цель сеанса.
Объявление
Swift
func OBEXAbort(_inOptionalHeaders: UnsafeMutablePointer<Void>, optionalHeadersLengthinOptionalHeadersLength: UInt, eventSelectorinSelector: Selector, selectorTargetinTarget: AnyObject!, refConinUserRefCon: UnsafeMutablePointer<Void>) -> OBEXErrorObjective C
- (OBEXError)OBEXAbort:(void *)inOptionalHeadersoptionalHeadersLength:(size_t)inOptionalHeadersLengtheventSelector:(SEL)inSelectorselectorTarget:(id)inTargetrefCon:(void *)inUserRefConПараметры
inOptionalHeadersМожет быть NULL. Ptr к некоторым данным Вы хотите отправить как Ваши дополнительные заголовки. Используйте предоставленный заголовок contruction набор в OBEX.h и OBEXHeadersToBytes () для удобства.
inOptionalHeadersLengthДлина данных в ptr передала в вышеупомянутом.
inSelectorСелектор VALID, который вызовут, когда что-то интересное происходит вследствие этого вызова. Селектор в Вашем целевом объекте, MUST имеет следующую подпись, или ее не вызовут должным образом (ищите сообщения об ошибках в Console.app):
- (недействительный) OBEXAbortHandler: (константа OBEXSessionEvent*) inSessionEvent;
inTargetЦелевой объект VALID для селектора.
inUserRefConНезависимо от того, что Вы хотите передать сюда. Это будет пасоваться назад Вам в refCon части структуры OBEXSessionEvent. нолем является, конечно, OK здесь.
Обсуждение
Селектор NULL или цель приведут к ошибке. После возврата данные передали в, будет отправлен по транспорту. Вы получите ответ на свою команду на Вашем селекторе.
Оператор импорта
Objective C
@import IOBluetooth;Swift
import IOBluetoothДоступность
Доступный в OS X v10.2 и позже.
См. также
OBEXAbort -
OBEXAbortResponse (_: optionalHeaders:optionalHeadersLength:eventSelector:selectorTarget:refCon:) - OBEXAbortResponse:optionalHeaders:optionalHeadersLength:eventSelector:selectorTarget:refCon:Отправьте ответ аварийного прекращения работы на цель сеанса.
Объявление
Swift
func OBEXAbortResponse(_inMaxPacketLength: OBEXOpCode, optionalHeadersinOptionalHeaders: UnsafeMutablePointer<Void>, optionalHeadersLengthinOptionalHeadersLength: UInt, eventSelectorinSelector: Selector, selectorTargetinTarget: AnyObject!, refConinUserRefCon: UnsafeMutablePointer<Void>) -> OBEXErrorObjective C
- (OBEXError)OBEXAbortResponse:(OBEXOpCode)inMaxPacketLengthoptionalHeaders:(void *)inOptionalHeadersoptionalHeadersLength:(size_t)inOptionalHeadersLengtheventSelector:(SEL)inSelectorselectorTarget:(id)inTargetrefCon:(void *)inUserRefConПараметры
inMaxPacketLengthМаксимальный размер пакета Вы хотите, чтобы Ваш сеанс OBEX связался с. Этот MUST быть ниже, чем максимальный размер пакета, клиент сообщил Вам в команде подключения, что Вы получили от него.
inOptionalHeadersМожет быть NULL. Ptr к некоторым данным Вы хотите отправить как Ваши дополнительные заголовки. Используйте предоставленный заголовок contruction набор в OBEX.h и OBEXHeadersToBytes () для удобства.
inOptionalHeadersLengthДлина данных в ptr передала в вышеупомянутом.
inSelectorСелектор VALID, который вызовут, когда что-то интересное происходит вследствие этого вызова. Селектор в Вашем целевом объекте, MUST имеет следующую подпись, или ее не вызовут должным образом (ищите сообщения об ошибках в Console.app):
- (недействительный) OBEXAbortResponseHandler: (константа OBEXSessionEvent*) inSessionEvent;
inTargetЦелевой объект VALID для селектора.
inUserRefConНезависимо от того, что Вы хотите передать сюда. Это будет пасоваться назад Вам в refCon части структуры OBEXSessionEvent. нолем является, конечно, OK здесь.
Обсуждение
Селектор NULL или цель приведут к ошибке. После возврата данные передали в, будет отправлен по базовому транспорту OBEX. Вы получите любые ответы на свой ответ команды на Вашем селекторе.
Оператор импорта
Objective C
@import IOBluetooth;Swift
import IOBluetoothДоступность
Доступный в OS X v10.2 и позже.
См. также
OBEXAbortResponse -
OBEXConnect (_: maxPacketLength:optionalHeaders:optionalHeadersLength:eventSelector:selectorTarget:refCon:) - OBEXConnect:maxPacketLength:optionalHeaders:optionalHeadersLength:eventSelector:selectorTarget:refCon:Инициируйте соединение OBEX с устройством. Базовая передача причин (Bluetooth, и др.), чтобы попытаться соединиться с удаленным устройством. После успеха пакет подключения OBEX отправляется для установления Соединения OBEX.
Объявление
Swift
func OBEXConnect(_inFlags: OBEXFlags, maxPacketLengthinMaxPacketLength: OBEXMaxPacketLength, optionalHeadersinOptionalHeaders: UnsafeMutablePointer<Void>, optionalHeadersLengthinOptionalHeadersLength: UInt, eventSelectorinSelector: Selector, selectorTargetinTarget: AnyObject!, refConinUserRefCon: UnsafeMutablePointer<Void>) -> OBEXErrorObjective C
- (OBEXError)OBEXConnect:(OBEXFlags)inFlagsmaxPacketLength:(OBEXMaxPacketLength)inMaxPacketLengthoptionalHeaders:(void *)inOptionalHeadersoptionalHeadersLength:(size_t)inOptionalHeadersLengtheventSelector:(SEL)inSelectorselectorTarget:(id)inTargetrefCon:(void *)inUserRefConПараметры
inFlagsOBEX соединяют флаги. См. OBEX.h для возможностей.
inMaxPacketLengthМаксимальный размер пакета Вы хотите поддерживать. Может быть согласован вниз, в зависимости от целевого устройства.
inOptionalHeadersМожет быть NULL. Ptr к некоторым данным Вы хотите отправить как Ваши дополнительные заголовки. Используйте предоставленный заголовок contruction набор в OBEX.h и OBEXHeadersToBytes () для удобства.
inOptionalHeadersLengthДлина данных в ptr передала в вышеупомянутом.
inSelectorСелектор VALID, который вызовут, когда что-то интересное происходит вследствие этого вызова. Селектор в Вашем целевом объекте, MUST имеет следующую подпись, или ее не вызовут должным образом (ищите сообщения об ошибках в Console.app):
- (недействительный) OBEXConnectHandler: (константа OBEXSessionEvent*) inSessionEvent;
inTargetЦелевой объект VALID для селектора.
inUserRefConНезависимо от того, что Вы хотите передать сюда. Это будет пасоваться назад Вам в refCon части структуры OBEXSessionEvent. нолем является, конечно, OK здесь.
Обсуждение
Селектор NULL или цель приведут к ошибке. После возврата данные передали в, будет отправлен по транспорту. Вы получите ответ на свою команду на Вашем селекторе. Если Вы уже установили соединение OBEX, и Вы вызываете это снова, Вы получите 'kOBEXSessionAlreadyConnectedError' в результате.
Оператор импорта
Objective C
@import IOBluetooth;Swift
import IOBluetoothДоступность
Доступный в OS X v10.2 и позже.
См. также
OBEXConnect -
OBEXConnectResponse (_: flags:maxPacketLength:optionalHeaders:optionalHeadersLength:eventSelector:selectorTarget:refCon:) - OBEXConnectResponse:flags:maxPacketLength:optionalHeaders:optionalHeadersLength:eventSelector:selectorTarget:refCon:Отправьте ответ подключения на цель сеанса.
Объявление
Swift
func OBEXConnectResponse(_inFlags: OBEXOpCode, flagsinConstants: OBEXFlags, maxPacketLengthinMaxPacketLength: OBEXMaxPacketLength, optionalHeadersinOptionalHeaders: UnsafeMutablePointer<Void>, optionalHeadersLengthinOptionalHeadersLength: UInt, eventSelectorinSelector: Selector, selectorTargetinTarget: AnyObject!, refConinUserRefCon: UnsafeMutablePointer<Void>) -> OBEXErrorObjective C
- (OBEXError)OBEXConnectResponse:(OBEXOpCode)inFlagsflags:(OBEXFlags)inConstantsmaxPacketLength:(OBEXMaxPacketLength)inMaxPacketLengthoptionalHeaders:(void *)inOptionalHeadersoptionalHeadersLength:(size_t)inOptionalHeadersLengtheventSelector:(SEL)inSelectorselectorTarget:(id)inTargetrefCon:(void *)inUserRefConПараметры
inFlagsOBEX соединяют флаги. См. OBEX.h для возможностей.
inConstantsOBEX соединяют константы. См. OBEX.h для возможностей.
inMaxPacketLengthМаксимальный размер пакета Вы хотите, чтобы Ваш сеанс OBEX связался с. Этот MUST быть ниже, чем максимальный размер пакета, клиент сообщил Вам в команде подключения, что Вы получили от него.
inOptionalHeadersМожет быть NULL. Ptr к некоторым данным Вы хотите отправить как Ваши дополнительные заголовки. Используйте предоставленный заголовок contruction набор в OBEX.h и OBEXHeadersToBytes () для удобства.
inOptionalHeadersLengthДлина данных в ptr передала в вышеупомянутом.
inSelectorСелектор VALID, который вызовут, когда что-то интересное происходит вследствие этого вызова. Селектор в Вашем целевом объекте, MUST имеет следующую подпись, или ее не вызовут должным образом (ищите сообщения об ошибках в Console.app):
- (недействительный) OBEXConnectResponseHandler: (константа OBEXSessionEvent*) inSessionEvent;
inTargetЦелевой объект VALID для селектора.
inUserRefConНезависимо от того, что Вы хотите передать сюда. Это будет пасоваться назад Вам в refCon части структуры OBEXSessionEvent. нолем является, конечно, OK здесь.
Обсуждение
Селектор NULL или цель приведут к ошибке. После возврата данные передали в, будет отправлен по базовому транспорту OBEX. Вы получите любые ответы на свой ответ команды на Вашем селекторе.
Оператор импорта
Objective C
@import IOBluetooth;Swift
import IOBluetoothДоступность
Доступный в OS X v10.2 и позже.
См. также
OBEXConnectResponse -
OBEXDisconnect (_: optionalHeadersLength:eventSelector:selectorTarget:refCon:) - OBEXDisconnect:optionalHeadersLength:eventSelector:selectorTarget:refCon:Отправьте Команду разъединения OBEX в цель сеанса. THIS не обязательно закрывает соединение базовой передачи. Удаление сеанса гарантирует то закрытие.
Объявление
Swift
func OBEXDisconnect(_inOptionalHeaders: UnsafeMutablePointer<Void>, optionalHeadersLengthinOptionalHeadersLength: UInt, eventSelectorinSelector: Selector, selectorTargetinTarget: AnyObject!, refConinUserRefCon: UnsafeMutablePointer<Void>) -> OBEXErrorObjective C
- (OBEXError)OBEXDisconnect:(void *)inOptionalHeadersoptionalHeadersLength:(size_t)inOptionalHeadersLengtheventSelector:(SEL)inSelectorselectorTarget:(id)inTargetrefCon:(void *)inUserRefConПараметры
inOptionalHeadersМожет быть NULL. Ptr к некоторым данным Вы хотите отправить как Ваши дополнительные заголовки. Используйте предоставленный заголовок contruction набор в OBEX.h и OBEXHeadersToBytes () для удобства.
inOptionalHeadersLengthДлина данных в ptr передала в вышеупомянутом.
inSelectorСелектор VALID, который вызовут, когда что-то интересное происходит вследствие этого вызова. Селектор в Вашем целевом объекте, MUST имеет следующую подпись, или ее не вызовут должным образом (ищите сообщения об ошибках в Console.app):
- (недействительный) OBEXDisconnectHandler: (константа OBEXSessionEvent*) inSessionEvent;
inTargetЦелевой объект VALID для селектора.
inUserRefConНезависимо от того, что Вы хотите передать сюда. Это будет пасоваться назад Вам в refCon части структуры OBEXSessionEvent. нолем является, конечно, OK здесь.
Обсуждение
Селектор NULL или цель приведут к ошибке. После возврата данные передали в, будет отправлен по транспорту. Вы получите ответ на свою команду на Вашем селекторе. Бойтесь превышать макс. длину пакета в своих дополнительных заголовках, или Ваша команда будет отклонена. Рекомендуется вызвать getMaxPacketLength на сеансе прежде, чем дать эту команду, таким образом, Вы знаете, сколько данных цель сеанса примет в единственной транзакции.
Оператор импорта
Objective C
@import IOBluetooth;Swift
import IOBluetoothДоступность
Доступный в OS X v10.2 и позже.
См. также
OBEXDisconnect -
OBEXDisconnectResponse (_: optionalHeaders:optionalHeadersLength:eventSelector:selectorTarget:refCon:) - OBEXDisconnectResponse:optionalHeaders:optionalHeadersLength:eventSelector:selectorTarget:refCon:Отправьте ответ разъединения на цель сеанса.
Объявление
Swift
func OBEXDisconnectResponse(_inMaxPacketLength: OBEXOpCode, optionalHeadersinOptionalHeaders: UnsafeMutablePointer<Void>, optionalHeadersLengthinOptionalHeadersLength: UInt, eventSelectorinSelector: Selector, selectorTargetinTarget: AnyObject!, refConinUserRefCon: UnsafeMutablePointer<Void>) -> OBEXErrorObjective C
- (OBEXError)OBEXDisconnectResponse:(OBEXOpCode)inMaxPacketLengthoptionalHeaders:(void *)inOptionalHeadersoptionalHeadersLength:(size_t)inOptionalHeadersLengtheventSelector:(SEL)inSelectorselectorTarget:(id)inTargetrefCon:(void *)inUserRefConПараметры
inMaxPacketLengthМаксимальный размер пакета Вы хотите, чтобы Ваш сеанс OBEX связался с. Этот MUST быть ниже, чем максимальный размер пакета, клиент сообщил Вам в команде подключения, что Вы получили от него.
inOptionalHeadersМожет быть NULL. Ptr к некоторым данным Вы хотите отправить как Ваши дополнительные заголовки. Используйте предоставленный заголовок contruction набор в OBEX.h и OBEXHeadersToBytes () для удобства.
inOptionalHeadersLengthДлина данных в ptr передала в вышеупомянутом.
inSelectorСелектор VALID, который вызовут, когда что-то интересное происходит вследствие этого вызова. Селектор в Вашем целевом объекте, MUST имеет следующую подпись, или ее не вызовут должным образом (ищите сообщения об ошибках в Console.app):
- (недействительный) OBEXDisconnectResponseHandler: (константа OBEXSessionEvent*) inSessionEvent;
inTargetЦелевой объект VALID для селектора.
inUserRefConНезависимо от того, что Вы хотите передать сюда. Это будет пасоваться назад Вам в refCon части структуры OBEXSessionEvent. нолем является, конечно, OK здесь.
Обсуждение
Селектор NULL или цель приведут к ошибке. После возврата данные передали в, будет отправлен по базовому транспорту OBEX. Вы получите любые ответы на свой ответ команды на Вашем селекторе.
Оператор импорта
Objective C
@import IOBluetooth;Swift
import IOBluetoothДоступность
Доступный в OS X v10.2 и позже.
См. также
OBEXDisconnectResponse -
OBEXGet (_: headers:headersLength:eventSelector:selectorTarget:refCon:) - OBEXGet:headers:headersLength:eventSelector:selectorTarget:refCon:Отправьте команду OBEX Get в цель сеанса.
Объявление
Swift
func OBEXGet(_isFinalChunk: Boolean, headersinHeadersData: UnsafeMutablePointer<Void>, headersLengthinHeadersDataLength: UInt, eventSelectorinSelector: Selector, selectorTargetinTarget: AnyObject!, refConinUserRefCon: UnsafeMutablePointer<Void>) -> OBEXErrorObjective C
- (OBEXError)OBEXGet:(Boolean)isFinalChunkheaders:(void *)inHeadersDataheadersLength:(size_t)inHeadersDataLengtheventSelector:(SEL)inSelectorselectorTarget:(id)inTargetrefCon:(void *)inUserRefConПараметры
isFinalChunkУкажите, завершен ли этот запрос в одном выстреле - что все заголовки, Вы являетесь поставляющими, впишутся в согласованную макс. длину пакета.
inHeadersDataМожет быть NULL. Ptr к некоторым данным Вы хотите отправить как Ваши заголовки, такие как Длина, Имя, и т.д. Используйте предоставленный заголовок contruction набор в OBEX.h и OBEXHeadersToBytes () для Вашего удобства.
inHeadersDataLengthДлина данных в ptr передала в вышеупомянутом.
inSelectorСелектор VALID, который вызовут, когда что-то интересное происходит вследствие этого вызова. Селектор в Вашем целевом объекте, MUST имеет следующую подпись, или ее не вызовут должным образом (ищите сообщения об ошибках в Console.app):
- (недействительный) OBEXGetHandler: (константа OBEXSessionEvent*) inSessionEvent;
inTargetЦелевой объект VALID для селектора.
inUserRefConНезависимо от того, что Вы хотите передать сюда. Это будет пасоваться назад Вам в refCon части структуры OBEXSessionEvent. нолем является, конечно, OK здесь.
Обсуждение
Селектор NULL или цель приведут к ошибке. После возврата данные передали в, будет отправлен по транспорту. Вы получите ответ на свою команду на Вашем селекторе.
Оператор импорта
Objective C
@import IOBluetooth;Swift
import IOBluetoothДоступность
Доступный в OS X v10.2 и позже.
См. также
OBEXGet -
OBEXGetResponse (_: optionalHeaders:optionalHeadersLength:eventSelector:selectorTarget:refCon:) - OBEXGetResponse:optionalHeaders:optionalHeadersLength:eventSelector:selectorTarget:refCon:Отправьте получить ответ на цель сеанса.
Объявление
Swift
func OBEXGetResponse(_inMaxPacketLength: OBEXOpCode, optionalHeadersinOptionalHeaders: UnsafeMutablePointer<Void>, optionalHeadersLengthinOptionalHeadersLength: UInt, eventSelectorinSelector: Selector, selectorTargetinTarget: AnyObject!, refConinUserRefCon: UnsafeMutablePointer<Void>) -> OBEXErrorObjective C
- (OBEXError)OBEXGetResponse:(OBEXOpCode)inMaxPacketLengthoptionalHeaders:(void *)inOptionalHeadersoptionalHeadersLength:(size_t)inOptionalHeadersLengtheventSelector:(SEL)inSelectorselectorTarget:(id)inTargetrefCon:(void *)inUserRefConПараметры
inMaxPacketLengthМаксимальный размер пакета Вы хотите, чтобы Ваш сеанс OBEX связался с. Этот MUST быть ниже, чем максимальный размер пакета, клиент сообщил Вам в команде подключения, что Вы получили от него.
inOptionalHeadersМожет быть NULL. Ptr к некоторым данным Вы хотите отправить как Ваши дополнительные заголовки. Используйте предоставленный заголовок contruction набор в OBEX.h и OBEXHeadersToBytes () для удобства.
inOptionalHeadersLengthДлина данных в ptr передала в вышеупомянутом.
inSelectorСелектор VALID, который вызовут, когда что-то интересное происходит вследствие этого вызова. Селектор в Вашем целевом объекте, MUST имеет следующую подпись, или ее не вызовут должным образом (ищите сообщения об ошибках в Console.app):
- (недействительный) OBEXGetResponseHandler: (константа OBEXSessionEvent*) inSessionEvent;
inTargetЦелевой объект VALID для селектора.
inUserRefConНезависимо от того, что Вы хотите передать сюда. Это будет пасоваться назад Вам в refCon части структуры OBEXSessionEvent. нолем является, конечно, OK здесь.
Обсуждение
Селектор NULL или цель приведут к ошибке. После возврата данные передали в, будет отправлен по базовому транспорту OBEX. Вы получите любые ответы на свой ответ команды на Вашем селекторе.
Оператор импорта
Objective C
@import IOBluetooth;Swift
import IOBluetoothДоступность
Доступный в OS X v10.2 и позже.
См. также
OBEXGetResponse -
OBEXPut (_: headersData:headersDataLength:bodyData:bodyDataLength:eventSelector:selectorTarget:refCon:) - OBEXPut:headersData:headersDataLength:bodyData:bodyDataLength:eventSelector:selectorTarget:refCon:Отправьте команду OBEX Put в цель сеанса.
Объявление
Swift
func OBEXPut(_isFinalChunk: Boolean, headersDatainHeadersData: UnsafeMutablePointer<Void>, headersDataLengthinHeadersDataLength: UInt, bodyDatainBodyData: UnsafeMutablePointer<Void>, bodyDataLengthinBodyDataLength: UInt, eventSelectorinSelector: Selector, selectorTargetinTarget: AnyObject!, refConinUserRefCon: UnsafeMutablePointer<Void>) -> OBEXErrorObjective C
- (OBEXError)OBEXPut:(Boolean)isFinalChunkheadersData:(void *)inHeadersDataheadersDataLength:(size_t)inHeadersDataLengthbodyData:(void *)inBodyDatabodyDataLength:(size_t)inBodyDataLengtheventSelector:(SEL)inSelectorselectorTarget:(id)inTargetrefCon:(void *)inUserRefConПараметры
isFinalChunkУкажите, завершен ли этот запрос в одном выстреле - что все заголовки, Вы являетесь поставляющими, впишутся в согласованную макс. длину пакета.
inHeadersDataМожет быть NULL. Ptr к некоторым данным Вы хотите отправить как Ваши заголовки, такие как Длина, Имя, и т.д. Используйте предоставленный заголовок contruction набор в OBEX.h и OBEXHeadersToBytes () для удобства.
inHeadersDataLengthДлина данных в ptr передала в вышеупомянутом.
inBodyDataМожет быть NULL. Ptr к некоторым данным Вы хотите отправить как Ваш заголовок BODY. Не создавайте реальный заголовок OBEX здесь, он будет сделан для Вас - просто передают указатель на Ваши данные, мы сделаем остальных. ОДНАКО знайте, что немного служебные (3 байта) будут добавлены к данным в построении заголовка BODY для Вас.
inBodyDataLengthДлина данных в ptr передала в вышеупомянутом.
inSelectorСелектор VALID, который вызовут, когда что-то интересное происходит вследствие этого вызова. Селектор в Вашем целевом объекте, MUST имеет следующую подпись, или ее не вызовут должным образом (ищите сообщения об ошибках в Console.app):
- (недействительный) OBEXPutHandler: (константа OBEXSessionEvent*) inSessionEvent;
inTargetЦелевой объект VALID для селектора.
inUserRefConНезависимо от того, что Вы хотите передать сюда. Это будет пасоваться назад Вам в refCon части структуры OBEXSessionEvent. нолем является, конечно, OK здесь.
Обсуждение
Селектор NULL или цель приведут к ошибке. После возврата данные передали в, будет отправлен по транспорту. Вы получите ответ на свою команду на Вашем селекторе.
Оператор импорта
Objective C
@import IOBluetooth;Swift
import IOBluetoothДоступность
Доступный в OS X v10.2 и позже.
См. также
OBEXPut -
OBEXPutResponse (_: optionalHeaders:optionalHeadersLength:eventSelector:selectorTarget:refCon:) - OBEXPutResponse:optionalHeaders:optionalHeadersLength:eventSelector:selectorTarget:refCon:Отправьте помещенный ответ на цель сеанса.
Объявление
Swift
func OBEXPutResponse(_inMaxPacketLength: OBEXOpCode, optionalHeadersinOptionalHeaders: UnsafeMutablePointer<Void>, optionalHeadersLengthinOptionalHeadersLength: UInt, eventSelectorinSelector: Selector, selectorTargetinTarget: AnyObject!, refConinUserRefCon: UnsafeMutablePointer<Void>) -> OBEXErrorObjective C
- (OBEXError)OBEXPutResponse:(OBEXOpCode)inMaxPacketLengthoptionalHeaders:(void *)inOptionalHeadersoptionalHeadersLength:(size_t)inOptionalHeadersLengtheventSelector:(SEL)inSelectorselectorTarget:(id)inTargetrefCon:(void *)inUserRefConПараметры
inMaxPacketLengthМаксимальный размер пакета Вы хотите, чтобы Ваш сеанс OBEX связался с. Этот MUST быть ниже, чем максимальный размер пакета, клиент сообщил Вам в команде подключения, что Вы получили от него.
inOptionalHeadersМожет быть NULL. Ptr к некоторым данным Вы хотите отправить как Ваши дополнительные заголовки. Используйте предоставленный заголовок contruction набор в OBEX.h и OBEXHeadersToBytes () для удобства.
inOptionalHeadersLengthДлина данных в ptr передала в вышеупомянутом.
inSelectorСелектор VALID, который вызовут, когда что-то интересное происходит вследствие этого вызова. Селектор в Вашем целевом объекте, MUST имеет следующую подпись, или ее не вызовут должным образом (ищите сообщения об ошибках в Console.app):
- (недействительный) OBEXPutResponseHandler: (константа OBEXSessionEvent*) inSessionEvent;
inTargetЦелевой объект VALID для селектора.
inUserRefConНезависимо от того, что Вы хотите передать сюда. Это будет пасоваться назад Вам в refCon части структуры OBEXSessionEvent. нолем является, конечно, OK здесь.
Обсуждение
Селектор NULL или цель приведут к ошибке. После возврата данные передали в, будет отправлен по базовому транспорту OBEX. Вы получите любые ответы на свой ответ команды на Вашем селекторе.
Оператор импорта
Objective C
@import IOBluetooth;Swift
import IOBluetoothДоступность
Доступный в OS X v10.2 и позже.
См. также
OBEXPutResponse -
OBEXSetPath (_: constants:optionalHeaders:optionalHeadersLength:eventSelector:selectorTarget:refCon:) - OBEXSetPath:constants:optionalHeaders:optionalHeadersLength:eventSelector:selectorTarget:refCon:Отправьте команду OBEX SetPath в цель сеанса.
Объявление
Swift
func OBEXSetPath(_inFlags: OBEXFlags, constantsinConstants: OBEXConstants, optionalHeadersinOptionalHeaders: UnsafeMutablePointer<Void>, optionalHeadersLengthinOptionalHeadersLength: UInt, eventSelectorinSelector: Selector, selectorTargetinTarget: AnyObject!, refConinUserRefCon: UnsafeMutablePointer<Void>) -> OBEXErrorObjective C
- (OBEXError)OBEXSetPath:(OBEXFlags)inFlagsconstants:(OBEXConstants)inConstantsoptionalHeaders:(void *)inOptionalHeadersoptionalHeadersLength:(size_t)inOptionalHeadersLengtheventSelector:(SEL)inSelectorselectorTarget:(id)inTargetrefCon:(void *)inUserRefConПараметры
inFlagsOBEX setpath флаги. См. OBEX.h для возможностей.
inConstantsOBEX setpath константы. См. OBEX.h для возможностей.
inOptionalHeadersМожет быть NULL. Ptr к некоторым данным Вы хотите отправить как Ваши дополнительные заголовки. Используйте предоставленный заголовок contruction набор в OBEX.h и OBEXHeadersToBytes () для удобства.
inOptionalHeadersLengthДлина данных в ptr передала в вышеупомянутом.
inSelectorСелектор VALID, который вызовут, когда что-то интересное происходит вследствие этого вызова. Селектор в Вашем целевом объекте, MUST имеет следующую подпись, или ее не вызовут должным образом (ищите сообщения об ошибках в Console.app):
- (недействительный) OBEXSetPathHandler: (константа OBEXSessionEvent*) inSessionEvent;
inTargetЦелевой объект VALID для селектора.
inUserRefConНезависимо от того, что Вы хотите передать сюда. Это будет пасоваться назад Вам в refCon части структуры OBEXSessionEvent. нолем является, конечно, OK здесь.
Обсуждение
Селектор NULL или цель приведут к ошибке. После возврата данные передали в, будет отправлен по транспорту. Вы получите ответ на свою команду на Вашем селекторе.
Оператор импорта
Objective C
@import IOBluetooth;Swift
import IOBluetoothДоступность
Доступный в OS X v10.2 и позже.
См. также
OBEXSetPath -
OBEXSetPathResponse (_: optionalHeaders:optionalHeadersLength:eventSelector:selectorTarget:refCon:) - OBEXSetPathResponse:optionalHeaders:optionalHeadersLength:eventSelector:selectorTarget:refCon:Отправьте ответ пути набора на цель сеанса.
Объявление
Swift
func OBEXSetPathResponse(_inMaxPacketLength: OBEXOpCode, optionalHeadersinOptionalHeaders: UnsafeMutablePointer<Void>, optionalHeadersLengthinOptionalHeadersLength: UInt, eventSelectorinSelector: Selector, selectorTargetinTarget: AnyObject!, refConinUserRefCon: UnsafeMutablePointer<Void>) -> OBEXErrorObjective C
- (OBEXError)OBEXSetPathResponse:(OBEXOpCode)inMaxPacketLengthoptionalHeaders:(void *)inOptionalHeadersoptionalHeadersLength:(size_t)inOptionalHeadersLengtheventSelector:(SEL)inSelectorselectorTarget:(id)inTargetrefCon:(void *)inUserRefConПараметры
inMaxPacketLengthМаксимальный размер пакета Вы хотите, чтобы Ваш сеанс OBEX связался с. Этот MUST быть ниже, чем максимальный размер пакета, клиент сообщил Вам в команде подключения, что Вы получили от него.
inOptionalHeadersМожет быть NULL. Ptr к некоторым данным Вы хотите отправить как Ваши дополнительные заголовки. Используйте предоставленный заголовок contruction набор в OBEX.h и OBEXHeadersToBytes () для удобства.
inOptionalHeadersLengthДлина данных в ptr передала в вышеупомянутом.
inSelectorСелектор VALID, который вызовут, когда что-то интересное происходит вследствие этого вызова. Селектор в Вашем целевом объекте, MUST имеет следующую подпись, или ее не вызовут должным образом (ищите сообщения об ошибках в Console.app):
- (недействительный) OBEXSetPathResponseHandler: (константа OBEXSessionEvent*) inSessionEvent;
inTargetЦелевой объект VALID для селектора.
inUserRefConНезависимо от того, что Вы хотите передать сюда. Это будет пасоваться назад Вам в refCon части структуры OBEXSessionEvent. нолем является, конечно, OK здесь.
Обсуждение
Селектор NULL или цель приведут к ошибке. После возврата данные передали в, будет отправлен по базовому транспорту OBEX. Вы получите любые ответы на свой ответ команды на Вашем селекторе.
Оператор импорта
Objective C
@import IOBluetooth;Swift
import IOBluetoothДоступность
Доступный в OS X v10.2 и позже.
См. также
OBEXSetPathResponse -
openTransportConnection (_: selectorTarget:refCon:) - openTransportConnection:selectorTarget:refCon:Открывает транспортное соединение для устройства. Подключение Bluetooth является одним примером транспорта.
Объявление
Swift
func openTransportConnection(_inSelector: Selector, selectorTargetinTarget: AnyObject!, refConinUserRefCon: UnsafeMutablePointer<Void>) -> OBEXErrorObjective C
- (OBEXError)openTransportConnection:(SEL)inSelectorselectorTarget:(id)inTargetrefCon:(void *)inUserRefConПараметры
inSelectorСелектор для требования к успеху, отказу или тайм-ауту.
inTargetTarget, на котором можно вызвать селектор.
inUserRefConСсылочная константа вызывающей стороны.
Обсуждение
Подклассы Tranport должны переопределить это! когда вызвано необходимо попытаться открыть транспортное соединение, и если Вы успешны, возвратите kOBEXSuccess, иначе интересный код ошибки.
Оператор импорта
Objective C
@import IOBluetooth;Swift
import IOBluetoothДоступность
Доступный в OS X v10.2 и позже.
См. также
openTransportConnection -
Необходимо переопределить это для отправки данных по транспорту. Это ничего не делает по умолчанию, это возвратит kOBEXUnsupportedError.
Объявление
Swift
func sendDataToTransport(_inDataToSend: UnsafeMutablePointer<Void>, dataLengthinDataLength: UInt) -> OBEXErrorObjective C
- (OBEXError)sendDataToTransport:(void *)inDataToSenddataLength:(size_t)inDataLengthПараметры
inDataToSendДанные для пиханий по транспорту к удаленному сеансу OBEX.
inDataLengthДлина данных передала в.
Обсуждение
Подклассы Tranport должны переопределить это! Когда вызвано необходимо отправить данные по транспорту к удаленному сеансу.
Оператор импорта
Objective C
@import IOBluetooth;Swift
import IOBluetoothДоступность
Доступный в OS X v10.2 и позже.
См. также
sendDataToTransport -
Подклассы Tranport должны вызвать, это от их собственных данных - получает обработчики. Например, когда данные получены по Bluetooth канал RFCOMM в IOBluetoothOBEXSession, это поочередно вызывает это для диспетчеризации данных. Если Вы не обработаете этот случай, то Ваш сеанс сервера не будет работать, гарантируемый.
Объявление
Swift
func serverHandleIncomingData(_event: UnsafeMutablePointer<OBEXTransportEvent>)Objective C
- (void)serverHandleIncomingData:(OBEXTransportEvent *)eventПараметры
eventНовое событие получено от транспорта.
Обсуждение
Подклассы Tranport должны вызвать это для сеансов сервера OBEX для работы!
Оператор импорта
Objective C
@import IOBluetooth;Swift
import IOBluetoothДоступность
Доступный в OS X v10.2 и позже.
-
Когда сеанс получает данные, устанавливает обратный вызов C-API, используемый.
Объявление
Swift
func setEventCallback(_inEventCallback: OBEXSessionEventCallback)Objective C
- (void)setEventCallback:(OBEXSessionEventCallback)inEventCallbackПараметры
inEventCallbackФункция к обратному вызову. Должен быть не-NULL, если Вы не пытаетесь очистить обратный вызов, но делаете, который не имеет большого количества смысла.
Обсуждение
Это действительно не предназначается для клиентских сеансов. Только подклассы действительно интересовались бы использованием этого. Они должны установить их, когда их объект подкласса создается, потому что иначе у них не будет способа получить начальный пакет данных команды. Это - партнер к setEventRefCon, описанному ниже.
Оператор импорта
Objective C
@import IOBluetooth;Swift
import IOBluetoothДоступность
Доступный в OS X v10.2 и позже.
-
Когда сеанс получает данные, устанавливает обратный вызов C-API refCon используемый.
Объявление
Swift
func setEventRefCon(_inRefCon: UnsafeMutablePointer<Void>)Objective C
- (void)setEventRefCon:(void *)inRefConПараметры
inRefConrefCon пользователя, который будет передан, когда будет вызван их обратный вызов события.
Обсуждение
Это действительно не предназначается для клиентских сеансов. Только подклассы действительно интересовались бы использованием этого. Они должны установить их, когда их объект подкласса создается, потому что иначе у них не будет контекста в их обратном вызове.
Оператор импорта
Objective C
@import IOBluetooth;Swift
import IOBluetoothДоступность
Доступный в OS X v10.2 и позже.
-
Позвольте Вам устанавливать селектор, который вызовут, когда события будут иметь место на сеансе OBEX.
Объявление
Swift
func setEventSelector(_inEventSelector: Selector, targetinEventSelectorTarget: AnyObject!, refConinUserRefCon: AnyObject!)Objective C
- (void)setEventSelector:(SEL)inEventSelectortarget:(id)inEventSelectorTargetrefCon:(id)inUserRefConПараметры
inEventSelectorСелектор для обращения к цели.
inEventSelectorTargetTarget, который вызовут с селектором.
inUserRefConrefCon пользователя, который будет передан, когда будет вызван их обратный вызов события.
Обсуждение
Когда команда OBEX будет отослана, действительно не необходимый, чтобы использоваться, так как селектор события будет установлен.
Оператор импорта
Objective C
@import IOBluetooth;Swift
import IOBluetoothДоступность
Доступный в OS X v10.2 и позже.
См. также
setEventSelector
-
Объявление
Swift
struct OBEXTransportEvent { var type: OBEXTransportEventType var status: OBEXError var dataPtr: UnsafeMutablePointer<Void> var dataLength: UInt }Objective C
typedef struct OBEXTransportEvent OBEXTransportEvent;Обсуждение
Вам будут нужны к construcy они, когда данные будут получены, и затем передайте указатель на него к одному из входящих методов данных, определенных ниже. Передайте 0 как Ваше состояние, если данными был полученный OK. Иначе, можно вставить собственный код ошибки там. Для типа передачи, убедиться использовать один из определенных типов выше.
Оператор импорта
Objective C
@import IOBluetooth;Swift
import IOBluetoothДоступность
Доступный в OS X v10.2 и позже.
-
Объявление
Swift
typealias OBEXTransportEventType = UInt32Objective C
typedef uint32_t OBEXTransportEventType;Обсуждение
Передайте эти типы в OBEXTransportEvent, и затем передайте структуру на объект сеанса, как только Вы заполнили его. Это - то, как можно связаться с сеансом, когда события происходят - если данные будут получены, то тип будет 'kOBEXTransportEventTypeDataReceived'. если ошибка произошла на Вашем транспорте, как удаленная умершая цель, можно отправить событие изменения состояния с ненулевым значением. Так как объекты сеанса получат этот код состояния на своих обработчиках событий, необходимо попытаться передать полезное состояние/код ошибки, такое как значение IOReturn.
Оператор импорта
Objective C
@import IOBluetooth;Swift
import IOBluetoothДоступность
Доступный в OS X v10.2 и позже.
