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

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

Разработчик

Ссылка класса IONetworkData

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

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

IONetworkData

Объект, управляющий фиксированным размером, названным буфером.

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

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

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

Этот объект прежде всего используется IONetworkInterface для экспорта интерфейсных свойств в пространство пользователя.

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


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

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


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

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


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

Objective C

@import Kernel;

Доступность


Доступный в OS X v10.6 и позже.
  • Очищается буфер данных путем заполнения его обнуляет.

    Объявление

    C++

    virtual bool clearBuffer();

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

    Если работа была успешной, ложной иначе, возвращает true.

  • Освобождает объект IONetworkData.

    Объявление

    C++

    virtual void free();

  • Получает типы доступа к данным, поддерживаемого этим объектом.

    Объявление

    C++

    virtual UInt32 getAccessTypes() const;

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

    Возвращает маску поддерживаемых типов доступа.

  • Получает указатель на буфер данных.

    Объявление

    C++

    virtual const void * getBuffer() const;

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

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

  • Получает тип буфера данных, которым управляет этот объект.

    Объявление

    C++

    virtual UInt32 getBufferType() const;

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

    Возвращает константу, описывающую тип буфера данных.

  • Получает уникальный ключ OSSymbol, связанный с этим объектом.

    Объявление

    C++

    virtual const OSSymbol * getKey() const;

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

    Возвращает ключ OSSymbol, сгенерированный с имени, присвоенного этому объекту.

    Обсуждение

    Во время инициализации IONetworkData создаст ключ OSSymbol на основе своего присвоенного имени.

  • Получает функцию C, зарегистрированную для обработки уведомлений доступа, отправленных от этого объекта.

    Объявление

    C++

    virtual Action getNotificationAction() const;

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

    Если уведомление отключено, возвращает указатель на функцию C, или 0.

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

    Объявление

    C++

    virtual void * getNotificationParameter() const;

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

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

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

    Объявление

    C++

    virtual void * getNotificationTarget() const;

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

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

  • Получает размер буфера данных.

    Объявление

    C++

    virtual UInt32 getSize() const;

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

    Возвращает размер буфера данных, которым управляет этот объект в байтах.

  • Инициализирует объект IONetworkData.

    Объявление

    C++

    virtual bool init( const char *name, UInt32 bufferType, UInt32 bufferSize, void *externalBuffer = 0, UInt32 accessTypes = ( kIONetworkDataAccessTypeRead | kIONetworkDataAccessTypeSerialize), void *target = 0, Action action = 0, void *param = 0);

    Параметры

    name

    Имя для присвоения к этому объекту.

    bufferType

    Тип буфера связался с этим объектом.

    bufferSize

    Размер буфера данных.

    externalBuffer

    Указатель на внешний буфер данных.

    accessTypes

    Начальная буква поддерживала типы доступа. Может быть позже изменен путем вызова setAccessTypes ().

    target

    Цель уведомления.

    action

    Действие уведомления.

    param

    Параметр для передачи действию уведомления.

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

    Возвращает true, если инициализировано успешно, ложь иначе.

  • Метод доступа, читающий из буфера данных.

    Объявление

    C++

    virtual IOReturn read( void *dstBuffer, UInt32 *dstBufferSize, UInt32 readOffset = 0);

    Параметры

    dstBuffer

    Указатель на целевой буфер.

    dstBufferSize

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

    readOffset

    Смещение от запуска исходных данных буферизует, чтобы начать читать.

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

    Возвраты kIOReturnSuccess на успехе, kIOReturnBadArgument, если какой-либо из предоставленных параметров недопустим, kIOReturnNotReadable, если доступ для чтения не разрешен, или ошибка от обработчика уведомления.

    Обсуждение

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

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

    Объявление

    C++

    virtual bool readBytes( void *dstBuffer, UInt32 *dstBufferSize, UInt32 readOffset = 0) const;

    Параметры

    dstBuffer

    Указатель на целевой буфер.

    dstBufferSize

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

    readOffset

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

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

    Если работа была успешной, ложной иначе, возвращает true.

  • Метод доступа, сбрасывающий буфер данных.

    Объявление

    C++

    virtual IOReturn reset();

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

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

    Обсуждение

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

  • Сериализирует объект IONetworkData.

    Объявление

    C++

    virtual bool serialize( OSSerialize *s) const;

    Параметры

    s

    Объект OSSerialize.

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

    Возвращает true на успехе, ложь иначе.

    Обсуждение

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

  • Устанавливает типы доступа, разрешенные на буфере данных.

    Объявление

    C++

    virtual void setAccessTypes( UInt32types);

    Параметры

    types

    Маска типов доступа, указывающих поддерживаемые типы доступа.

  • Регистрирует функцию C для обработки уведомлений доступа, отправленных от этого объекта.

    Объявление

    C++

    virtual void setNotificationTarget( void *target, Action action, void *param = 0);

    Параметры

    target

    Первый параметр передал обработчику уведомления.

    action

    Указатель на функцию C, которая обработает уведомление. Если 0, то уведомление отключено.

    param

    Дополнительный параметр передал обработчику уведомления.

    Обсуждение

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

  • Метод фабрики, создающий и инициализирующий объект IONetworkData с внешним буфером данных.

    Объявление

    C++

    static IONetworkData * withExternalBuffer( const char *name, UInt32 bufferSize, void *externalBuffer, UInt32 accessTypes = ( kIONetworkDataAccessTypeRead | kIONetworkDataAccessTypeSerialize), void *target = 0, Action action = 0, void *param = 0);

    Параметры

    name

    Имя для присвоения к этому объекту.

    bufferSize

    Размер внешнего буфера данных.

    externalBuffer

    Указатель на внешний буфер данных.

    accessTypes

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

    target

    Цель уведомления.

    action

    Действие уведомления.

    param

    Параметр для передачи действию уведомления.

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

    Возвращает объект IONetworkData на успехе, или 0 иначе.

  • Метод фабрики, создающий и инициализирующий объект IONetworkData с внутренним буфером данных.

    Объявление

    C++

    static IONetworkData * withInternalBuffer( const char *name, UInt32 bufferSize, UInt32 accessTypes = ( kIONetworkDataAccessTypeRead | kIONetworkDataAccessTypeSerialize), void *target = 0, Action action = 0, void *param = 0);

    Параметры

    name

    Имя для присвоения к этому объекту.

    bufferSize

    Число байтов для выделения для внутреннего буфера данных.

    accessTypes

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

    target

    Цель уведомления.

    action

    Действие уведомления.

    param

    Параметр для передачи действию уведомления.

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

    Возвращает объект IONetworkData на успехе, или 0 иначе.

  • Метод фабрики, создающий и инициализирующий объект IONetworkData без буфера данных.

    Объявление

    C++

    static IONetworkData * withNoBuffer( const char *name, UInt32 bufferSize, UInt32 accessTypes, void *target, Action action, void *param = 0);

    Параметры

    name

    Имя для присвоения к этому объекту.

    bufferSize

    Размер фантомного буфера данных.

    accessTypes

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

    target

    Цель уведомления.

    action

    Действие уведомления.

    param

    Параметр для передачи действию уведомления.

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

    Возвращает объект IONetworkData на успехе, или 0 иначе.

    Обсуждение

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

  • Метод доступа, пишущий в буфер данных.

    Объявление

    C++

    virtual IOReturn write( void *srcBuffer, UInt32 srcBufferSize, UInt32 writeOffset = 0);

    Параметры

    srcBuffer

    Указатель на исходный буфер.

    srcBufferSize

    Число байтов для записи в буфер данных.

    writeOffset

    Смещение от запуска целевого буфера данных, чтобы начать писать.

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

    Возвраты kIOReturnSuccess на успехе, kIOReturnBadArgument, если какой-либо из предоставленных параметров недопустим, kIOReturnNotWritable, если доступ для записи не разрешен, или ошибка от обработчика уведомления.

    Обсуждение

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

  • Записи к буферу данных с данными от исходного буфера, предоставленного вызывающей стороной.

    Объявление

    C++

    virtual bool writeBytes( const void *srcBuffer, UInt32 srcBufferSize, UInt32 writeOffset = 0);

    Параметры

    srcBuffer

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

    srcBufferSize

    Размер исходного буфера.

    writeOffset

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

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

    Если работа была успешной, ложной иначе, возвращает true.

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

  • Определяет функцию C, которая может быть вызвана объектом IONetworkData, когда вызывают один из его методов доступа.

    Объявление

    C++

    typedef IOReturn ( *Action)( void *target, void *param, IONetworkData *data, UInt32 accessType, void *buffer, UInt32 *bufferSize, UInt32 offset);

    Параметры

    target

    Цель уведомления.

    data

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

    accessType

    Немного будет установлено, указывая тип доступа, инициировавшего уведомление.

    buffer

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

    bufferSize

    Указатель на размер буфера средства доступа.

    offset

    Смещение от запуска буфера данных, чтобы начать читать или писать.

    param

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

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

    Objective C

    #include <IOCommandGate.h>;

    Доступность

    Доступный в OS X v10.0 через OS X v10.5.

Переменные экземпляра

  • Зарезервированный для будущего использования. (Только внутреннее использование)

    Объявление

    C++

    ExpansionData * _reserved;

  • Зарезервированный для будущего использования. (Только внутреннее использование)

    Объявление

    C++

    ExpansionData * _reserved;