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

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

Разработчик

Ссылка класса OSCollection

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

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

OSCollection

Абстрактный суперкласс для наборов Libkern.

OSCollection является абстрактным суперклассом для всех наборов объекта C++ Libkern. Это определяет необходимые интерфейсы для управления пространством памяти и итерации через произвольный набор (см. OSIterator и классы OSCollectionIterator). Это до конкретных подклассов для определения их определенных функций управления контентом.

Используйте ограничения

За очень немногими исключениями в Наборе I/O все находящиеся в Libkern классы C++, функции и макросы небезопасны использовать в основном контексте прерывания. Консультируйтесь с документацией Набора I/O, связанной с основными прерываниями для получения дополнительной информации.

OSCollection не обеспечивает защиты параллелизма; это до контекста использования для обеспечивания любой необходимой защиты. Некоторые части Набора I/O, такие как IORegistryEntry, обрабатывают синхронизацию через определенные функции членства для установки свойств.

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


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

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


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

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


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

Objective C

@import Kernel;

Доступность


Доступный в OS X v10.0 и позже.
  • Создает глубокую копию набора.

    Объявление

    C++

    virtual OSCollection *copyCollection( OSDictionary *cycleDict = 0);

    Параметры

    cycleDict

    Словарь всех наборов, скопированных до сих пор, для запуска копии в высокоуровневой передаче NULL для cycleDict.

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

    Недавно скопированный набор, NULL при отказе.

    Обсуждение

    Эта функция копирует набор и все содержавшие наборы рекурсивно. Объекты, не полученные из OSCollection, сохраняются, а не копируются.

    Подклассы OSCollection должны переопределить эту функцию для надлежащей поддержки глубоких копий.

  • Гарантирует, что набор имеет достаточно пространства для хранения требуемого числа объектов.

    Объявление

    C++

    virtual unsigned int ensureCapacity( unsigned intnewCapacity) = 0;

    Параметры

    newCapacity

    Общее количество объектов набор должно быть в состоянии сохранить.

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

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

    Обсуждение

    Подклассы реализуют эту чисто виртуальную функцию-член для корректировки их хранения так, чтобы они могли содержать, по крайней мере, newCapacity объекты. Наборы Libkern обычно выделяют хранение в сети магазинов их полного инкремента.

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

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

  • Освобождает набор, выпуская любые сохраненные объекты.

    Объявление

    C++

    virtual void flushCollection() = 0;

    Обсуждение

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

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

    Объявление

    C++

    virtual unsigned int getCapacity() const = 0;

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

    Число возражает, что набор может сохранить без перераспределения.

    Обсуждение

    Подклассы должны реализовать эту чисто виртуальную функцию-член.

  • Возвращает инкремент хранения набора.

    Объявление

    C++

    virtual unsigned int getCapacityIncrement() const = 0;

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

    Инкремент хранения набора.

    Обсуждение

    Подклассы должны реализовать эту чисто виртуальную функцию-член. Большинство подклассов набора выделяет свое хранение в сети магазинов полного инкремента.

    Посмотрите ensureCapacity поскольку, как используется полный инкремент.

  • Возвращает число объектов в наборе.

    Объявление

    C++

    virtual unsigned int getCount() const = 0;

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

    Число объектов в наборе.

    Обсуждение

    Подклассы должны реализовать эту чисто виртуальную функцию-член.

  • Возвращает следующий элемент набора.

    Объявление

    C++

    virtual bool getNextObjectForIterator( void *iterationContext, OSObject **nextObject) const = 0;

    Параметры

    iterationContext

    Итеративный контекст.

    nextObject

    Объект возвратился в отношении вызывающей стороны.

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

    true если объект был найден, false иначе.

    Обсуждение

    Эту чисто виртуальную функцию-член, которую должны реализовать подклассы, вызывает OSCollectionIterator для получения следующего объекта для данного итеративного контекста. Объект коллекции должен интерпретировать iterationContext соответственно, усовершенствуйте контекст от его текущего объекта до следующего объекта (если это существует), возвратите тот объект ссылкой в nextObject, и возвратитесь true для вызова функции. Если существует никакой следующий объект, объект коллекции должен возвратиться false.

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

  • Дорожки обновляют к набору.

    Объявление

    C++

    void haveUpdated();

    Обсуждение

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

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

    Объявление

    C++

    virtual bool init();

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

    true на успехе, false иначе.

    Обсуждение

    Эта функция используется для инициализации состояния в недавно создаваемом объекте OSCollection.

  • Инициализирует итеративный контекст для подкласса набора.

    Объявление

    C++

    virtual bool initIterator( void *iterationContext) const = 0;

    Параметры

    iterationContext

    Итеративный контекст для инициализации.

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

    true если инициализация была успешна, false иначе.

    Обсуждение

    Эту чисто виртуальную функцию-член, которую должны реализовать подклассы, вызывает объект OSCollectionIterator инициализировать итеративный контекст для набора. Объект коллекции должен интерпретировать iterationContext соответственно и инициализируйте его содержание для начала итерации.

    Эта функция может неоднократно вызываться для данного контекста, каждый раз, когда итератор сбрасывается через OSCollectionIterator:: функция сброса.

  • Возвращает размер в байтах итеративного контекста подкласса.

    Объявление

    C++

    virtual unsigned int iteratorSize() const = 0;

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

    Размер в байтах итеративного контекста необходим подклассу OSCollection.

    Обсуждение

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

  • Устанавливает инкремент хранения набора.

    Объявление

    C++

    virtual unsigned int setCapacityIncrement( unsigned increment) = 0;

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

    Новый инкремент хранения набора, который может отличаться от числа, которое требуют.

    Обсуждение

    Подклассы должны реализовать эту чисто виртуальную функцию-член. Большинство подклассов набора выделяет свое хранение в сети магазинов полного инкремента.

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

    Установка полного инкремента не инициировала непосредственную корректировку хранения набора.

    См. ensureCapacity для того, как используется полный инкремент.

  • Рекурсивно биты опции наборов в этом наборе и всех дочерних наборах.

    Объявление

    C++

    virtual unsigned setOptions( unsigned options, unsigned mask, void *context = 0);

    Параметры

    options

    Битовое поле, значения которого поворачивают опции на (1) или прочь (0).

    mask

    Маска, указывающая, который биты в options измениться. Передайте 0 для получения целого текущего битового поля опций, не изменяя настроек.

    context

    Неиспользованный.

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

    Битовое поле опций, как это было перед операцией присвоения.

    Обсуждение

    Расширения ядра не должны вызывать эту функцию.

    Единственная использующаяся в настоящее время опция kImmutable.

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

Типы данных

  • Объявление

    CPlusPlus

    typedef enum { kImmutable = 0x00000001, kSort = 0x00000002, kMASK = ( unsigned) -1 } _OSCollectionFlags;

    Константы

    • kImmutable

      kImmutable

    Обсуждение

    Используемый с setOptions указать содержание набора должно или не должно изменяться.

    Объект IORegistryEntry отмечает наборы, неизменные, когда установлено как свойства ключа реестра, это присоединено к плоскости. Это обычно - консультативный флаг, используемый для отладки; установка его не означает, что набор фактически запретит модификации.

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