IOOutputQueue
Очередь пакетов, поддерживающая многократных производителей и единственного потребителя.
Каждый производитель или клиентский поток, поставят цепочку пакетов очереди. Единственный потребитель удалит пакеты из очереди по одному и передаст ее зарегистрированной цели/действию. Этот объект может использоваться IONetworkController на выводе (передача) сторона, чтобы обработать поток исходящего пакета ниже IONetworkInterface, и затем вызвать водительскую функцию вывода. IOOutputQueue является абстрактным классом, обеспечивающим интерфейс для его подклассов. Конкретные подклассы завершат реализацию и укажут контекст, что цель вызывают для пакетов, удаленных из очереди.
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Не применимый
Objective C
@import Kernel;
Доступность
Доступный в OS X v10.0 и позже.
-
Отмены любая незаконченная выноска потока службы.
Объявление
C++
virtual bool cancelServiceThread();
Возвращаемое значение
Если ранее запланированная выноска потока была отменена, ложь иначе, возвращает true.
-
Добавляет пакет или цепочка пакетов, очереди.
Объявление
C++
virtual UInt32 enqueue( mbuf_t
m
, void *param
) = 0;Параметры
m
Единственный пакет или цепочка пакетов.
param
Параметр, предоставленный вызывающей стороной.
Возвращаемое значение
Возвращает код возврата.
Обсуждение
Этот метод вызывает клиент для добавления пакета или цепочки пакетов, очереди. В то время как цепочка пакетов создается путем соединения многократных mbuf цепочек через m_nextpkt поле, пакет описан mbuf цепочкой.
-
Отбрасывания и освобождают все пакеты, в настоящее время сохраненные очередью.
Объявление
C++
virtual UInt32 flush() = 0;
Возвращаемое значение
Возвращает число пакетов, отброшенных и освобожденных.
-
Освобождает объект IOOutputQueue.
Объявление
C++
virtual void free();
Обсуждение
Высвободите выделенные средства, затем вызовите супер:: свободный ().
-
Получает число пакетов, которые может содержать очередь.
Объявление
C++
virtual UInt32 getCapacity() const = 0;
Возвращаемое значение
Возвращает текущую способность очереди.
Обсуждение
Когда размер очереди достигнет своей способности, очередь начнет отбрасывать входящие пакеты.
-
Определяет приоритет трафика mbuf. Самый высокий приоритет 0.
Объявление
C++
virtual UInt32 getMbufPriority( mbuf_t
m
);Параметры
m
mbuf для анализа.
Возвращаемое значение
Возвращает UInt32, представляющий приоритет пакета. 0 самый высокий приоритет.
Обсуждение
Очередь может приоритезировать определенные классы трафика. Этот метод упрощает это путем оценки mbuf и возврата его приоритета.
-
Возвращает адрес функции, определяющейся для обработки входящих пакетов, отправленных в объект очереди.
Объявление
C++
virtual IOOutputAction getOutputHandler() const;
Возвращаемое значение
Возвращает адрес того, чтобы ставить в очередь () метод.
-
Получает число пакетов, в настоящее время сохраненных в очереди.
Объявление
C++
virtual UInt32 getSize() const = 0;
Возвращаемое значение
Возвращает размер очереди.
-
Возвращает объект IONetworkData, содержащий счетчики статистики, обновленные очередью.
Объявление
C++
virtual IONetworkData * getStatisticsData() const;
Возвращаемое значение
Возвращает объект IONetworkData. Эта реализация будет всегда возвращаться 0.
-
Инициализирует объект IOOutputQueue.
Объявление
C++
virtual bool init();
Возвращаемое значение
Возвращает true, если инициализировано успешно, ложь иначе.
-
Планирует выноску потока службы.
Объявление
C++
virtual bool scheduleServiceThread( void *param = 0);
Параметры
param
Параметр для передачи serviceThread () метода.
Возвращаемое значение
Если выноска потока была запланирована, ложь иначе, возвращает true.
Обсуждение
Этот метод может вызвать служба () для планирования потока, который вызовет serviceThread (), когда это начнет работать.
-
Обслуживает очередь.
Объявление
C++
virtual bool service( IOOptionBits options = 0) = 0;
Параметры
options
Опции для запроса на обслуживание.
Возвращаемое значение
Возвращает возвращаемое значение для указания результата службы.
Обсуждение
Управляйте очередью после того, как она будет запущена.
-
Метод, вызванный регулярным рейсом, распараллеливает, когда это начинает работать.
Объявление
C++
virtual void serviceThread( void *
param
);Параметры
param
Параметр, данный scheduleServiceThread (), когда был запланирован поток службы.
Обсуждение
Должен быть реализован подклассом, вызывающим scheduleServiceThread (). Реализация по умолчанию ничего не делает.
-
Изменяет число пакетов, которые может содержать очередь, прежде чем это начнет отбрасывать избыточные пакеты.
Объявление
C++
virtual bool setCapacity( UInt32
capacity
) = 0;Параметры
capacity
Новая желаемая способность.
Возвращаемое значение
Если новая способность была принята, ложь иначе, возвращает true.
-
Запускает очередь.
Объявление
C++
virtual bool start() = 0;
Возвращаемое значение
Если очередь была запущена успешно, ложь иначе, возвращает true.
Обсуждение
Этот метод вызывают к установленному сроку для запуска очереди. Это позволит пакетам быть удаленными из очереди, затем поставил цели.
-
Останавливает очередь.
Объявление
C++
virtual bool stop() = 0;
Возвращаемое значение
Возвращает предыдущее состояние выполнения очереди, истина, если очередь работала, ложь, если была уже остановлена очередь.
Обсуждение
Остановите очередь и препятствуйте тому, чтобы она отправила пакеты в свою цель.
-
Зарезервированный для будущего использования. (Только внутреннее использование)
Объявление
C++
ExpansionData *_reserved;
-
Зарезервированный для будущего использования. (Только внутреннее использование)
Объявление
C++
ExpansionData *_reserved;