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

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

Разработчик

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

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

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

Ссылка CFWriteStream

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

Используйте CFReadStream для чтения потоков байтов, и для функций, такой как CFStreamCreatePairWithSocketToHost, это создает потоки сокета).

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

Функции

  • Создает перезаписываемый поток для growable блока памяти.

    Объявление

    Swift

    func CFWriteStreamCreateWithAllocatedBuffers(_ alloc: CFAllocator!, _ bufferAllocator: CFAllocator!) -> CFWriteStream!

    Objective C

    CFWriteStreamRef CFWriteStreamCreateWithAllocatedBuffers ( CFAllocatorRef alloc, CFAllocatorRef bufferAllocator );

    Параметры

    alloc

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

    bufferAllocator

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

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

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

    Обсуждение

    Новые буферы выделяются с помощью bufferAllocator поскольку байты записаны в поток. В любой точке можно восстановить байты, к настоящему времени записанные путем выяснения свойство kCFStreamPropertyDataWritten с CFWriteStreamCopyProperty.

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

  • Создает перезаписываемый поток для блока фиксированного размера памяти.

    Объявление

    Swift

    func CFWriteStreamCreateWithBuffer(_ alloc: CFAllocator!, _ buffer: UnsafeMutablePointer<UInt8>, _ bufferCapacity: CFIndex) -> CFWriteStream!

    Objective C

    CFWriteStreamRef CFWriteStreamCreateWithBuffer ( CFAllocatorRef alloc, UInt8 *buffer, CFIndex bufferCapacity );

    Параметры

    alloc

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

    buffer

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

    bufferCapacity

    Размер buffer и максимальное количество байтов, которые могут быть записаны.

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

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

    Обсуждение

    Когда buffer заполнено после записи bufferCapacity байты, поток исчерпывается, и его состояние становится kCFStreamStatusAtEnd.

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

    Объявление

    Swift

    func CFWriteStreamCreateWithFile(_ alloc: CFAllocator!, _ fileURL: CFURL!) -> CFWriteStream!

    Objective C

    CFWriteStreamRef CFWriteStreamCreateWithFile ( CFAllocatorRef alloc, CFURLRef fileURL );

    Параметры

    alloc

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

    fileURL

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

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

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

    Обсуждение

    Поток перезаписывает существующий файл, если Вы не устанавливаете kCFStreamPropertyAppendToFile к kCFBooleanTrue с CFWriteStreamSetProperty, когда поток добавляет данные к файлу.

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

    Объявление

    Swift

    func CFWriteStreamClose(_ stream: CFWriteStream!)

    Objective C

    void CFWriteStreamClose ( CFWriteStreamRef stream );

    Параметры

    stream

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

    Обсуждение

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

    Объявление

    Swift

    func CFWriteStreamOpen(_ stream: CFWriteStream!) -> Boolean

    Objective C

    Boolean CFWriteStreamOpen ( CFWriteStreamRef stream );

    Параметры

    stream

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

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

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

    Обсуждение

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

  • Данные записей к перезаписываемому потоку.

    Объявление

    Swift

    func CFWriteStreamWrite(_ stream: CFWriteStream!, _ buffer: UnsafePointer<UInt8>, _ bufferLength: CFIndex) -> CFIndex

    Objective C

    CFIndex CFWriteStreamWrite ( CFWriteStreamRef stream, const UInt8 *buffer, CFIndex bufferLength );

    Параметры

    stream

    Поток, в который можно записать.

    buffer

    Буфер, содержащий данные для записи.

    bufferLength

    Число байтов от buffer записать.

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

    Число байтов, успешно записанных, 0 если поток был наполнен до отказа (для потоков фиксированной длины), или -1 если или поток не открыт или ошибка, происходит.

    Обсуждение

    Если stream находится в процессе открытия, эта функция ожидает, пока это не завершилось. Если поток не полон, этот вызов блоки, пока не записан по крайней мере один байт; это не блокирует до всех байтов в buffer записан. Чтобы избежать блокировать, вызовите эту функцию только если CFWriteStreamCanAcceptBytes возвраты true или после клиента потока (набор с CFWriteStreamSetClient) уведомляется относительно a kCFStreamEventCanAcceptBytes событие.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

    Объявление

    Swift

    func CFWriteStreamScheduleWithRunLoop(_ stream: CFWriteStream!, _ runLoop: CFRunLoop!, _ runLoopMode: CFString!)

    Objective C

    void CFWriteStreamScheduleWithRunLoop ( CFWriteStreamRef stream, CFRunLoopRef runLoop, CFStringRef runLoopMode );

    Параметры

    stream

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

    runLoop

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

    runLoopMode

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

    Обсуждение

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

    Объявление

    Swift

    func CFWriteStreamUnscheduleFromRunLoop(_ stream: CFWriteStream!, _ runLoop: CFRunLoop!, _ runLoopMode: CFString!)

    Objective C

    void CFWriteStreamUnscheduleFromRunLoop ( CFWriteStreamRef stream, CFRunLoopRef runLoop, CFStringRef runLoopMode );

    Параметры

    stream

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

    runLoop

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

    runLoopMode

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

    Объявление

    Swift

    func CFWriteStreamCanAcceptBytes(_ stream: CFWriteStream!) -> Boolean

    Objective C

    Boolean CFWriteStreamCanAcceptBytes ( CFWriteStreamRef stream );

    Параметры

    stream

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

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

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

    Объявление

    Swift

    func CFWriteStreamCopyProperty(_ stream: CFWriteStream!, _ propertyName: CFString!) -> AnyObject!

    Objective C

    CFTypeRef CFWriteStreamCopyProperty ( CFWriteStreamRef stream, CFStringRef propertyName );

    Параметры

    stream

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

    propertyName

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

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

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

    Обсуждение

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

    Объявление

    Swift

    func CFWriteStreamCopyError(_ stream: CFWriteStream!) -> CFError!

    Objective C

    CFErrorRef CFWriteStreamCopyError ( CFWriteStreamRef stream );

    Параметры

    stream

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

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

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

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

    Объявление

    Swift

    func CFWriteStreamGetError(_ stream: CFWriteStream!) -> CFStreamError

    Objective C

    CFStreamError CFWriteStreamGetError ( CFWriteStreamRef stream );

    Параметры

    stream

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

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

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

    Объявление

    Swift

    func CFWriteStreamGetStatus(_ stream: CFWriteStream!) -> CFStreamStatus

    Objective C

    CFStreamStatus CFWriteStreamGetStatus ( CFWriteStreamRef stream );

    Параметры

    stream

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

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

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

    Объявление

    Swift

    func CFWriteStreamSetClient(_ stream: CFWriteStream!, _ streamEvents: CFOptionFlags, _ clientCB: CFWriteStreamClientCallBack, _ clientContext: UnsafeMutablePointer<CFStreamClientContext>) -> Boolean

    Objective C

    Boolean CFWriteStreamSetClient ( CFWriteStreamRef stream, CFOptionFlags streamEvents, CFWriteStreamClientCallBack clientCB, CFStreamClientContext *clientContext );

    Параметры

    stream

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

    streamEvents

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

    clientCB

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

    clientContext

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

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

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

    Обсуждение

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

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

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

    Объявление

    Swift

    func CFWriteStreamSetProperty(_ stream: CFWriteStream!, _ propertyName: CFString!, _ propertyValue: AnyObject!) -> Boolean

    Objective C

    Boolean CFWriteStreamSetProperty ( CFWriteStreamRef stream, CFStringRef propertyName, CFTypeRef propertyValue );

    Параметры

    stream

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

    propertyName

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

    propertyValue

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

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

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

    Обсуждение

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

  • Возвращает идентификатор типа всех объектов CFWriteStream.

    Объявление

    Swift

    func CFWriteStreamGetTypeID() -> CFTypeID

    Objective C

    CFTypeID CFWriteStreamGetTypeID ( void );

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

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

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

    Объявление

    Swift

    typealias CFWriteStreamClientCallBack = CFunctionPointer<((CFWriteStream!, CFStreamEventType, UnsafeMutablePointer<Void>) -> Void)>

    Objective C

    typedef void (*CFWriteStreamClientCallBack) ( CFWriteStreamRef stream, CFStreamEventType eventType, void *clientCallBackInfo );

    Параметры

    stream

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

    eventType

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

    clientCallBackInfo

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

    Обсуждение

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

Типы данных

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

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

    Объявление

    Swift

    typealias CFWriteStreamRef = CFWriteStream

    Objective C

    typedef struct __CFWriteStream *CFWriteStreamRef;

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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