IORegistryIterator
Итератор по реестру.
Итератор, который может пересечь дочерние элементы или родителей ключа реестра в плоскости, и рекурсивно вызвать. Доступ к реестру защищен от многократных потоков, но экземпляр IORegistryIterator для использования одним потоком только.
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Не применимый
Objective C
@import Kernel;
Доступность
Доступный в OS X v10.0 и позже.
-
Рекурсивно вызовите в текущую запись в итерации реестра.
Объявление
C++
virtual void enterEntry(
void
);Обсуждение
Этот метод вносит текущую запись, т.е. последнюю запись, возвращенную getNextObject и др., корнем на новом уровне рекурсии.
-
Рекурсивно вызовите в текущую запись в итерации реестра.
Объявление
C++
virtual void enterEntry( const IORegistryPlane *
plane
);Параметры
plane
Новая плоскость для переключения в.
Обсуждение
Этот метод рекурсивно вызывает в запись как с enterEntry, но также и переключается от текущей плоскости до новой, установленной вызывающей стороной.
-
Выходит из уровня рекурсии, восстанавливая текущую запись.
Объявление
C++
virtual bool exitEntry(
void
);Возвращаемое значение
истина, если уровень рекурсии был отменен, ложь, если никакие рекурсивные уровни не оставляют в итерации.
Обсуждение
Этот метод отменяет enterEntry, восстанавливая текущую запись. Если больше нет уровней рекурсии для выхода, false возвращается, иначе true возвращается.
-
Возвратите текущую запись в итерации реестра.
Объявление
C++
virtual IORegistryEntry * getCurrentEntry(
void
);Возвращаемое значение
Текущий ключ реестра в итерации или нуль, если последняя итерация возвратила нуль или итерацию, недопустим (см. isValid). Запись возвратилась, сохраняется, в то время как итератор указывает на нее (текущая запись) или рекурсивно вызывает в нее. Вызывающая сторона не должна выпускать его.
Обсуждение
Этот метод возвращает текущую запись, в последний раз возвращенную getNextObject и др. Объект возвратился, сохраняется, в то время как итератор указывает на него (текущая запись) или рекурсивно вызывает в него. Вызывающая сторона не должна выпускать его. Если итерация больше не действительна (см. isValid), текущая запись является нулем.
-
Возвратите следующий объект в итерации реестра.
Объявление
C++
virtual IORegistryEntry * getNextObject(
void
);Возвращаемое значение
Следующий ключ реестра в итерации (текущая запись), или нуль, если итерация закончилась на этом уровне рекурсии. Запись возвратилась, сохраняется, в то время как итератор указывает на нее (текущая запись) или рекурсивно вызывает в нее. Вызывающая сторона не должна выпускать его.
Обсуждение
Это вызовы метода или getNextObjectFlat или getNextObjectRecursive в зависимости от опций итератор создавалось с. Это реализует определенный getNextObject метод OSIterator. Объект возвратился, сохраняется, в то время как итератор указывает на него (текущая запись) или рекурсивно вызывает в него. Вызывающая сторона не должна выпускать его.
-
Возвратите следующий объект в итерации реестра, игнорируя kIORegistryIterateRecursively опцию.
Объявление
C++
virtual IORegistryEntry * getNextObjectFlat(
void
);Возвращаемое значение
Следующий ключ реестра в итерации (текущая запись), или нуль, если итерация закончилась на этом уровне рекурсии или итерации, недопустим (см. isValid). Запись возвратилась, сохраняется, в то время как итератор указывает на нее (текущая запись) или рекурсивно вызывает в нее. Вызывающая сторона не должна выпускать его.
Обсуждение
Если kIORegistryIterateParents опция использовалась для создания итератора текущей корневой записи, этот метод возвращает следующий дочерний элемент или родителя. Объект возвратился, сохраняется, в то время как итератор указывает на него (текущая запись) или рекурсивно вызывает в него. Вызывающая сторона не должна выпускать его.
-
Возвратите следующий объект в итерации реестра и введите его.
Объявление
C++
virtual IORegistryEntry * getNextObjectRecursive(
void
);Возвращаемое значение
Следующий ключ реестра в итерации (текущая запись), или нуль, если его законченный, или итерация недопустим (см. isValid). Запись возвратилась, сохраняется, в то время как итератор указывает на нее (текущая запись) или рекурсивно вызывает в нее. Вызывающая сторона не должна выпускать его.
Обсуждение
Если итератор имеет текущую запись, и итератор уже не вошел ранее, enterEntry вызывают для рекурсивного вызова в него, т.е. сделать его новый корень, и следующий дочерний элемент или родитель, если kIORegistryIterateParents опция использовалась для создания итератора на этом новом уровне рекурсии, возвращаются. Если нет никакой текущей записи на этом уровне рекурсии, exitEntry вызывают и повторения процесса, пока итерация не возвращается к записи, с которой создавался итератор, и нуль возвращается. Объект возвратился, сохраняется, в то время как итератор указывает на него (текущая запись) или рекурсивно вызывает в него. Вызывающая сторона не должна выпускать его.
-
Проверки, что никакие изменения реестра не лишили законной силы итерацию.
Объявление
C++
virtual bool isValid(
void
);Возвращаемое значение
ложь, если итератор был лишен законной силы изменениями в реестре, истина иначе.
Обсуждение
Если итерация реестра будет лишена законной силы изменениями в реестре, то это будет сделано недопустимым, currentEntry будут считать нулем, и дальнейшие вызовы к getNextObject и др. возвратят нуль. Итератор должен быть сброшен для перезапуска итерации, когда это происходит.
-
Выполняет итерации всех записей (с getNextObject) и возвращает ряд всех возвращенных записей.
Объявление
C++
virtual OSOrderedSet * iterateAll(
void
);Возвращаемое значение
Ряд записей, возвращенных итерацией. Вызывающая сторона должна выпустить набор, когда это закончилось с ним. Нуль возвращается на отказе ресурсов.
Обсуждение
Этот метод сбросит, затем выполнит итерации всех записей в итерации (с getNextObject) до успешный (т.е. итератор допустим в конце итерации).
-
iterateOver (константа IORegistryPlane *, IOOptionBits) - iterateOver (константа IORegistryPlane *, IOOptionBits)
Создайте итератор, базированный в корне реестра.
Объявление
C++
static IORegistryIterator * iterateOver( const IORegistryPlane *
plane
, IOOptionBits options = 0 );Параметры
plane
Должен быть указан плоский объект.
options
kIORegistryIterateRecursively может быть установлен рекурсивно вызвать автоматически в каждую запись, когда это возвращается. Эта опция влияет на поведение getNextObject метода, определяющегося в суперклассе OSIterator. Другие методы переопределят это поведение. kIORegistryIterateParents может быть установлен выполнить итерации родителей каждой записи, по умолчанию дочерние элементы выполнены с помощью итераций.
Возвращаемое значение
Создаваемый экземпляр IORegistryIterator, чтобы быть выпущенным вызывающей стороной, когда это закончилось с ним.
Обсуждение
Этот метод создает IORegistryIterator, устанавливающийся с опциями выполнить итерации дочерних элементов корневой записи реестра и рекурсивно вызвать автоматически в записи, когда они возвращаются, или только, когда проинструктировано. Объект итератора отслеживает записи, рекурсивно вызванные в ранее для предотвращения циклов.
-
iterateOver (IORegistryEntry *, константа IORegistryPlane *, IOOptionBits) - iterateOver (IORegistryEntry *, константа IORegistryPlane *, IOOptionBits)
Создайте итератор, базированный в данном ключе реестра.
Объявление
C++
static IORegistryIterator * iterateOver( IORegistryEntry *
start
, const IORegistryPlane *plane
, IOOptionBits options = 0 );Параметры
start
Корневая запись для начала итерации в.
plane
Должен быть указан плоский объект.
options
kIORegistryIterateRecursively может быть установлен рекурсивно вызвать автоматически в каждую запись, когда это возвращается. Эта опция влияет на поведение getNextObject метода, определяющегося в суперклассе OSIterator. Другие методы переопределят это поведение. kIORegistryIterateParents может быть установлен выполнить итерации родителей каждой записи, по умолчанию дочерние элементы выполнены с помощью итераций.
Возвращаемое значение
Создаваемый экземпляр IORegistryIterator, чтобы быть выпущенным вызывающей стороной, когда это закончилось с ним.
Обсуждение
Этот метод создает IORegistryIterator, устанавливающийся с опциями выполнить итерации дочерних элементов или родителей корневой записи, и рекурсивно вызвать автоматически в записи, когда они возвращаются, или только, когда проинструктировано. Объект итератора отслеживает записи, рекурсивно вызванные в ранее для предотвращения циклов.
-
Выходы все уровни рекурсии, восстанавливая итератор к его состоянию при создании.
Объявление
C++
virtual void reset(
void
);Обсуждение
Этот метод выходит из всех уровней рекурсии и восстанавливает итератор к его состоянию при создании.