Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека разработчика Mac

Разработчик

Ссылка платформы CoreFoundation ссылка CFMachPort

Опции
Развертывание Target:

На этой странице
Язык:

Ссылка CFMachPort

Объект CFMachPort является оберткой для порта собственного компонента Маха (mach_port_t). Порты Маха являются собственным каналом передачи для ядра OS X.

CFMachPort не обеспечивает функцию для отправки сообщений, таким образом, Вы прежде всего используете объект CFMachPort, если необходимо слушать порт Маха, который Вы получили другими средними значениями. Можно получить обратный вызов, когда сообщение поступает в порт или когда порт становится недопустимым, такой как тогда, когда умирает собственный порт.

Для прислушиваний к сообщениям, необходимо создать источник цикла выполнения с CFMachPortCreateRunLoopSource и добавьте его к циклу выполнения с CFRunLoopAddSource.

Для отправки данных необходимо использовать Маха APIs с портом собственного компонента Маха, не описанным здесь. Также можно использовать Ссылочный объект CFMessagePort, который может отправить произвольные данные.

Порты Маха только поддерживают коммуникацию на локальной машине. Для сетевой связи необходимо использовать Ссылочный объект CFSocket.

Функции

  • Создает объект CFMachPort с новым портом Маха.

    Объявление

    Swift

    func CFMachPortCreate(_ allocator: CFAllocator!, _ callout: CFMachPortCallBack, _ context: UnsafeMutablePointer<CFMachPortContext>, _ shouldFreeInfo: UnsafeMutablePointer<Boolean>) -> CFMachPort!

    Objective C

    CFMachPortRef CFMachPortCreate ( CFAllocatorRef allocator, CFMachPortCallBack callout, CFMachPortContext *context, Boolean *shouldFreeInfo );

    Параметры

    allocator

    Средство выделения для использования для выделения памяти для нового объекта. Передача NULL или kCFAllocatorDefault использовать текущее средство выделения по умолчанию.

    callout

    Когда сообщение получено на новом порту Маха, функция обратного вызова вызвала.

    context

    Структура, содержащая контекстную информацию для нового порта Маха. Функция копирует информацию из структуры, таким образом, память, которой указывают context не должен сохраняться вне вызова функции.

    shouldFreeInfo

    Флаг, установленный функцией указать, ли info элемент context должен быть освобожден. Флаг установлен в true при отказе, false иначе. shouldFreeInfo может быть NULL.

    Возвращаемое значение

    Новые CFMachPort возражают или NULL при отказе. Объект CFMachPort имеет, и отправьте и получите права. Владение соблюдает Создать Правило.

    Оператор импорта

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Создает объект CFMachPort для существующего ранее порта собственного компонента Маха.

    Объявление

    Swift

    func CFMachPortCreateWithPort(_ allocator: CFAllocator!, _ portNum: mach_port_t, _ callout: CFMachPortCallBack, _ context: UnsafeMutablePointer<CFMachPortContext>, _ shouldFreeInfo: UnsafeMutablePointer<Boolean>) -> CFMachPort!

    Objective C

    CFMachPortRef CFMachPortCreateWithPort ( CFAllocatorRef allocator, mach_port_t portNum, CFMachPortCallBack callout, CFMachPortContext *context, Boolean *shouldFreeInfo );

    Параметры

    allocator

    Средство выделения для использования для выделения памяти для нового объекта. Передача NULL или kCFAllocatorDefault использовать текущее средство выделения по умолчанию.

    portNum

    Порт собственного компонента Маха для использования.

    callout

    Когда сообщение получено на порту Маха, функция обратного вызова вызвала.

    context

    Структура, содержащая контекстную информацию для порта Маха. Функция копирует информацию из структуры, таким образом, память, которой указывают context не должен сохраняться вне вызова функции.

    shouldFreeInfo

    Флаг, установленный функцией указать, ли info элемент context должен быть освобожден. Флаг установлен в true при отказе или если объект CFMachPort уже существует для portNum, false иначе. shouldFreeInfo может быть NULL.

    Возвращаемое значение

    Новые CFMachPort возражают или NULL при отказе. Если объект CFMachPort уже существует для portNum, функция возвращает существующий ранее объект вместо того, чтобы создать новый объект; context и callout параметры проигнорированы в этом случае. Владение соблюдает Создать Правило.

    Обсуждение

    Объект CFMachPort не берет полное владение отправления и получает права на порт Маха portNum. Это - ответственность вызывающей стороны освободить права порта Маха после того, как объект CFMachPort больше не будет необходим и будет лишен законной силы.

    Оператор импорта

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Лишает законной силы объект CFMachPort, мешая ему больше получать сообщения.

    Объявление

    Swift

    func CFMachPortInvalidate(_ port: CFMachPort!)

    Objective C

    void CFMachPortInvalidate ( CFMachPortRef port );

    Параметры

    port

    CFMachPort возражают для лишения законной силы.

    Обсуждение

    Лишение законной силы объекта CFMachPort предотвращает порт от когда-либо получения, больше обменивается сообщениями. Объект CFMachPort не освобожден, все же. Если порт не был уже лишен законной силы, функция обратного вызова аннулирования порта вызывается, если Вы были установлены с CFMachPortSetInvalidationCallBack. CFMachPortContext info информация для port если обратный вызов выпуска был указан в структуре контекста порта, также выпущен. Наконец, если источник цикла выполнения создавался для port, источник цикла выполнения лишен законной силы, также.

    Если базовый порт Маха уничтожается, объект CFMachPort автоматически лишен законной силы.

    Оператор импорта

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Создает объект CFRunLoopSource для объекта CFMachPort.

    Объявление

    Swift

    func CFMachPortCreateRunLoopSource(_ allocator: CFAllocator!, _ port: CFMachPort!, _ order: CFIndex) -> CFRunLoopSource!

    Objective C

    CFRunLoopSourceRef CFMachPortCreateRunLoopSource ( CFAllocatorRef allocator, CFMachPortRef port, CFIndex order );

    Параметры

    allocator

    Средство выделения для использования для выделения памяти для нового объекта. Передача NULL или kCFAllocatorDefault использовать текущее средство выделения по умолчанию.

    port

    Порт Маха, для которого можно создать объект CFRunLoopSource.

    order

    Показатель приоритета, указывающий порядок, в котором обрабатываются выполненные источники цикла. order в настоящее время игнорируется CFMachPort выполненные источники цикла. Передача 0 для этого значения.

    Возвращаемое значение

    Новые CFRunLoopSource возражают для port. Владение соблюдает Создать Правило.

    Обсуждение

    Источник цикла выполнения автоматически не добавляется к циклу выполнения. Для добавления источника к циклу выполнения использовать CFRunLoopAddSource.

    Оператор импорта

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Когда объект CFMachPort лишен законной силы, устанавливает функцию обратного вызова, вызванную.

    Объявление

    Swift

    func CFMachPortSetInvalidationCallBack(_ port: CFMachPort!, _ callout: CFMachPortInvalidationCallBack)

    Objective C

    void CFMachPortSetInvalidationCallBack ( CFMachPortRef port, CFMachPortInvalidationCallBack callout );

    Параметры

    port

    CFMachPort возражают для изменения.

    callout

    Функция обратного вызова для вызова, когда port лишен законной силы. Передача NULL удалить обратный вызов.

    Обсуждение

    Если port уже недопустимо, callout сразу вызывается.

    Оператор импорта

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Возвращает контекстную информацию для объекта CFMachPort.

    Объявление

    Swift

    func CFMachPortGetContext(_ port: CFMachPort!, _ context: UnsafeMutablePointer<CFMachPortContext>)

    Objective C

    void CFMachPortGetContext ( CFMachPortRef port, CFMachPortContext *context );

    Параметры

    port

    CFMachPort возражают для исследования.

    context

    Указатель тот, на структуру, в который контекстная информация для port должен быть скопирован. Возвращаемой информацией обычно является та же информация, которой Вы передали CFMachPortCreate или CFMachPortCreateWithPort при создании port. Однако, если CFMachPortCreateWithPort возвращенный кэшируемый CFMachPort возражают вместо того, чтобы создать новый объект, context заполнено информацией от исходного объекта CFMachPort вместо информации, которую Вы передали функции.

    Обсуждение

    Номер версии контекста для объектов CFMachPort в настоящее время 0. Прежде, чем вызвать эту функцию, необходимо инициализировать version элемент context к 0.

    Оператор импорта

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Возвращает функцию обратного вызова аннулирования для объекта CFMachPort.

    Объявление

    Swift

    func CFMachPortGetInvalidationCallBack(_ port: CFMachPort!) -> CFMachPortInvalidationCallBack

    Objective C

    CFMachPortInvalidationCallBack CFMachPortGetInvalidationCallBack ( CFMachPortRef port );

    Параметры

    port

    CFMachPort возражают для исследования.

    Возвращаемое значение

    Функция обратного вызова, вызванная, когда port лишен законной силы. NULL если никакой обратный вызов не был установлен с CFMachPortSetInvalidationCallBack.

    Оператор импорта

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Возвращает порт собственного компонента Маха, представленный объектом CFMachPort.

    Объявление

    Swift

    func CFMachPortGetPort(_ port: CFMachPort!) -> mach_port_t

    Objective C

    mach_port_t CFMachPortGetPort ( CFMachPortRef port );

    Параметры

    port

    CFMachPort возражают для исследования.

    Возвращаемое значение

    Порт собственного компонента Маха, представленный port.

    Оператор импорта

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Возвращает булево значение, указывающее, допустим ли объект CFMachPort и в состоянии получить сообщения.

    Объявление

    Swift

    func CFMachPortIsValid(_ port: CFMachPort!) -> Boolean

    Objective C

    Boolean CFMachPortIsValid ( CFMachPortRef port );

    Параметры

    port

    CFMachPort возражают для исследования.

    Возвращаемое значение

    true если port может использоваться для коммуникации, иначе false.

    Оператор импорта

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Возвращает идентификатор типа для CFMachPort непрозрачный тип.

    Объявление

    Swift

    func CFMachPortGetTypeID() -> CFTypeID

    Objective C

    CFTypeID CFMachPortGetTypeID ( void );

    Возвращаемое значение

    Идентификатор типа для CFMachPort непрозрачный тип.

    Оператор импорта

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

Обратные вызовы

  • Обратный вызов, вызванный для обработки сообщения, полученного на объекте CFMachPort.

    Объявление

    Swift

    typealias CFMachPortCallBack = CFunctionPointer<((CFMachPort!, UnsafeMutablePointer<Void>, CFIndex, UnsafeMutablePointer<Void>) -> Void)>

    Objective C

    typedef void (*CFMachPortCallBack) ( CFMachPortRef port, void *msg, CFIndex size, void *info );

    Параметры

    port

    CFMachPort возражают на который сообщение msg был получен.

    msg

    Сообщение Маха, полученное на port. Указатель к a mach_msg_header_t структура.

    size

    Размер сообщения Маха msg, исключая метку конца сообщения.

    info

    info элемент CFMachPortContext структура, используемая при создании port.

    Обсуждение

    Вы указываете этот обратный вызов при создании объекта CFMachPort с также CFMachPortCreate или CFMachPortCreateWithPort. Чтобы получить сообщения на объекте CFMachPort (и вызвать этот обратный вызов), необходимо создать источник цикла выполнения для порта и добавить его к циклу выполнения.

    Оператор импорта

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Когда объект CFMachPort лишен законной силы, обратный вызов вызвал.

    Объявление

    Swift

    typealias CFMachPortInvalidationCallBack = CFunctionPointer<((CFMachPort!, UnsafeMutablePointer<Void>) -> Void)>

    Objective C

    typedef void (*CFMachPortInvalidationCallBack) ( CFMachPortRef port, void *info );

    Параметры

    port

    Лишенный законной силы объект CFMachPort.

    info

    info элемент CFMachPortContext структура, используемая при создании port.

    Обсуждение

    Ваш обратный вызов должен освободить любые ресурсы, выделенные для port.

    Вы указываете этот обратный вызов с CFMachPortSetInvalidationCallBack.

    Оператор импорта

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

Типы данных

Прочие условия

  • Структура, содержащая определенные с помощью программы данные и обратные вызовы, с которыми можно сконфигурировать поведение объекта CFMachPort.

    Объявление

    Swift

    struct CFMachPortContext { var version: CFIndex var info: UnsafeMutablePointer<Void> var retain: CFunctionPointer<((UnsafePointer<Void>) -> UnsafePointer<Void>)> var release: CFunctionPointer<((UnsafePointer<Void>) -> Void)> var copyDescription: CFunctionPointer<((UnsafePointer<Void>) -> Unmanaged<CFString>!)> }

    Objective C

    struct CFMachPortContext { CFIndex version; void *info; CFAllocatorRetainCallBack retain; CFAllocatorReleaseCallBack release; CFAllocatorCopyDescriptionCallBack copyDescription; }; typedef struct CFMachPortContext CFMachPortContext;

    Поля

    version

    Номер версии структуры. Должен быть 0.

    info

    Произвольный указатель на определенные с помощью программы данные, которые могут быть связаны с объектом CFMachPort во время создания. Этот указатель передается всем обратным вызовам, определенным в контексте.

    retain

    Сохранить обратный вызов для Вашего определенного с помощью программы info указатель. Может быть NULL.

    release

    Обратный вызов выпуска для Вашего определенного с помощью программы info указатель. Может быть NULL.

    copyDescription

    Обратный вызов описания копии для Вашего определенного с помощью программы info указатель. Может быть NULL.

    Доступность

    Доступный в OS X v10.0 и позже.

  • Ссылка на объект CFMachPort.

    Объявление

    Swift

    typealias CFMachPortRef = CFMachPort

    Objective C

    typedef struct __CFMachPort *CFMachPortRef;

    Оператор импорта

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.