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

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

Разработчик

Ссылка класса IOBasicOutputQueue

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

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

IOBasicOutputQueue

Конкретная реализация IOOutputQueue.

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

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

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


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

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


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

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


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

Objective C

@import Kernel;

Доступность


Доступный в OS X v10.0 и позже.
  • Добавляет пакет или цепочка пакетов, очереди.

    Объявление

    C++

    virtual UInt32 enqueue( mbuf_tm, void *param);

    Параметры

    m

    Единственный пакет или цепочка пакетов.

    param

    Параметр, предоставленный вызывающей стороной.

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

    Всегда возвраты 0.

    Обсуждение

    Этот метод вызывает клиент для добавления пакета или цепочки пакетов, очереди. В то время как цепочка пакетов создается путем соединения многократных mbuf цепочек через m_nextpkt поле, пакет описан mbuf цепочкой. Этот метод могут вызвать многократные клиентские потоки.

  • Отбрасывания и освобождают все пакеты, в настоящее время сохраненные очередью.

    Объявление

    C++

    virtual UInt32 flush();

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

    Возвращает число пакетов, отброшенных и освобожденных.

    Обсуждение

    Чтобы гарантировать, что все пакеты удалены из очереди, остановитесь (), должен быть вызван до сброса (), чтобы удостовериться, что нет никаких пакетов, в полете и поставленных цели.

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

    Объявление

    C++

    virtual void free();

    Обсуждение

    Эта функция высвобождает выделенные средства, затем вызовите супер:: свободный ().

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

    Объявление

    C++

    virtual UInt32 getCapacity() const;

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

    Возвращает текущую способность очереди.

    Обсуждение

    Когда размер очереди достигнет своей способности, очередь начнет отбрасывать входящие пакеты.

  • Получает число пакетов, отброшенных очередью.

    Объявление

    C++

    virtual UInt32 getDropCount();

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

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

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

    Объявление

    C++

    virtual UInt32 getOutputCount();

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

    Возвращает число раз, что kIOOutputStatusAccepted возвращается к установленному сроку.

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

    Объявление

    C++

    virtual UInt32 getRetryCount();

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

    Возвращает число раз, что kIOOutputStatusRetry возвращается к установленному сроку.

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

    Объявление

    C++

    virtual UInt32 getSize() const;

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

    Возвращает размер очереди.

  • Когда цель остановила очередь, получает число экземпляров.

    Объявление

    C++

    virtual UInt32 getStallCount();

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

    Возвращает число раз, что kIOOutputCommandStall возвращается к установленному сроку.

  • Получает состояние объекта очереди.

    Объявление

    C++

    virtual UInt32 getState() const;

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

    Возвращает текущее состояние объекта очереди.

  • Возвращает объект IONetworkData, содержащий счетчики статистики, обновленные очередью.

    Объявление

    C++

    virtual IONetworkData * getStatisticsData() const;

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

    Возвращает объект IONetworkData.

  • Обрабатывает внешний доступ к объекту IONetworkData, возвращенному getStatisticsData ().

    Объявление

    C++

    virtual IOReturn handleNetworkDataAccess( IONetworkData *data, UInt32type, void *param);

    Параметры

    data

    Получаемый доступ объект IONetworkData.

    type

    Описание типа выполняемого доступа.

    param

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

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

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

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

    Объявление

    C++

    virtual bool init( OSObject *target, IOOutputAction action, UInt32 capacity = 0, UInt32 priorities = 1);

    Параметры

    target

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

    action

    Функция, которая обработает пакеты, удаленные из очереди.

    capacity

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

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

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

  • Передачи все пакеты в mbuf очереди к цели.

    Объявление

    C++

    virtual void output( IOMbufQueue *queue, UInt32 *state);

    Параметры

    queue

    Очередь исходящих пакетов.

    state

    Возвращает бит состояния, определенный IOBasicOutputQueue, объявляющим новое состояние очереди после этого вызова метода. kStateStalled возвращается, если очередь должна остановиться, иначе 0 возвращается.

  • Обслуживает очередь, остановленную к установленному сроку.

    Объявление

    C++

    virtual bool service( IOOptionBits options = 0);

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

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

    Обсуждение

    Цель, останавливающая очередь, должна обслуживание вызовов (), когда это становится готовым для принятия большего количества пакетов. Вызов этого метода, когда очередь не останавливается, безопасен.

  • Обеспечивает реализацию для serviceThread () метод, определенный в IOOutputQueue.

    Объявление

    C++

    virtual void serviceThread( void *param);

    Параметры

    param

    Параметр, данный scheduleServiceThread (). Этот параметр не используется.

    Обсуждение

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

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

    Объявление

    C++

    virtual bool setCapacity( UInt32capacity);

    Параметры

    capacity

    Новая желаемая способность.

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

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

  • Запускает поток пакетов между очередью и ее целью.

    Объявление

    C++

    virtual bool start();

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

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

    Обсуждение

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

  • Останавливает поток пакетов между очередью и ее целью.

    Объявление

    C++

    virtual bool stop();

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

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

    Обсуждение

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

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

    Объявление

    C++

    static IOBasicOutputQueue * withTarget( IONetworkController *target, UInt32 capacity = 0);

    Параметры

    target

    Объект IONetworkController, который обработает пакеты, удаленные из очереди.

    capacity

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

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

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

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

    Объявление

    C++

    static IOBasicOutputQueue * withTarget( IONetworkController *target, UInt32capacity, UInt32priorities);

    Параметры

    target

    Объект IONetworkController, который обработает пакеты, удаленные из очереди.

    capacity

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

    priorities

    Число приоритетов трафика поддерживается

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

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

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

    Объявление

    C++

    static IOBasicOutputQueue * withTarget( OSObject *target, IOOutputAction action, UInt32 capacity = 0);

    Параметры

    target

    Объект, который обработает пакеты, удаленные из очереди.

    action

    Функция, которая обработает пакеты, удаленные из очереди.

    capacity

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

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

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

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

    Объявление

    C++

    static IOBasicOutputQueue * withTarget( OSObject *target, IOOutputActionaction, UInt32capacity, UInt32priorities);

    Параметры

    target

    Объект, который обработает пакеты, удаленные из очереди.

    action

    Функция, которая обработает пакеты, удаленные из очереди.

    capacity

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

    priorities

    Число приоритетов трафика поддерживается

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

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

Константы

  • Биты в значении, возвращенном getState ().

    Объявление

    CPlusPlus

    enum { kStateRunning = 0x1, kStateOutputStalled = 0x2, kStateOutputActive = 0x4, kStateOutputServiceMask = 0xff00 };

    Константы

    • kStateRunning

      kStateRunning

      Набор, когда работает очередь. Вызов запускается (), и остановка () установит или очистит этот бит.

    • kStateStalled

      kStateStalled

      Набор, когда очередь останавливается к установленному сроку.

    • kStateActive

      kStateActive

      Набор, когда потребительский поток активно удаляет пакеты из очереди и передает их цели.

  • Биты опции, распознанные службой ().

    Объявление

    CPlusPlus

    enum { kServiceAsync = 0x1 };

    Константы

    • kServiceAsync

      kServiceAsync

      Установите эту опцию обслужить очередь асинхронным способом. Служба () вызов не блокирует, но задержка планирования будет представлена, прежде чем очередь обслуживается.