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

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

Разработчик

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

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

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

Ссылка CFReadStream

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

Используйте CFWriteStream для записи потоков байтов. Платформа CFNetwork определяет дополнительный тип потока для чтения ответов на Запросы HTTP.

CFReadStream “бесплатный соединенный мостом” с его дубликатом Основы Какао, NSInputStream. Это означает, что Базовый тип Основы является взаимозаменяемым в вызовах функции или вызовах метода с соединенным мостом объектом Основы. Поэтому в методе, где Вы видите NSInputStream * параметр, можно передать в CFReadStreamRef, и в функции, где Вы видите параметр CFReadStreamRef, можно передать в NSInputStream экземпляр. Отметьте, однако, что у Вас могут быть или делегат или обратные вызовы, но не оба. Посмотрите Бесплатные Соединенные мостом Типы для получения дополнительной информации о бесплатном образовании моста.

Функции

  • Создает читаемый поток для блока памяти.

    Объявление

    Swift

    func CFReadStreamCreateWithBytesNoCopy(_ alloc: CFAllocator!, _ bytes: UnsafePointer<UInt8>, _ length: CFIndex, _ bytesDeallocator: CFAllocator!) -> CFReadStream!

    Objective C

    CFReadStreamRef CFReadStreamCreateWithBytesNoCopy ( CFAllocatorRef alloc, const UInt8 *bytes, CFIndex length, CFAllocatorRef bytesDeallocator );

    Параметры

    alloc

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

    bytes

    Буфер памяти для чтения. Эта память должна существовать для времени жизни нового потока.

    length

    Размер bytes.

    bytesDeallocator

    Средство выделения для использования для освобождения bytes когда освобожден поток. Передача kCFAllocatorNull препятствовать тому, чтобы поток освободил bytes.

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

    Новый поток чтения, или NULL при отказе. Владение соблюдает Создать Правило.

    Обсуждение

    Необходимо открыть поток, с помощью CFReadStreamOpen, прежде, чем читать из него.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

  • Создает читаемый поток для файла.

    Объявление

    Swift

    func CFReadStreamCreateWithFile(_ alloc: CFAllocator!, _ fileURL: CFURL!) -> CFReadStream!

    Objective C

    CFReadStreamRef CFReadStreamCreateWithFile ( CFAllocatorRef alloc, CFURLRef fileURL );

    Параметры

    alloc

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

    fileURL

    URL файла для чтения. URL должен использовать схему файла.

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

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

    Обсуждение

    Необходимо открыть поток, с помощью CFReadStreamOpen, прежде, чем читать из него.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

  • Закрывает читаемый поток.

    Объявление

    Swift

    func CFReadStreamClose(_ stream: CFReadStream!)

    Objective C

    void CFReadStreamClose ( CFReadStreamRef stream );

    Параметры

    stream

    Поток для закрытия.

    Обсуждение

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

  • Открывает поток для чтения.

    Объявление

    Swift

    func CFReadStreamOpen(_ stream: CFReadStream!) -> Boolean

    Objective C

    Boolean CFReadStreamOpen ( CFReadStreamRef stream );

    Параметры

    stream

    Поток для открытия.

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

    TRUE если stream был успешно открыт, FALSE иначе. Если stream не находится в kCFStreamStatusNotOpen состояние, эта функция возвраты FALSE.

    Обсуждение

    Открытие потока заставляет его резервировать все системные ресурсы, которых требуется. Если поток может открыться в фоновом режиме без блокирования, эта функция всегда возвращается true. Для изучения, когда фоновая операция открытия завершается можно или запланировать поток в цикл выполнения с CFReadStreamScheduleWithRunLoop и ожидайте клиента потока (набор с CFReadStreamSetClient) чтобы быть уведомленными или можно опросить потоковое использование CFReadStreamGetStatus, ожидание состояния kCFStreamStatusOpen или kCFStreamStatusError.

    Вы не должны ожидать, пока поток не закончил открываться в фоновом режиме прежде, чем вызвать CFReadStreamRead функция. Операция чтения просто блокирует, пока открытое не завершилось.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

  • Считывает данные из читаемого потока.

    Объявление

    Swift

    func CFReadStreamRead(_ stream: CFReadStream!, _ buffer: UnsafeMutablePointer<UInt8>, _ bufferLength: CFIndex) -> CFIndex

    Objective C

    CFIndex CFReadStreamRead ( CFReadStreamRef stream, UInt8 *buffer, CFIndex bufferLength );

    Параметры

    stream

    Поток, из которого можно читать.

    buffer

    Буфер, в который можно поместить данные.

    bufferLength

    Размер buffer и максимальное количество байтов для чтения.

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

    Число байтов читало; 0 если поток достиг своего конца; или -1 если или поток не открыт или ошибка, происходит.

    Обсуждение

    Если stream находится в процессе открытия, эта функция ожидает, пока это не завершилось. Это функциональные блоки по крайней мере до одного байта доступно; это не блокирует до buffer заполнено. Чтобы избежать блокировать, вызовите эту функцию только если CFReadStreamHasBytesAvailable возвраты TRUE или после клиента потока (набор с CFReadStreamSetClient) уведомляется относительно a kCFStreamEventHasBytesAvailable событие.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

  • Планирует поток в цикл выполнения.

    Объявление

    Swift

    func CFReadStreamScheduleWithRunLoop(_ stream: CFReadStream!, _ runLoop: CFRunLoop!, _ runLoopMode: CFString!)

    Objective C

    void CFReadStreamScheduleWithRunLoop ( CFReadStreamRef stream, CFRunLoopRef runLoop, CFStringRef runLoopMode );

    Параметры

    stream

    Поток для планирования.

    runLoop

    Цикл выполнения, с которым можно запланировать stream.

    runLoopMode

    Режим цикла выполнения runLoop в котором можно запланировать stream.

    Обсуждение

    После планирования stream с циклом выполнения, его клиент (набор с CFReadStreamSetClient) уведомляется, когда различные события происходят с потоком, такой как тогда, когда он заканчивает открываться, когда он имеет байты в наличии, и когда происходит ошибка. Поток может быть запланирован с многократными циклами выполнения и выполненными режимами цикла. Использовать CFReadStreamUnscheduleFromRunLoop позже удалить stream от цикла выполнения.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

  • Удаляет поток чтения из данного выполненного цикла.

    Объявление

    Swift

    func CFReadStreamUnscheduleFromRunLoop(_ stream: CFReadStream!, _ runLoop: CFRunLoop!, _ runLoopMode: CFString!)

    Objective C

    void CFReadStreamUnscheduleFromRunLoop ( CFReadStreamRef stream, CFRunLoopRef runLoop, CFStringRef runLoopMode );

    Параметры

    stream

    Поток, чтобы не запланировать.

    runLoop

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

    runLoopMode

    Режим цикла выполнения runLoop из которого можно удалить stream.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

    Объявление

    Swift

    func CFReadStreamCopyProperty(_ stream: CFReadStream!, _ propertyName: CFString!) -> AnyObject!

    Objective C

    CFTypeRef CFReadStreamCopyProperty ( CFReadStreamRef stream, CFStringRef propertyName );

    Параметры

    stream

    Поток для исследования.

    propertyName

    Имя потокового свойства для получения. Доступные свойства для стандартных Базовых потоков Основы перечислены в Ссылке CFStream.

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

    Значение свойства propertyName. Владение соблюдает Создать Правило.

    Обсуждение

    Каждый тип потока может определить ряд свойств, что или описать или конфигурируют отдельные потоки. Свойство может быть любой информацией о потоке кроме фактических данных потоковые дескрипторы. Примеры включают заголовки от передачи HTTP, ожидаемого числа байтов, данных полномочий файла, и т.д. Использовать CFReadStreamSetProperty изменить значение свойства, несмотря на то, что некоторые свойства только для чтения.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

    Объявление

    Swift

    func CFReadStreamGetBuffer(_ stream: CFReadStream!, _ maxBytesToRead: CFIndex, _ numBytesRead: UnsafeMutablePointer<CFIndex>) -> UnsafePointer<UInt8>

    Objective C

    const UInt8 * CFReadStreamGetBuffer ( CFReadStreamRef stream, CFIndex maxBytesToRead, CFIndex *numBytesRead );

    Параметры

    stream

    Поток для исследования.

    maxBytesToRead

    Максимальное количество байтов для чтения. Если больше, чем 0, maxBytesToRead ограничивает число чтения байтов; если 0 или меньше, все доступные байты читаются.

    numBytesRead

    По возврату, содержит длину возвращенного буфера. Если stream не открыто или встретился с ошибкой, numBytesRead установлен в -1.

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

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

  • Возвращает ошибку, связанную с потоком.

    Объявление

    Swift

    func CFReadStreamCopyError(_ stream: CFReadStream!) -> CFError!

    Objective C

    CFErrorRef CFReadStreamCopyError ( CFReadStreamRef stream );

    Параметры

    stream

    Поток для исследования.

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

    Объект CFError, описывающий текущую проблему с потоком, или NULL если нет никакой ошибки. Владение соблюдает Создать Правило.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

  • Возвращает ошибочное состояние потока.

    Использовать CFReadStreamCopyError вместо этого.

    Объявление

    Swift

    func CFReadStreamGetError(_ stream: CFReadStream!) -> CFStreamError

    Objective C

    CFStreamError CFReadStreamGetError ( CFReadStreamRef stream );

    Параметры

    stream

    Поток для исследования.

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

    Ошибочное состояние stream возвращенный в a CFStreamError структура.

    Ошибочное поле 0 если не произошла никакая ошибка. Если ошибочное поле не 0, domain поле содержит код, идентифицирующий домен в который значение error поле должно быть интерпретировано.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

  • Возвращает текущее состояние потока.

    Объявление

    Swift

    func CFReadStreamGetStatus(_ stream: CFReadStream!) -> CFStreamStatus

    Objective C

    CFStreamStatus CFReadStreamGetStatus ( CFReadStreamRef stream );

    Параметры

    stream

    Поток для исследования.

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

    Текущее состояние stream. Посмотрите CFStreamStatus для списка возможных состояний.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

    Объявление

    Swift

    func CFReadStreamHasBytesAvailable(_ stream: CFReadStream!) -> Boolean

    Objective C

    Boolean CFReadStreamHasBytesAvailable ( CFReadStreamRef stream );

    Параметры

    stream

    Поток для исследования.

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

    TRUE если данные могут быть считаны из stream без блокирования, иначе FALSE. Если stream не может сказать, доступны ли данные, фактически не пытаясь считать данные, эта функция возвраты TRUE.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

    Объявление

    Swift

    func CFReadStreamSetClient(_ stream: CFReadStream!, _ streamEvents: CFOptionFlags, _ clientCB: CFReadStreamClientCallBack, _ clientContext: UnsafeMutablePointer<CFStreamClientContext>) -> Boolean

    Objective C

    Boolean CFReadStreamSetClient ( CFReadStreamRef stream, CFOptionFlags streamEvents, CFReadStreamClientCallBack clientCB, CFStreamClientContext *clientContext );

    Параметры

    stream

    Поток для изменения.

    streamEvents

    Набор событий, для которых клиент должен получить обратные вызовы. События перечислены в CFStreamEventType. Если Вы передаете kCFStreamEventNone, текущий клиент для stream удален.

    clientCB

    Клиентская функция обратного вызова, которую вызовут, когда одно из событий запросило в streamEvents происходит. Если NULL, текущий клиент для stream удален.

    clientContext

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

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

    TRUE если поток поддерживает асинхронное уведомление, иначе FALSE.

    Обсуждение

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

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

    Несмотря на то, что все Базовые потоки Основы в настоящее время поддерживают асинхронное уведомление, будущие потоковые типы не могут. Если поток не поддерживает асинхронное уведомление, эта функция возвраты false. Как правило, такие потоки никогда не блокируют для устройства I/O (например, потоковая память чтения) и не получают преимущества от асинхронного уведомления.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

  • Устанавливает значение свойства для потока.

    Объявление

    Swift

    func CFReadStreamSetProperty(_ stream: CFReadStream!, _ propertyName: CFString!, _ propertyValue: AnyObject!) -> Boolean

    Objective C

    Boolean CFReadStreamSetProperty ( CFReadStreamRef stream, CFStringRef propertyName, CFTypeRef propertyValue );

    Параметры

    stream

    Поток для изменения.

    propertyName

    Имя свойства для установки. Доступные свойства для стандартных Базовых потоков Основы перечислены в Ссылке CFStream.

    propertyValue

    Значение, в которое можно установить свойство propertyName для stream. Позволенный тип данных значения зависит от устанавливаемого свойства.

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

    TRUE если stream распознает и принимает данную пару значения свойства, иначеFALSE.

    Обсуждение

    Каждый тип потока может определить ряд свойств, что или описать или конфигурируют отдельные потоки. Свойство может быть любой интересной информацией о потоке. Примеры включают заголовки от передачи HTTP, ожидаемого числа байтов, данных полномочий файла, и т.д. Свойства, которые могут быть установлены, конфигурируют поведение потока и могут быть модифицируемыми только в определенные времена, такой как, прежде чем был открыт поток. (Фактически, необходимо предположить, что можно установить свойства только прежде, чем открыть поток, если не указано иное.) Для чтения значения использования свойства CFReadStreamCopyProperty, несмотря на то, что некоторые свойства только для записи.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

    Объявление

    Swift

    func CFReadStreamGetTypeID() -> CFTypeID

    Objective C

    CFTypeID CFReadStreamGetTypeID ( void );

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

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

  • Когда определенные типы действия имеют место на читаемом потоке, обратный вызов вызвал.

    Объявление

    Swift

    typealias CFReadStreamClientCallBack = CFunctionPointer<((CFReadStream!, CFStreamEventType, UnsafeMutablePointer<Void>) -> Void)>

    Objective C

    typedef void (*CFReadStreamClientCallBack) ( CFReadStreamRef stream, CFStreamEventType eventType, void *clientCallBackInfo );

    Параметры

    stream

    Поток, испытавший событие eventType.

    eventType

    Событие, заставившее обратный вызов быть вызванным. Возможные события перечислены в CFStreamEventType.

    clientCallBackInfo

    info элемент CFStreamClientContext структура, использовавшаяся при установке клиента для stream.

    Обсуждение

    Этот обратный вызов вызывают только для событий, которые требуют при установке клиента с CFReadStreamSetClient.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

Типы данных

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

  • Ссылка на читаемый потоковый объект.

    Объявление

    Swift

    typealias CFReadStreamRef = CFReadStream

    Objective C

    typedef struct __CFReadStream *CFReadStreamRef;

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

    Объявление

    Swift

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

    Objective C

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

    Поля

    version

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

    info

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

    retain

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

    release

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

    copyDescription

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

    Доступность

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