Ссылка CFHost
API CFHost позволяет, Вы для создания экземпляров CFHost возражаете, что можно использовать для получения информации об узле, включая имена, адреса и информацию о достижимости.
Процесс получения информации об узле известен как разрешение. Начните путем вызова CFHostCreateWithAddress
или CFHostCreateWithName
создать экземпляр CFHost использование адреса или имени, соответственно. Если Вы хотите разрешить узел асинхронно. вызвать CFHostSetClient
связать Ваш клиентский контекст и определяемую пользователем функцию обратного вызова с узлом. Тогда вызовите CFHostScheduleWithRunLoop
запланировать узел на цикл выполнения.
Для запуска разрешения вызвать CFHostStartInfoResolution
. Если Вы устанавливаете для асинхронного разрешения, CFHostStartInfoResolution
возвраты сразу. Когда разрешение будет завершено, Вашу функцию обратного вызова вызовут. Если Вы не устанавливали для асинхронного разрешения, CFHostStartInfoResolution
блоки до разрешения завершены, ошибка происходит, или разрешение отменяется.
Когда разрешение будет завершено, вызвать CFHostGetAddressing
или CFHostGetNames
получить массив известных адресов или известных имен, соответственно, для узла. Вызвать CFHostGetReachability
получить флаги, объявленные в SystemConfiguration/SCNetwork.h
, это описывает достижимость узла.
Когда Вам больше не будет нужен объект CFHost, вызвать CFHostUnscheduleFromRunLoop
и CFHostSetClient
разъединять узел с Вашим определяемым пользователем клиентским контекстом и функцией обратного вызова (если это было установлено для асинхронного разрешения). Тогда избавьтесь от него.
-
Создает новый объект хоста путем копирования.
Объявление
Swift
func CFHostCreateCopy(_
alloc
: CFAllocator!, _addr
: CFHost!) -> Unmanaged<CFHost>!Objective C
CFHostRef CFHostCreateCopy ( CFAllocatorRef alloc, CFHostRef host );
Параметры
alloc
Средство выделения для использования для выделения памяти для нового объекта. Передача
NULL
илиkCFAllocatorDefault
использовать текущее средство выделения по умолчанию.addr
Узел копии. Это значение не должно быть
NULL
.Возвращаемое значение
Допустимый CFHost возражает или
NULL
если не могла бы быть создана копия. Новый узел содержит копию всех ранее разрешенных данных от исходного узла. Владение соблюдает Создать Правило.Специальные замечания
Эта функция ориентирована на многопотоковое исполнение.
Оператор импорта
Objective C
@import CFNetwork;
Swift
import CFNetwork
Доступность
Доступный в версии 10.3 OS X и позже.
-
Использует адрес для создания экземпляра объекта хоста.
Объявление
Swift
func CFHostCreateWithAddress(_
alloc
: CFAllocator!, _addr
: CFData!) -> Unmanaged<CFHost>!Objective C
CFHostRef CFHostCreateWithAddress ( CFAllocatorRef allocator, CFDataRef addr );
Параметры
alloc
Средство выделения для использования для выделения памяти для нового объекта. Передача
NULL
илиkCFAllocatorDefault
использовать текущее средство выделения по умолчанию.addr
Объект CFDataRef, содержащий a
sockaddr
структура для адреса узла. Это значение не должно бытьNULL
.Возвращаемое значение
Допустимый объект CFHostRef, который может быть разрешен, или
NULL
если не мог бы быть создан узел. Владение соблюдает Создать Правило.Обсуждение
Вызвать
CFHostStartInfoResolution
разрешить имя эхо-сигнала и информацию о достижимости.Специальные замечания
Эта функция ориентирована на многопотоковое исполнение.
Оператор импорта
Objective C
@import CFNetwork;
Swift
import CFNetwork
Доступность
Доступный в версии 10.3 OS X и позже.
-
Использует имя для создания экземпляра объекта хоста.
Объявление
Swift
func CFHostCreateWithName(_
alloc
: CFAllocator!, _hostname
: CFString!) -> Unmanaged<CFHost>!Objective C
CFHostRef CFHostCreateWithName ( CFAllocatorRef allocator, CFStringRef hostname );
Параметры
alloc
Средство выделения для использования для выделения памяти для нового объекта. Передача
NULL
илиkCFAllocatorDefault
использовать текущее средство выделения по умолчанию.hostname
Строка, представляющая имя узла. Это значение не должно быть
NULL
.Возвращаемое значение
Допустимый объект CFHostRef, который может быть разрешен, или
NULL
если не мог бы быть создан узел. Владение соблюдает Создать Правило.Обсуждение
Вызвать
CFHostStartInfoResolution
разрешить адреса объекта и информацию о достижимости.Специальные замечания
Эта функция ориентирована на многопотоковое исполнение.
Оператор импорта
Objective C
@import CFNetwork;
Swift
import CFNetwork
Доступность
Доступный в версии 10.3 OS X и позже.
-
Отменяет разрешение узла.
Объявление
Swift
func CFHostCancelInfoResolution(_
theHost
: CFHost!, _info
: CFHostInfoType)Objective C
void CFHostCancelInfoResolution ( CFHostRef theHost, CFHostInfoType info );
Параметры
theHost
Узел, для которого должно быть отменено разрешение. Это значение не должно быть
NULL
.info
Значение типа
CFHostInfoType
указание типа разрешения, которое должно быть отменено. Посмотрите Константы CFHostInfoType для возможных значений.Обсуждение
Эта функция отменяет асинхронное или синхронное разрешение, указанное
info
для узла, указанногоtheHost
.Специальные замечания
Эта функция ориентирована на многопотоковое исполнение.
Оператор импорта
Objective C
@import CFNetwork;
Swift
import CFNetwork
Доступность
Доступный в версии 10.3 OS X и позже.
-
Получает адреса от узла.
Объявление
Swift
func CFHostGetAddressing(_
theHost
: CFHost!, _hasBeenResolved
: UnsafeMutablePointer<Boolean>) -> Unmanaged<CFArray>!Objective C
CFArrayRef CFHostGetAddressing ( CFHostRef theHost, Boolean *hasBeenResolved );
Параметры
theHost
CFHost, адреса которого должны быть получены. Это значение не должно быть
NULL
.hasBeenResolved
По возврату, указателю на булевскую переменную, которая является
TRUE
если адреса были доступны иFALSE
если адреса не были доступны. Этот параметр может быть нулем.function result
CFArray адресов, где адрес является a
sockaddr
структура, обернутая CFDataRef или нулем, если никакие адреса не были доступны.Обсуждение
Эта функция получает адреса от CFHost. CFHost, должно быть, был ранее разрешен. Для разрешения CFHost вызвать
CFHostStartInfoResolution
.Специальные замечания
Эта функция получает адреса ориентированным на многопотоковое исполнение способом, но получающиеся данные не ориентированы на многопотоковое исполнение. Данные возвращаются как то, «чтобы получать» в противоположность копии, таким образом, данные не безопасны, если CFHost изменен от другого потока.
Оператор импорта
Objective C
@import CFNetwork;
Swift
import CFNetwork
Доступность
Доступный в версии 10.3 OS X и позже.
-
Получает имена от CFHost.
Объявление
Swift
func CFHostGetNames(_
theHost
: CFHost!, _hasBeenResolved
: UnsafeMutablePointer<Boolean>) -> Unmanaged<CFArray>!Objective C
CFArrayRef CFHostGetNames ( CFHostRef theHost, Boolean *hasBeenResolved );
Параметры
theHost
Узел для исследования. Узел, должно быть, был ранее разрешен. (Для разрешения узла вызвать
CFHostStartInfoResolution
.) Это значение не должно бытьNULL
.hasBeenResolved
По возврату, содержит
TRUE
если имена были доступны, иначеFALSE
. Это значение может бытьNULL
.Возвращаемое значение
Массив, содержащий имен
theHost
, илиNULL
если никакие имена не были доступны.Специальные замечания
Эта функция получает имена ориентированным на многопотоковое исполнение способом, но получающиеся данные не ориентированы на многопотоковое исполнение. Данные возвращаются как то, «чтобы получать» в противоположность копии, таким образом, данные не безопасны, если CFHost изменен от другого потока.
Оператор импорта
Objective C
@import CFNetwork;
Swift
import CFNetwork
Доступность
Доступный в версии 10.3 OS X и позже.
-
Получает информацию достижимости от узла.
Объявление
Swift
func CFHostGetReachability(_
theHost
: CFHost!, _hasBeenResolved
: UnsafeMutablePointer<Boolean>) -> Unmanaged<CFData>!Параметры
theHost
Узел, достижимость которого должна быть получена. Узел, должно быть, был ранее разрешен. (Для разрешения узла вызвать
CFHostStartInfoResolution
.) Это значение не должно бытьNULL
.hasBeenResolved
По возврату, содержит
TRUE
если достижимость была доступна, иначеFALSE
. Это значение может бытьNULL
.Возвращаемое значение
CFData возражает, что обертывает флаги достижимости (
SCNetworkConnectionFlags
) определенный вSystemConfiguration/SCNetwork.h
, илиNULL
если информация о достижимости не была доступна.Специальные замечания
Эта функция получает информацию достижимости ориентированным на многопотоковое исполнение способом, но получающиеся данные не ориентированы на многопотоковое исполнение. Данные возвращаются как то, «чтобы получать» в противоположность копии, таким образом, данные не безопасны, если CFHost изменен от другого потока.
Оператор импорта
Objective C
@import CFNetwork;
Swift
import CFNetwork
Доступность
Доступный в версии 10.3 OS X и позже.
-
Запускает разрешение для объекта хоста.
Объявление
Swift
func CFHostStartInfoResolution(_
theHost
: CFHost!, _info
: CFHostInfoType, _error
: UnsafeMutablePointer<CFStreamError>) -> BooleanObjective C
Boolean CFHostStartInfoResolution ( CFHostRef theHost, CFHostInfoType info, CFStreamError *error );
Параметры
theHost
Узел, полученный путем предыдущего вызова
CFHostCreateCopy
,CFHostCreateWithAddress
, илиCFHostCreateWithName
, это должно быть разрешено. Это значение не должно бытьNULL
.info
Значение типа
CFHostInfoType
указание типа информации, которая должна быть получена. Посмотрите Константы CFHostInfoType для возможных значений.error
Указатель на a
CFStreamError
структура, что, если ошибка происходит, установлена в ошибку и домен ошибки. В синхронном режиме ошибка указывает, почему разрешение, неработающее, и в асинхронном режиме, ошибка указывает, почему разрешению не удалось запуститься.Возвращаемое значение
TRUE
если разрешение было запущено (асинхронный режим);FALSE
если другое разрешение уже происходит дляtheHost
или если произошла ошибка.Обсуждение
Эта функция получает информацию, указанную
info
и хранилища это в узле.В синхронном режиме это завершились функциональные блоки до разрешения, когда возвращается эта функция
TRUE
, пока разрешение не останавливается путем вызоваCFHostCancelInfoResolution
от другого потока, когда возвращается эта функцияFALSE
, или пока ошибка не происходит.Специальные замечания
Эта функция ориентирована на многопотоковое исполнение.
Оператор импорта
Objective C
@import CFNetwork;
Swift
import CFNetwork
Доступность
Доступный в версии 10.3 OS X и позже.
-
Связывает клиентский контекст, и функция обратного вызова с CFHost возражают, или разъединяет ранее установленные клиентский контекст и функцию обратного вызова.
Объявление
Swift
func CFHostSetClient(_
theHost
: CFHost!, _clientCB
: CFHostClientCallBack, _clientContext
: UnsafeMutablePointer<CFHostClientContext>) -> BooleanObjective C
Boolean CFHostSetClient ( CFHostRef theHost, CFHostClientCallBack clientCB, CFHostClientContext *clientContext );
Параметры
theHost
Узел для изменения. Значение не должно быть
NULL
.clientCB
Функция обратного вызова для соединения с
theHost
. Когда разрешение завершится или будет отменено, функцию обратного вызова вызовут. Если Вы вызываете эту функцию для разъединения клиентского контекста и обратного вызова отtheHost
, pclientCB
задницаNULL
.clientContext
A
CFHostClientContext
структура, чейinfo
поле будет передано функции обратного вызова, указаннойclientCB
когдаclientCB
вызывается. Это значение не должно бытьNULL
при установке ассоциации.Передача
NULL
при разъединении клиентского контекста и обратного вызова от узла.Возвращаемое значение
TRUE
если ассоциация могла бы быть установлена или сброшена, иначеFALSE
.Обсуждение
Функция обратного вызова, указанная
clientCB
когда разрешение завершится или будет отменено, будет вызван.Специальные замечания
Эта функция ориентирована на многопотоковое исполнение.
Оператор импорта
Objective C
@import CFNetwork;
Swift
import CFNetwork
Доступность
Доступный в версии 10.3 OS X и позже.
-
Планирует CFHost на цикл выполнения.
Объявление
Swift
func CFHostScheduleWithRunLoop(_
theHost
: CFHost!, _runLoop
: CFRunLoop!, _runLoopMode
: CFString!)Objective C
void CFHostScheduleWithRunLoop ( CFHostRef theHost, CFRunLoopRef runLoop, CFStringRef runLoopMode );
Параметры
theHost
Узел, чтобы быть расписанием на цикле выполнения. Это значение не должно быть
NULL
.runLoop
Цикл выполнения, на который можно запланировать
theHost
. Это значение не должно бытьNULL
.runLoopMode
Режим, на который можно запланировать
theHost
. Это значение не должно бытьNULL
.Обсуждение
Расписания
theHost
на цикле выполнения, заставляющем разрешения узла выполняться асинхронно. Вызывающая сторона ответственна за обеспечение, что выполняется по крайней мере один из циклов выполнения, на которые планируется узел.Специальные замечания
Эта функция ориентирована на многопотоковое исполнение.
Оператор импорта
Objective C
@import CFNetwork;
Swift
import CFNetwork
Доступность
Доступный в версии 10.3 OS X и позже.
-
Не планирует CFHost от цикла выполнения.
Объявление
Swift
func CFHostUnscheduleFromRunLoop(_
theService
: CFHost!, _runLoop
: CFRunLoop!, _runLoopMode
: CFString!)Objective C
void CFHostUnscheduleFromRunLoop ( CFHostRef theHost, CFRunLoopRef runLoop, CFStringRef runLoopMode );
Параметры
theService
Узел нерасписания. Это значение не должно быть
NULL
.runLoop
Цикл выполнения. Это значение не должно быть
NULL
.runLoopMode
Режим, от которого служба должна быть не запланирована. Это значение не должно быть
NULL
.Специальные замечания
Эта функция ориентирована на многопотоковое исполнение.
Оператор импорта
Objective C
@import CFNetwork;
Swift
import CFNetwork
Доступность
Доступный в версии 10.3 OS X и позже.
-
Получает Базовый идентификатор типа Основы для непрозрачного типа CFHost.
Возвращаемое значение
Базовый идентификатор типа Основы для непрозрачного типа CFHost.
Специальные замечания
Эта функция ориентирована на многопотоковое исполнение.
Оператор импорта
Objective C
@import CFNetwork;
Swift
import CFNetwork
Доступность
Доступный в версии 10.3 OS X и позже.
-
Определяет указатель на функцию обратного вызова, которую вызывают, когда асинхронное разрешение CFHost завершается, или ошибка происходит для асинхронного разрешения CFHost.
Объявление
Swift
typealias CFHostClientCallBack = CFunctionPointer<((CFHost!, CFHostInfoType, UnsafePointer<CFStreamError>, UnsafeMutablePointer<Void>) -> Void)>
Objective C
typedef void (CFHostClientCallBack) ( CFHostRef theHost, CFHostInfoType typeInfo, const CFStreamError *error, void *info);
Параметры
theHost
Узел, для которого было завершено асинхронное разрешение.
typeInfo
Значение типа
CFHostInfoType
представление типа информации (адреса, имена или информация о достижимости) полученный завершенным разрешением. Посмотрите Константы CFHostInfoType для возможных значений.error
Если отказавшее разрешение, содержит a
CFStreamError
структура, чейerror
поле содержит код ошибки.info
Определяемая пользователем контекстная информация. Значение, которым указывают
info
совпадает со значением, на которое указываютinfo
полеCFHostClientContext
структура, которая была предоставлена, когда узел был связан с этой функцией обратного вызова.Обсуждение
Функцию обратного вызова для объекта CFHost вызывают один или несколько раз, когда асинхронное разрешение завершается для указанного узла, когда асинхронное разрешение отменяется, или когда ошибка происходит во время асинхронного разрешения.
Оператор импорта
Objective C
@import CFNetwork;
Swift
import CFNetwork
Доступность
Доступный в версии 10.3 OS X и позже.
-
Непрозрачная ссылка, представляющая объект CFHost.
Объявление
Swift
typealias CFHostRef = CFHost
Objective C
typedef struct __CFHost* CFHostRef;
Доступность
Доступный в версии 10.3 OS X и позже.
-
Структура, содержащая определяемые пользователем данные и обратные вызовы для объектов CFHost.
Объявление
Swift
struct CFHostClientContext { var version: CFIndex var info: UnsafeMutablePointer<Void> var retain: CFAllocatorRetainCallBack var release: CFAllocatorReleaseCallBack var copyDescription: CFAllocatorCopyDescriptionCallBack }
Objective C
struct CFHostClientContext { CFIndex version; void *info; CFAllocatorRetainCallBack retain; CFAllocatorReleaseCallBack release; CFAllocatorCopyDescriptionCallBack copyDescription; } CFHostClientContext; typedef struct CFHostClientContext CFHostClientContext;
Поля
version
Номер версии типа структуры передал в качестве параметра клиентской функции узла. Единственное число действительной версии
0
.info
Произвольный указатель на выделенную память, содержащую определяемые пользователем данные, которые могут быть связаны с узлом и это передается обратным вызовам.
retain
Обратный вызов раньше добавлял сохранение для узла на информационном указателе для жизни узла и может использоваться для временных ссылок, которые должен взять узел. Этот обратный вызов возвращает фактический информационный указатель для хранения в узле, почти всегда просто указатель передавал как параметр.
release
Обратный вызов раньше удалял сохранение ранее добавленного для узла на информационном указателе.
copyDescription
Обратный вызов раньше создавал представление описательной строки информационного указателя (или данные, на которые указывает информационный указатель) для отладки целей. Этот обратный вызов вызывают
CFCopyDescription
функция.Доступность
Доступный в версии 10.3 OS X и позже.
-
Значения, указывающие тип данных, которые должны быть разрешены или тип разрешенных данных.
Объявление
Swift
enum CFHostInfoType : Int32 { case Addresses case Names case Reachability }
Objective C
enum CFHostInfoType { kCFHostAddresses = 0, kCFHostNames = 1, kCFHostReachability = 2 }; typedef enum CFHostInfoType CFHostInfoType;
Константы
-
Addresses
kCFHostAddresses
Указывает, что адреса должны быть разрешены или что были разрешены адреса.
Доступный в OS X v10.3 и позже.
-
Names
kCFHostNames
Указывает, что имена должны быть разрешены или что были разрешены имена.
Доступный в OS X v10.3 и позже.
-
Reachability
kCFHostReachability
Указывает, что информация о достижимости должна быть разрешена или что была разрешена информация о достижимости.
Доступный в OS X v10.3 и позже.
Оператор импорта
Objective C
@import CFNetwork;
Swift
import CFNetwork
Доступность
Доступный в версии 10.3 OS X и позже.
-
-
Ошибочные домены, определенные для
CFHost
вызовы.Объявление
Swift
let kCFStreamErrorDomainNetDB: Int32 let kCFStreamErrorDomainSystemConfiguration: Int32
Objective C
extern const SInt32 kCFStreamErrorDomainNetDB; extern const SInt32 kCFStreamErrorDomainSystemConfiguration;
Константы
-
kCFStreamErrorDomainNetDB
kCFStreamErrorDomainNetDB
Ошибочный домен, возвращающий ошибки из сетевой базы данных (преобразователь DNS) уровень (описанный в
/usr/include/netdb.h
).Доступный в версии 10.5 OS X и позже.
-
kCFStreamErrorDomainSystemConfiguration
kCFStreamErrorDomainSystemConfiguration
Ошибочный домен, возвращающий ошибки из уровня конфигурации системы (описанный в Ссылке Платформы Конфигурации системы).
Доступный в версии 10.5 OS X и позже.
Обсуждение
Для определения источника ошибки исследуйте
userInfo
словарь, включенный вCFError
объект, возвращенный вызовом функции или вызовомCFErrorGetDomain
и передача вCFError
возразите и домен, значение которого Вы хотите считать. -