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

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

Разработчик

Ссылка класса IOStream

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

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

IOStream

Класс, представляющий поток буферов данных, передал от ядра до пространства пользователя и назад снова.

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

Несмотря на то, что ожидается, что клиент IOStream будет в пространстве пользователя, это не требуется.

Ссылки, чтобы «вывести» среднее значение «от IOStream до пользовательского клиента» и «ввести» значат «от пользовательского клиента для IOStream».

Наследование


Не применимый

Соответствует


Не применимый

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


Не применимый

Objective C

@import Kernel;

Доступность


Доступный в OS X v10.5 и позже.
  • Возвращает режим потока, любого ввода или вывода.

    Объявление

    C++

    virtual IOStreamMode getStreamMode( void);

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

    Режим потока, любой kIOStreamModeInput (от пространства пользователя до пространства ядра) или значение по умолчанию kIOStreamModeOutput (от ядра располагают с интервалами к пространству пользователя).

  • Устанавливает режим потока, любого ввода или вывода.

    Объявление

    C++

    virtual IOReturn setStreamMode( IOStreamMode mode);

    Обсуждение

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

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

    Объявление

    C++

    virtual IOReturn startStream( void);

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

    Возвраты kIOReturnSuccess, если был успешно запущен поток.

    Обсуждение

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

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

    Объявление

    C++

    virtual IOReturn stopStream( void);

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

    Возвраты kIOReturnSuccess, если был успешно остановлен поток.

    Обсуждение

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

  • Временно приостановите поток данных на потоке.

    Объявление

    C++

    virtual IOReturn suspendStream( void);

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

    Возвраты kIOReturnSuccess, если был успешно приостановлен поток.

    Обсуждение

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

  • Объявление

    C++

    virtual IOReturn dequeueInputEntry( IOStreamBufferQueueEntry *entry );

    Параметры

    entry
  • Удобный метод для постановки в очередь буфер.

    Объявление

    C++

    virtual IOReturn enqueueOutputBuffer( IOStreamBuffer *buffer, IOByteCount dataOffset = 0, IOByteCount dataLength = 0, IOByteCount controlOffset = 0, IOByteCount controlLength = 0);

    Параметры

    buffer
    dataOffset
    dataLength
    controlOffset
    controlLength
  • Объявление

    C++

    virtual IOReturn enqueueOutputEntry( IOStreamBufferQueueEntry *entry );

    Параметры

    entry
  • handleClose метод уничтожает совместно используемые очереди ввода и вывода.

    Объявление

    C++

    virtual void handleClose( IOService *forClient, IOOptionBits options );

    Параметры

    options
  • handleOpen () метод полагается на поведение IOService по умолчанию гарантировать, что только у одного клиента есть поток, открытый за один раз. В открытое время создаются совместно используемые очереди ввода и вывода.

    Объявление

    C++

    virtual bool handleOpen( IOService *forClient, IOOptionBits options, void *arg );

    Параметры

    options
    arg
  • См. документацию для метода IOService newUserClient.

    Объявление

    C++

    virtual IOReturn newUserClient( task_t owningTask, void *securityID, UInt32 type, OSDictionary *properties, IOUserClient **handler );

  • Создает совместно используемые очереди ввода и вывода, вне зависимости от того, открыт ли поток или нет. Обычно это вызывает handleOpen ().

    Объявление

    C++

    virtual IOReturn createQueues( IOItemCount queueLength = 0, IOOptionBits options = 0 );

    Параметры

    queueLength
    options

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

    Возвраты kIOReturnSuccess, если успешно создавались очереди.

  • Выпускает совместно используемые очереди ввода и вывода.

    Объявление

    C++

    virtual IOReturn destroyQueues( void );

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

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

  • Объявление

    C++

    virtual IOStreamBufferQueue *getInputQueue( void);

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

    Указатель на ввод структура IOStreamBufferQueue для потока или NULL, если поток не открыт и очередь, еще не был создан.

  • Объявление

    C++

    virtual IOMemoryDescriptor *getInputQueueMemoryDescriptor( void);

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

    IOMemoryDescriptor возражает repesenting буфер входной очереди общей памяти.

  • Объявление

    C++

    virtual IOStreamBufferQueue *getOutputQueue( void);

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

    Указатель на структуру вывода IOStreamBufferQueue для потока или NULL, если поток не открыт и очередь, еще не был создан.

  • Объявление

    C++

    virtual IOMemoryDescriptor *getOutputQueueMemoryDescriptor( void);

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

    IOMemoryDescriptor возражает repesenting буфер очереди вывода общей памяти.

  • Введите функцию обратного вызова, которая будет реализована подклассом;

    Объявление

    C++

    virtual void inputCallback( UInt32token );

    Параметры

    token

    32-разрядная символическая стоимость, которая может использоваться условно для передачи от пространства пользователя до потока. Семантика этого значения определяется подклассом IOStream.

    Обсуждение

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

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

    Объявление

    C++

    virtual void inputSyncCallback( UInt32token );

    Параметры

    token

    32-разрядная символическая стоимость, которая может использоваться условно для передачи от пространства пользователя до потока. Семантика этого значения определяется подклассом IOStream.

    Обсуждение

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

  • Используйте порт Маха для получения уведомлений из пространства пользователя, что буфер был добавлен к входной очереди.

    Объявление

    C++

    virtual mach_port_t getInputPort( void);

  • Используйте порт Маха для отправки уведомлений пространству пользователя, что буфер был добавлен к очереди вывода.

    Объявление

    C++

    virtual mach_port_t getOutputPort( void);

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

    Объявление

    C++

    virtual IOReturn sendOutputNotification( void);

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

    Возвраты kIOReturnSuccess, если было успешно отправлено уведомление.

  • Установите порт Маха, используемый для получения уведомлений из пространства пользователя, что буфер был добавлен к входной очереди.

    Объявление

    C++

    virtual IOReturn setInputPort( mach_port_tport);

    Параметры

    port
  • Установите порт Маха, используемый для отправки уведомлений пространству пользователя, что буфер был добавлен к очереди вывода.

    Объявление

    C++

    virtual IOReturn setOutputPort( mach_port_tport);

    Параметры

    port
  • Добавьте буфер к IOStream.

    Объявление

    C++

    virtual IOReturn addBuffer( IOStreamBuffer *buffer);

    Параметры

    buffer

    Обсуждение

    Добавляет IOStreamBuffer к IOStream. Это будет добавлено до конца буферного массива, таким образом, не изменится буферный ID существующих буферов.

  • Объявление

    C++

    virtual IOReturn addBuffers( OSArray *buffers);

    Параметры

    buffers
  • Объявление

    C++

    virtual IOItemCount getBufferCount( void );

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

    Возвраты kIOReturnSuccess, если были успешно демонтированы все буферы. Буферы не могут быть демонтированы, в то время как поток открыт, поскольку это изменит буферный IDs существующих буферов.

  • Получите массив, содержащий все буферы в потоке.

    Объявление

    C++

    virtual OSArray *getBuffers( void );

    Обсуждение

    Возвращает OSArray, содержащий все буферы в потоке в порядке их буферного ID.

  • Объявление

    C++

    virtual IOStreamBuffer *getBufferWithID( IOStreamBufferIDbufferID);

    Параметры

    bufferID

    ID буфера для получения.

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

    Указатель на объект IOStreamBuffer или NULL, если буферный ID был недопустим для этого потока.

  • Объявление

    C++

    virtual IOReturn removeAllBuffers( void );

  • Объявление

    C++

    virtual IOItemCount getBufferCount( void );

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

    Возвраты kIOReturnSuccess, если были успешно демонтированы все буферы. Буферы не могут быть демонтированы, в то время как поток открыт, поскольку это изменит буферный IDs существующих буферов.

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

    Объявление

    C++

    virtual IOReturn removeBuffer( IOStreamBuffer *buffer);

    Параметры

    buffer

    Указатель на IOStreamBuffer возражает в потоке.

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

    Возвраты kIOReturnSuccess, если буфер был демонтирован, или kIOReturnNotFound, если буфер не был в этом потоке.

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

    Объявление

    C++

    virtual IOReturn removeBuffer( IOStreamBufferIDbufferID);

    Параметры

    bufferID

    ID буфера для удаления.

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

    Возвраты kIOReturnSuccess, если был демонтирован буфер.

  • Объявление

    C++

    virtual void free( void);

  • Объявление

    C++

    virtual bool initWithBuffers( OSArray *buffers, IOStreamMode mode = kIOStreamModeOutput, IOItemCount queueLength = 0, OSDictionary *properties = 0);

    Параметры

    mode

    Начальный режим потока, или вывод, ввод или ввод/вывод.

    queueLength

    nuber записей очереди для резервирования в очереди ввода и вывода. Нуль означает делать очереди достаточно многочисленными для размещения всех буферов сразу.

    properties

    Словарь свойств, которые будут установлены на потоке.

    buffers

    Массив объектов IOStreamBuffer, которые будут буферами для этого потока.

  • Объявление

    C++

    static IOStream *withBuffers( OSArray *buffers, IOStreamMode mode = kIOStreamModeOutput, IOItemCount queueLength = 0, OSDictionary *properties = 0);

    Параметры

    mode

    Начальный режим потока, или вывод, ввод или ввод/вывод.

    queueLength

    nuber записей очереди для резервирования в очереди ввода и вывода. Нуль означает делать очереди достаточно многочисленными для размещения всех буферов сразу.

    properties

    Словарь свойств, которые будут установлены на потоке.

    buffers

    Массив объектов IOStreamBuffer, которые будут буферами для этого потока.