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

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

Разработчик

XPC Services connection.h Ссылка

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

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

XPC Services connection.h Ссылка

Включенные заголовки

  • <xpc/base.h>

Функции

  • Объявление

    Swift

    func xpc_connection_cancel(_ connection: xpc_connection_t!)

    Objective C

    void xpc_connection_cancel ( xpc_connection_t connection );

    Параметры

    connection

    Объект соединения, которым нужно управлять.

    Обсуждение

    Отмена является асинхронной и неприоритетной, и поэтому этот метод не прервет выполнение уже рабочего блока обработчика событий. Если обработчик событий выполнится во время этого вызова, то он закончится, и затем соединение будет отменено, заставляя заключительный вызов обработчика событий быть запланированным с ошибкой XPC_ERROR_CONNECTION_INVALID. После того вызова не будет никаких дальнейших вызовов обработчика событий.

    Время выполнения XPC гарантирует эту неприоритетность даже для параллельных целевых очередей.

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

    Objective C

    @import XPC;

    Swift

    import XPC

    Доступность

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

  • Объявление

    Swift

    func xpc_connection_create(_ name: UnsafePointer<Int8>, _ targetq: dispatch_queue_t!) -> xpc_connection_t!

    Objective C

    xpc_connection_t xpc_connection_create ( const char *name, dispatch_queue_t targetq );

    Параметры

    name

    Службы если не-NULL, имя, с которой можно соединиться. Возвращенное соединение будет коллегой.

    ЕСЛИ НОЛЬ, будет создаваться анонимное соединение слушателя. Можно встроить возможность создать новые одноранговые подключения в конечной точке, которая может быть вставлена в сообщение и отправлена в другой процесс.

    targetq

    Очередь GCD, которой будет представлен блок обработчика событий. Этим параметром может быть NULL, когда целевая очередь соединения будет целевой очередью libdispatch по умолчанию, определенной как DISPATCH_TARGET_QUEUE_DEFAULT. Целевая очередь может быть изменена позже с вызовом к xpc_connection_set_target_queue ().

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

    Новый объект соединения. Вызывающая сторона ответственна за избавление от возвращенного объекта с xpc_release когда это больше не необходимо.

    Обсуждение

    Даже если именованная служба не будет существовать, этот метод успешно выполнится. Это вызвано тем, что пространство имен XPC не запрашивается для имени службы до первого вызова к xpc_connection_resume ().

    Соединения XPC, как источники отгрузки, возвращаются в состоянии ожидания, таким образом, необходимо вызвать xpc_connection_resume() чтобы начать получать события от соединения. Также как источники отгрузки, соединения должны быть возобновлены, чтобы быть безопасно выпущенными. Это - программная ошибка для выпуска приостановленного соединения.

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

    Objective C

    @import XPC;

    Swift

    import XPC

    Доступность

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

  • Объявление

    Swift

    func xpc_connection_create_from_endpoint(_ endpoint: xpc_endpoint_t!) -> xpc_connection_t!

    Objective C

    xpc_connection_t xpc_connection_create_from_endpoint ( xpc_endpoint_t endpoint );

    Параметры

    endpoint

    Конечная точка, из которой можно создать новое соединение.

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

    Новое одноранговое подключение слушателю представлено данной конечной точкой.

    Та же ответственность установки обработчика событий и возобновления соединения после вызова xpc_connection_create () применяется к соединению, возвращенному этим API. Так как соединение, к которому приводит этот API, не связано с именем (и поэтому не rediscoverable), это соединение получит XPC_ERROR_CONNECTION_INVALID, если сторона слушания разрушит, выйдет или отменит соединение слушателя.

    Обсуждение

    Создает новое соединение из данной конечной точки.

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

    Objective C

    @import XPC;

    Swift

    import XPC

    Доступность

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

  • Объявление

    Swift

    func xpc_connection_create_mach_service(_ name: UnsafePointer<Int8>, _ targetq: dispatch_queue_t!, _ flags: UInt64) -> xpc_connection_t!

    Objective C

    xpc_connection_t xpc_connection_create_mach_service ( const char *name, dispatch_queue_t targetq, uint64_t flags );

    Параметры

    name

    Имя удаленной службы, с которой можно соединиться. Имя службы должно существовать в начальной загрузке Маха, которая доступна для процесса и быть распространенной в launchd.plist.

    targetq

    Очередь GCD, которой будет представлен блок обработчика событий. Этим параметром может быть NULL, когда целевая очередь соединения будет целевой очередью libdispatch по умолчанию, определенной как DISPATCH_TARGET_QUEUE_DEFAULT. Целевая очередь может быть изменена позже с вызовом к xpc_connection_set_target_queue ().

    flags

    Дополнительные атрибуты, с которыми можно создать соединение.

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

    Новый объект соединения.

    Обсуждение

    Если флаг XPC_CONNECTION_MACH_SERVICE_LISTENER дан этому методу, то соединение возвратилось, будет соединение слушателя. Иначе, одноранговое подключение будет возвращено. См. документацию для xpc_connection_set_event_handler() для семантики соединений слушателя по сравнению с одноранговыми подключениями.

    Даже если именованная служба не будет существовать, этот метод успешно выполнится. Это вызвано тем, что пространство имен Маха не запрашивается для имени службы до первого вызова к xpc_connection_resume().

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

    Objective C

    @import XPC;

    Swift

    import XPC

    Доступность

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

  • Объявление

    Swift

    func xpc_connection_get_asid(_ connection: xpc_connection_t!) -> au_asid_t

    Objective C

    au_asid_t xpc_connection_get_asid ( xpc_connection_t connection );

    Параметры

    connection

    Объект соединения, который должен быть исследован.

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

    Контрольный сеанс ID удаленного узла в это время соединение был сделан.

    Обсуждение

    Возвращает контрольный идентификатор сеанса удаленного узла.

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

    Objective C

    @import XPC;

    Swift

    import XPC

    Доступность

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

  • Объявление

    Swift

    func xpc_connection_get_context(_ connection: xpc_connection_t!) -> UnsafeMutablePointer<Void>

    Objective C

    void * xpc_connection_get_context ( xpc_connection_t connection );

    Параметры

    connection

    Соединение, которое должно быть исследовано.

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

    Контекст связался с соединением. NULL, если не было никакого контекста, связанного с объектом.

    Обсуждение

    Возвращает контекст, связанный с соединением.

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

    Objective C

    @import XPC;

    Swift

    import XPC

    Доступность

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

  • Объявление

    Swift

    func xpc_connection_get_egid(_ connection: xpc_connection_t!) -> gid_t

    Objective C

    gid_t xpc_connection_get_egid ( xpc_connection_t connection );

    Параметры

    connection

    Объект соединения, который должен быть исследован.

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

    EGID удаленного узла в это время соединение был сделан.

    Обсуждение

    Возвращает EGID удаленного узла.

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

    Objective C

    @import XPC;

    Swift

    import XPC

    Доступность

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

  • Объявление

    Swift

    func xpc_connection_get_euid(_ connection: xpc_connection_t!) -> uid_t

    Objective C

    uid_t xpc_connection_get_euid ( xpc_connection_t connection );

    Параметры

    connection

    Объект соединения, который должен быть исследован.

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

    EUID удаленного узла в это время соединение был сделан.

    Обсуждение

    Возвращает EUID удаленного узла.

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

    Objective C

    @import XPC;

    Swift

    import XPC

    Доступность

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

  • Объявление

    Swift

    func xpc_connection_get_name(_ connection: xpc_connection_t!) -> UnsafePointer<Int8>

    Objective C

    const char * xpc_connection_get_name ( xpc_connection_t connection );

    Параметры

    connection

    Объект соединения, который должен быть исследован.

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

    Имя удаленной службы. При получении соединения через вызов обработчика событий другого соединения NULL возвращается.

    Обсуждение

    Возвращает имя службы, с которой соединения создавался.

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

    Objective C

    @import XPC;

    Swift

    import XPC

    Доступность

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

  • Объявление

    Swift

    func xpc_connection_get_pid(_ connection: xpc_connection_t!) -> pid_t

    Objective C

    pid_t xpc_connection_get_pid ( xpc_connection_t connection );

    Параметры

    connection

    Объект соединения, который должен быть исследован.

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

    PID удаленного узла.

    Обсуждение

    Данный PID, как гарантируют, не будет уникален через весь цикл начальной загрузки. Необходимо соблюдать особую осторожность при контакте с этой информацией, поскольку это может пойти устаревшее после того, как установлено соединение. Mac OS X перерабатывает PIDs, и поэтому другой процесс мог породить и требовать PID, прежде чем сообщение будет фактически получено от соединения.

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

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

    Objective C

    @import XPC;

    Swift

    import XPC

    Доступность

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

  • Объявление

    Swift

    func xpc_connection_resume(_ connection: xpc_connection_t!)

    Objective C

    void xpc_connection_resume ( xpc_connection_t connection );

    Параметры

    connection

    Объект соединения, которым нужно управлять.

    Обсуждение

    Для соединения для становления живым каждый вызов к xpc_connection_suspend () должен быть сбалансирован с вызова к xpc_connection_resume () после начального вызова xpc_connection_resume (). После того, как начальное резюме о соединении, вызывая xpc_connection_resume () больше раз, чем xpc_connection_suspend () вызвали, считается ошибкой.

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

    Objective C

    @import XPC;

    Swift

    import XPC

    Доступность

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

  • Объявление

    Swift

    func xpc_connection_send_barrier(_ connection: xpc_connection_t!, _ barrier: dispatch_block_t!)

    Objective C

    void xpc_connection_send_barrier ( xpc_connection_t connection, dispatch_block_t barrier );

    Параметры

    connection

    Соединение, против которого должен быть выпущен барьер.

    barrier

    Блок барьера для выпуска. Этот барьер предотвращает параллельное сообщение - отправляют действие на соединении. В то время как блок барьера выполняется, никакие сообщения не будут отправлены.

    Обсуждение

    XPC гарантирует, что, даже если целевая очередь соединения является параллельной очередью, нет никаких других сообщений, отправляемых одновременно, в то время как выполняется блок барьера. XPC не гарантирует, что получение сообщений (или через обработчик событий соединения или через обработчики ответа) будет приостановлено, в то время как выполняется барьер.

    Барьер выпущен относительно сообщения - отправляют очередь. Таким образом, если Вы вызовете xpc_connection_send_message () пять раз и затем вызовете xpc_connection_send_barrier (), то барьер будет вызван после того, как пятое сообщение было отправлено, и от его памяти избавляются. Можно безопасно отменить соединение из блока барьера.

    Если барьер выпущен после отправки сообщения, ожидающего ответ, поведение совпадает с описанный выше. Когда барьер будет работать, получение ответного сообщения не будет влиять.

    Блок барьера может быть полезен для регулировки потребления ресурсов на связанной стороне соединения. Например, если Ваше соединение отправляет много больших сообщений, можно использовать барьер для ограничения числа сообщений, которые в полете в любой момент времени. Это может быть особенно полезно для сообщений, содержащих ресурсы ядра (как дескрипторы файлов), которые имеют предел в масштабе всей системы.

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

    Важно отметить, что порядок выполнения блока барьера не гарантируется относительно других блоков, запланированных на целевую очередь соединения. Или сказал по-другому, xpc_connection_send_barrier (3) не эквивалентно dispatch_async (3).

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

    Objective C

    @import XPC;

    Swift

    import XPC

    Доступность

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

  • Объявление

    Swift

    func xpc_connection_send_message(_ connection: xpc_connection_t!, _ message: xpc_object_t!)

    Objective C

    void xpc_connection_send_message ( xpc_connection_t connection, xpc_object_t message );

    Параметры

    connection

    Соединение, по которому должно быть отправлено сообщение.

    message

    Сообщение для отправки. Это должно быть объектом словаря. Этот словарь логически копируется соединением, таким образом, безопасно изменить словарь после этого вызова.

    Обсуждение

    Сообщения передаются в порядке FIFO. Этот API безопасно вызвать от многократных очередей GCD. Нет никакой индикации, что сообщение было передано успешно. Это вызвано тем, что даже, как только сообщение успешно ставилось в очередь на удаленном конце, нет никаких гарантий о том, когда время выполнения исключит сообщение из очереди и вызовет блок обработчика событий другого соединения.

    Если этот API используется для отправки сообщения, которое является в ответ на другое сообщение, нет никакой гарантии упорядочивания между вызовами обработчика событий соединения и обработчика ответа для того сообщения, даже если они предназначены той же очереди.

    После обширного исследования мы нашли, что клиенты, интересующиеся состоянием сообщения на конце сервера, обычно содержат открытые транзакции, связанные с тем сообщением. И единственный надежный способ отследить время жизни той транзакции на протокольном уровне. Таким образом, сервер должен отправить ответное сообщение, которое после получения, заставит клиент заключать его сделку.

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

    Objective C

    @import XPC;

    Swift

    import XPC

    Доступность

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

  • Объявление

    Swift

    func xpc_connection_send_message_with_reply(_ connection: xpc_connection_t!, _ message: xpc_object_t!, _ replyq: dispatch_queue_t!, _ handler: xpc_handler_t!)

    Objective C

    void xpc_connection_send_message_with_reply ( xpc_connection_t connection, xpc_object_t message, dispatch_queue_t replyq, xpc_handler_t handler );

    Параметры

    connection

    Соединение, по которому должно быть отправлено сообщение.

    message

    Сообщение для отправки. Это должно быть объектом словаря.

    replyq

    Очередь GCD, которой будет представлен обработчик ответа. Это может быть параллельной очередью.

    handler

    Блок обработчика для вызова, когда ответ на сообщение получен от соединения. Если удаленная служба выходит преждевременно, прежде чем ответ был получен, ошибка XPC_ERROR_CONNECTION_INTERRUPTED будет возвращена. Если соединение пошло недопустимое, прежде чем сообщение могло бы быть отправлено, ошибка XPC_ERROR_CONNECTION_INVALID будет возвращена.

    Обсуждение

    Если данная очередь GCD будет параллельной очередью, то XPC не может гарантировать, что не будет многократных обработчиков ответа, вызываемых одновременно. XPC не гарантирует упорядочивания для вызова ответа handers. Таким образом, если многократные сообщения ожидают ответов, и соединение идет недопустимое, нет никакой гарантии, что обработчики ответа будут вызваны в порядке FIFO. Точно так же XPC не гарантирует, что обработчики ответа не будут работать одновременно с обработчиком событий соединения в случае, что очередь ответа и целевая очередь соединения являются той же параллельной очередью.

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

    Objective C

    @import XPC;

    Swift

    import XPC

    Доступность

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

  • Объявление

    Swift

    func xpc_connection_send_message_with_reply_sync(_ connection: xpc_connection_t!, _ message: xpc_object_t!) -> xpc_object_t!

    Objective C

    xpc_object_t xpc_connection_send_message_with_reply_sync ( xpc_connection_t connection, xpc_object_t message );

    Параметры

    connection

    Соединение, по которому должно быть отправлено сообщение.

    message

    Сообщение для отправки. Это должно быть объектом словаря.

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

    Сообщение, что удаленная служба отправила в ответ на исходное сообщение. Если удаленная служба выходит преждевременно, прежде чем ответ был получен, ошибка XPC_ERROR_CONNECTION_INTERRUPTED будет возвращена. Если соединение пошло недопустимое, прежде чем сообщение могло бы быть отправлено, ошибка XPC_ERROR_CONNECTION_INVALID будет возвращена.

    Вы ответственны за выпуск возвращенного объекта.

    Обсуждение

    Этот API прежде всего в переходных целях. Его реализация концептуально эквивалентна вызову xpc_connection_send_message_with_reply () и затем сразу блокирование вызывающего потока на семафоре и сигнализации семафора от блока ответа.

    Будьте разумны о своем использовании этого API. Это может блокировать неопределенно, поэтому при использовании его для реализации API, который можно вызвать от основного потока, можно хотеть рассмотреть разрешение API взять очередь и блок обратного вызова так, чтобы результаты могли быть поставлены asynchrously, если это возможно.

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

    Objective C

    @import XPC;

    Swift

    import XPC

    Доступность

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

  • Объявление

    Swift

    func xpc_connection_set_context(_ connection: xpc_connection_t!, _ context: UnsafeMutablePointer<Void>)

    Objective C

    void xpc_connection_set_context ( xpc_connection_t connection, void *context );

    Параметры

    connection

    Соединение, которым нужно управлять.

    context

    Контекст для соединения с соединением.

    Обсуждение

    Если необходимо управлять памятью объекта контекста, необходимо установить финализатор для избавления от него. Если этот метод вызовут на соединении, которому уже связали контекст с ним, то финализатор НЕ будет вызван. Когда соединение освобождается, финализатор только вызывается.

    Рекомендуется, чтобы, вместо того, чтобы изменить фактический указатель контекста связался с объектом, Вы вместо этого изменяете состояние самого объекта контекста.

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

    Objective C

    @import XPC;

    Swift

    import XPC

    Доступность

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

  • Объявление

    Swift

    func xpc_connection_set_event_handler(_ connection: xpc_connection_t!, _ handler: xpc_handler_t!)

    Objective C

    void xpc_connection_set_event_handler ( xpc_connection_t connection, xpc_handler_t handler );

    Параметры

    connection

    Объект соединения, которым нужно управлять.

    handler

    Блок обработчика событий.

    Обсуждение

    Установка обработчика событий является асинхронной и неприоритетной, и поэтому этот метод не прервет выполнение уже рабочего блока обработчика событий. Если обработчик событий выполнится во время этого вызова, то он закончится, и затем обработчик событий соединения будет изменен перед следующим вызовом обработчика событий. Время выполнения XPC гарантирует эту неприоритетность даже для параллельных целевых очередей.

    Обработчики событий соединения неповторно используемы, таким образом, безопасно вызвать xpc_connection_set_event_handler () из блока обработчика событий.

    Выполнение обработчика событий должно быть обработано как барьер для всего действия соединения. Когда это выполнится, соединение не попытается отправить или получить сообщения, включая ответные сообщения. Таким образом не безопасно вызвать xpc_connection_send_message_with_reply_sync () на соединении из обработчика событий.

    Вы не содержите ссылку на объекте, полученном как единственный параметр обработчика событий. Независимо от типа полученного объекта безопасно вызвать xpc_retain () на объекте получить ссылку на него.

    Соединение может получить различные события в зависимости от того, является ли это слушателем или нет. Любое соединение может получить ошибку в своем обработчике событий. Но в то время как нормальные соединения могут получить сообщения в дополнение к ошибкам, соединения слушателя получат соединения и и не сообщения.

    Соединения, полученные слушателями, эквивалентны возвращенным xpc_connection_create () с параметром имени не-NULL и NULL targetq параметр за исключением того, что Вы не содержите ссылку на них. Необходимо установить обработчик событий и возобновить соединение. Если Вы не хотите принимать соединение, можно просто вызвать xpc_connection_cancel () на нем и возврат. Время выполнения избавится от него для Вас.

    Если будет ошибка в соединении, то этот обработчик будет вызван с ошибочным словарем как его параметр. Этот словарь будет одним из известных словарей XPC_ERROR_*.

    Независимо от типа события неявно не передается владение объекта-события. Таким образом объект будет выпущен и освобожден в некоторый момент в будущем после возвратов обработчика событий. Если Вы хотите, чтобы время жизни события сохранилось, необходимо сохранить его с xpc_retain ().

    Соединения, полученные через обработчик событий, будут выпущены и освобождены после того, как соединение пошло недопустимое и поставило то событие своему обработчику событий.

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

    Objective C

    @import XPC;

    Swift

    import XPC

    Доступность

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

  • Объявление

    Swift

    func xpc_connection_set_finalizer_f(_ connection: xpc_connection_t!, _ finalizer: xpc_finalizer_t)

    Objective C

    void xpc_connection_set_finalizer_f ( xpc_connection_t connection, xpc_finalizer_t finalizer );

    Параметры

    connection

    Соединение, на котором можно установить финализатор.

    finalizer

    Функция, которая будет вызвана, когда соединение сохранят количество, опустилась до нуля и разъединяется.

    Обсуждение

    Для многого использования объектов контекста этот API допускает удобное сокращение для освобождения их. Например, для объекта контекста, выделенного с malloc (3):

    xpc_connection_set_finalizer_f (объект, свободный);

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

    Objective C

    @import XPC;

    Swift

    import XPC

    Доступность

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

  • Объявление

    Swift

    func xpc_connection_set_target_queue(_ connection: xpc_connection_t!, _ targetq: dispatch_queue_t!)

    Objective C

    void xpc_connection_set_target_queue ( xpc_connection_t connection, dispatch_queue_t targetq );

    Параметры

    connection

    Объект соединения, которым нужно управлять.

    targetq

    Очередь GCD, которой будет представлен блок обработчика событий. Этим параметром может быть NULL, когда целевая очередь соединения будет целевой очередью libdispatch по умолчанию, определенной как DISPATCH_TARGET_QUEUE_DEFAULT.

    Обсуждение

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

    Время выполнения XPC гарантирует эту неприоритетность даже для параллельных целевых очередей. Если целевая очередь будет параллельной очередью, то XPC все еще гарантирует, что никогда не будет больше чем одного вызова блока обработчика событий соединения, выполняющегося одновременно. Если Вы хотите обработать события одновременно, Вы можете dispatch_async (3) параллельной очереди из обработчика событий.

    IMPORTANT: Когда вызвано из блока обработчика событий, dispatch_get_current_queue (3), КАК гарантируют, не возвратит указатель на набор очереди с этим методом.

    Несмотря на это кажущееся несоответствие, время выполнения XPC гарантирует, что, когда целевая очередь является последовательной очередью, блок обработчика событий выполнится synchonously относительно других блоков, представленных той же самой очереди. Когда целевая очередь является параллельной очередью, блок обработчика событий может работать одновременно с другими блоками, представленными той очереди, но это никогда не будет работать одновременно с другими вызовами себя для того же соединения, как обсуждено ранее.

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

    Objective C

    @import XPC;

    Swift

    import XPC

    Доступность

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

  • Объявление

    Swift

    func xpc_connection_suspend(_ connection: xpc_connection_t!)

    Objective C

    void xpc_connection_suspend ( xpc_connection_t connection );

    Параметры

    connection

    Объект соединения, которым нужно управлять.

    Обсуждение

    Приостановка является асинхронной и неприоритетной, и поэтому этот метод не прервет выполнение уже рабочего блока обработчика событий. Если обработчик событий выполнится во время этого вызова, то он закончится, и затем соединение будет приостановлено перед следующим запланированным вызовом обработчика событий. Время выполнения XPC гарантирует эту неприоритетность даже для параллельных целевых очередей.

    Обработчики событий соединения неповторно используемы, таким образом, безопасно вызвать xpc_connection_suspend () из блока обработчика событий.

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

    Objective C

    @import XPC;

    Swift

    import XPC

    Доступность

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

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

  • Объявление

    Objective C

    typedef void ( *xpc_finalizer_t)( void *value);

    Параметры

    value

    Объект контекста, от которого нужно избавиться.

    Обсуждение

    Должна быть освобождена функция, вызывающаяся, когда соединение разъединяется и его контекст. Не безопасно сослаться на соединение из этой функции.

    См. также

    xpc_finalizer_t

  • Объявление

    Swift

    typealias xpc_finalizer_t = CFunctionPointer<((UnsafeMutablePointer<Void>) -> Void)>

    Objective C

    typedef void ( *xpc_finalizer_t)( void *value);

    Параметры

    value

    Объект контекста, от которого нужно избавиться.

    Обсуждение

    Должна быть освобождена функция, вызывающаяся, когда соединение разъединяется и его контекст. Не безопасно сослаться на соединение из этой функции.

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

    Objective C

    @import XPC;

    Swift

    import XPC

    Доступность

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

    См. также

    xpc_finalizer_f

Константы

Посмотрите раздел Overview выше для документации уровня заголовка.

  • Объявление

    Swift

    var XPC_CONNECTION_MACH_SERVICE_LISTENER: Int32 { get } var XPC_CONNECTION_MACH_SERVICE_PRIVILEGED: Int32 { get }

    Objective C

    #define XPC_CONNECTION_MACH_SERVICE_LISTENER (1 << 0) #define XPC_CONNECTION_MACH_SERVICE_PRIVILEGED (1 << 1) #define XPC_ERROR_CONNECTION_INTERRUPTED \ XPC_GLOBAL_OBJECT(_xpc_error_connection_interrupted) #define XPC_ERROR_CONNECTION_INVALID \ XPC_GLOBAL_OBJECT(_xpc_error_connection_invalid) #define XPC_ERROR_TERMINATION_IMMINENT \ XPC_GLOBAL_OBJECT(_xpc_error_termination_imminent)

    Константы

    • XPC_CONNECTION_MACH_SERVICE_LISTENER

      XPC_CONNECTION_MACH_SERVICE_LISTENER

      Переданный xpc_connection_create_mach_service (). Этот флаг указывает, что вызывающая сторона является слушателем для именованной службы. Этот флаг может только быть передан для служб, распространенных в launchd.plist процесса (5). Вы не можете использовать этот флаг для динамичного добавления служб к пространству имен начальной загрузки Маха.

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

    • XPC_CONNECTION_MACH_SERVICE_PRIVILEGED

      XPC_CONNECTION_MACH_SERVICE_PRIVILEGED

      Переданный xpc_connection_create_mach_service (). Этот флаг указывает, что задание, распространяя имя службы в его launchd.plist (5) должно быть в привилегированной начальной загрузке Маха. Это обычно выполняется путем размещения launchd.plist (5) в/Library/LaunchDaemons. Если указано рядом с флагом XPC_CONNECTION_MACH_SERVICE_LISTENER, этот флаг нет.

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

    • XPC_ERROR_CONNECTION_INTERRUPTED

      XPC_ERROR_CONNECTION_INTERRUPTED

      Если удаленная служба вышла, будет поставлен обработчику событий соединения. Соединение, все еще живут даже в этом случае, и повторная отправка сообщения заставит службу быть запущенной по требованию. Эта ошибка служит индикацией клиента, что она должна ресинхронизировать любое состояние, что она дала службу.

      Любые сообщения в очереди, которая будет отправлена, будут раскручены и отменены, когда произойдет эта ошибка. В случае, где сообщение, ожидающее, чтобы быть отправленным, имеет обработчик ответа, тот обработчик будет вызван с этой ошибкой. В контексте обработчика ответа эта ошибка указывает, что никогда не будет наступать ответ на сообщение.

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

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

    • XPC_ERROR_CONNECTION_INVALID

      XPC_ERROR_CONNECTION_INVALID

      Если именованная услуга, предоставленная xpc_connection_create (), не могла бы быть найдена в пространстве имен службы XPC, будет поставлен обработчику событий соединения. Соединение бесполезно и должно быть избавлено.

      Любые сообщения в очереди, которая будет отправлена, будут раскручены и отменены, когда эта ошибка произойдет, так же к поведению, когда происходит XPC_ERROR_CONNECTION_INTERRUPTED. Единственная разница - то, что XPC_ERROR_CONNECTION_INVALID будет дан выдающимся обработчикам ответа и обработчику событий соединения.

      Эта ошибка может быть дана любому типу соединения.

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

    • XPC_ERROR_TERMINATION_IMMINENT

      XPC_ERROR_TERMINATION_IMMINENT

      Эта ошибка будет поставлена обработчику событий однорангового подключения, когда время выполнения XPC решило, что программа должна выйти и что все выдающиеся транзакции должны быть сведены на нет, и никакие новые транзакции не могут быть открыты.

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

      Эта ошибка будет только поставлена одноранговым подключениям, полученным через слушателя или xpc_main () обработчик событий.

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