IOCommandPool
Управляет пулом команд, наследовавшихся от IOCommand.
Класс IOCommandPool используется для управления пулом команд, наследовавшихся от IOCommand. Это включает метод фабрики создать пул определенного размера. Как только метод фабрики вызывается, семафор обнуляется. Вызывающая сторона должна тогда поместить команды в пул путем создания команды (через метод фабрики контроллера или выделение памяти) и вызова returnCommand метода с недавно создаваемой командой как ее параметр.
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Не применимый
Objective C
@import Kernel;
Доступность
Доступный в OS X v10.6 и позже.
-
Никогда не должен использоваться, не устаревший. Посмотрите IOCommandPool:: withWorkLoop.
Объявление
C++
static IOCommandPool *commandPool( IOService *
inOwner
, IOWorkLoop *inWorkLoop
, UInt32 inSize =kIOCommandPoolDefaultSize
); -
Объявление
C++
virtual IOReturn gatedGetCommand( IOCommand **
vCommand
, boolvBlock
);Параметры
vCommand
Указатель на указатель на IOCommand возражает, где будет сохранена возвращенная команда.
vBlock
bool, указывающий, блокировать ли запрос до команды, становится доступным.
Возвращаемое значение
Возвраты kIOReturnNoResources, если никакая команда не доступна и клиент, не хотят блокировать, пока каждый действительно не становится доступным. kIOReturnSuccess, если vCommand параметр допустим.
Обсуждение
gatedGetCommand метод используется для сериализации экстракции команды от пула позади логического элемента команды, runAction-редактора getCommand.
-
Объявление
C++
virtual IOReturn gatedReturnCommand( IOCommand *
vCommand
);Параметры
vCommand
Указатель на IOCommand возражает, чтобы быть возвращенным к пулу.
Возвращаемое значение
Всегда возвраты kIOReturnSuccess, если vCommand параметр допустим.
Обсуждение
gatedReturnCommand метод используется для сериализации возврата команды к пулу позади логического элемента команды, runAction-редактора returnCommand.
-
Объявление
C++
virtual IOCommand *getCommand( bool blockForCommand = true);
Параметры
blockForCommand
Если вызывающая сторона хотела бы иметь свой поток, в котором спят, пока команда не доступна, это должно передать истину, еще ложь.
Возвращаемое значение
Если вызывающая сторона передаст истину в blockForCommand, то getCommand гарантирует, что результатом будет указатель на объект IOCommand от пула. Если вызывающая сторона передает ложь, он или она ответственен за проверку, был ли возвращен ненулевой указатель.
Обсуждение
getCommand метод используется для получения указателя на объект типа IOCommand от пула.
-
Никогда не должен использоваться, не устаревший. См. initWithWorkLoop.
Объявление
C++
virtual bool init( IOService *
inOwner
, IOWorkLoop *inWorkLoop
, UInt32 inSize =kIOCommandPoolDefaultSize
); -
Основной инициализатор для объекта IOCommandPool.
Объявление
C++
virtual bool initWithWorkLoop( IOWorkLoop *
inWorkLoop
);Параметры
inWorkLoop
workloop, с которым должен синхронизироваться этот пул команды.
Возвращаемое значение
Если пул команды был успешно инициализирован, возвращает true.
Обсуждение
Основной инициализатор для IOCommandPool. Должен, вероятно, использовать IOCommandPool:: withWorkLoop (), поскольку проще использовать.
-
Объявление
C++
virtual void returnCommand( IOCommand *
commmand
);Параметры
commmand
Команда для размещения в пуле.
Обсуждение
returnCommand метод используется для размещения объекта типа IOCommand в пул, ли это быть первым разом или в 1000-й раз.
-
Никогда не должен использоваться, не устаревший. Посмотрите IOCommandPool:: withWorkLoop.
Объявление
C++
static IOCommandPool *commandPool( IOService *
inOwner
, IOWorkLoop *inWorkLoop
, UInt32 inSize =kIOCommandPoolDefaultSize
); -
Основной метод фабрики для класса IOCommandPool
Объявление
C++
static IOCommandPool *withWorkLoop( IOWorkLoop *
inWorkLoop
);Параметры
inWorkLoop
workloop, с которым должен синхронизироваться этот пул команды.
Возвращаемое значение
Возвращает указатель на экземпляр IOCommandPool в случае успеха, иначе NULL.
Обсуждение
withWorkLoop метод - то, что известно как метод фабрики. Это создает новый экземпляр IOCommandPool и возвращает указатель на тот объект.
-
Объявление
C++
struct ExpansionData { };
Обсуждение
Эта структура будет использоваться для расширения capablilties IOEventSource в будущем.
-
Зарезервированный для будущего использования. (Только внутреннее использование)
Объявление
C++
ExpansionData *reserved;