OSOrderedSet
OSOrderedSet обеспечивает хранилище упорядоченного набора объектов.
OSOrderedSet является контейнером для объектов C++ Libkern (полученные из OSMetaClassBase в определенном OSObject). Хранение и доступ следуют за логикой упорядоченного набора. Данный объект хранится в наборе только один раз, но Вы можете:
Определите функцию сортировки для автоматизированного упорядочивания (только после дополнения)
Вручную вставьте новые объекты в набор (переопределяющий сортирующий)
Добавьте и удалите объекты в наборе
Тест, содержит ли набор определенный объект
Сохраните объект в определенном индексе.
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Не применимый
Objective C
@import Kernel;
Доступность
Доступный в OS X v10.0 и позже.
-
Проверяет упорядоченный набор на присутствие объекта.
Объявление
C++
virtual bool containsObject( const OSMetaClassBase *
anObject
) const;Параметры
anObject
OSMetaClassBase-производный-объект для проверки на в упорядоченном наборе.
Возвращаемое значение
true
еслиanObject
присутствует в упорядоченном наборе,false
иначе.Обсуждение
Равенство указателя используется. Эта функция возвраты
false
если переданоNULL
. -
Создает глубокую копию этого упорядоченного набора и его дочерних наборов.
Объявление
C++
OSCollection *copyCollection( OSDictionary *cycleDict = 0);
Параметры
cycleDict
Словарь всех наборов, скопированных до сих пор, который используется для отслеживания циклических ссылок. Запустить копию на верхнем уровне, передаче
NULL
.Возвращаемое значение
Недавно скопированный упорядоченный набор, с сохранить количеством 1, или
NULL
если существует недостаточно память, чтобы сделать копию.Обсуждение
Упорядоченный набор получения и любые наборы, которые это содержит, рекурсивно, копируются. Объекты, не полученные из OSCollection, сохраняются, а не копируются.
-
Гарантирует, что набор имеет достаточно пространства для хранения требуемого числа отдельных объектов.
Объявление
C++
virtual unsigned int ensureCapacity( unsigned int
newCapacity
);Параметры
newCapacity
Общее количество отдельных объектов упорядоченный набор должно быть в состоянии сохранить.
Возвращаемое значение
Новая способность упорядоченного набора, который может отличаться от числа, которое требуют (если меньший, перераспределение отказавшего хранения).
Обсуждение
Эта функция сразу изменяет размеры упорядоченного набора, при необходимости, для размещения, по крайней мере,
newCapacity
отдельные объекты. ЕслиnewCapacity
не больше, чем токовая нагрузка, или если ошибка выделения происходит, исходная способность возвращается.Нет никакого способа сократить способность OSOrderedSet.
-
Удаляет и выпускает все объекты в упорядоченном наборе.
Объявление
C++
virtual void flushCollection();
Обсуждение
Способность упорядоченного набора (и поэтому потребление непосредственной памяти) не сокращена этой функцией.
-
Deallocatesand высвобождает любые средства, используемые экземпляром OSOrderedSet.
Объявление
C++
virtual void free();
Обсуждение
Эта функция не должна быть вызвана непосредственно; использовать
release
вместо этого. -
Возвращает число объектов, которые упорядоченный набор может хранить без перераспределения.
Объявление
C++
virtual unsigned int getCapacity() const;
Возвращаемое значение
Число возражает, что упорядоченный набор может сохранить без перераспределения.
Обсуждение
Объекты OSOrderedSet растут, когда полный для размещения дополнительных объектов. Посмотрите
getCapacityIncrement
иensureCapacity
. -
Возвращает инкремент хранения упорядоченного набора.
Объявление
C++
virtual unsigned int getCapacityIncrement() const;
Возвращаемое значение
Инкремент хранения упорядоченного набора.
Обсуждение
OSOrderedSet выделяет хранение для объектов в сети магазинов полного инкремента.
-
Возвращает текущее число объектов в упорядоченном наборе.
Объявление
C++
virtual unsigned int getCount() const;
Возвращаемое значение
Текущее число объектов в упорядоченном наборе.
-
Объект в индексе 0 в упорядоченном наборе, если существует один, иначе
NULL
.Объявление
C++
virtual OSObject * getFirstObject() const;
Обсуждение
Возвращенный объект будет выпущен, если удалено из упорядоченного набора; если Вы планируете сохранить ссылку, необходимо вызвать
retain
на том объекте. -
Последний объект в упорядоченном наборе, если существует один, иначе
NULL
.Объявление
C++
virtual OSObject * getLastObject() const;
Обсуждение
Возвращенный объект будет выпущен, если удалено из упорядоченного набора; если Вы планируете сохранить ссылку, необходимо вызвать
retain
на том объекте. -
Получает объект в определенном индексе.
Объявление
C++
virtual OSObject * getObject( unsigned int
index
) const;Параметры
index
Индекс в набор.
Возвращаемое значение
Объект в данном индексе, или
NULL
если ни один не существует в том расположении.Обсуждение
Возвращенный объект будет выпущен, если удалено из набора; если Вы планируете сохранить ссылку, необходимо вызвать
retain
на том объекте. -
Возвращает контекст упорядочивания, с которым создавался упорядоченный набор.
Объявление
C++
virtual void * getOrderingRef();
Возвращаемое значение
Контекст упорядочивания упорядоченного набора, или
NULL
если это не имеет того. -
Инициализирует новый экземпляр OSOrderedSet.
Объявление
C++
virtual bool initWithCapacity( unsigned int
capacity
, OSOrderFunction orderFunc = 0, void *orderingContext = 0);Параметры
capacity
Способность исходной системы хранения нового объекта упорядоченного набора.
orderFunc
Функция C, реализующая алгоритм сортировки для набора.
orderingContext
Контекст упорядочивания, передающийся
orderFunc
.Возвращаемое значение
true
на успехе,false
при отказе.Обсуждение
Не для общего использования. Используйте статический метод создания экземпляра
withCapacity
вместо этого.capacity
должно быть ненулевым. Новый набор будет расти по мере необходимости для размещения большего количества ключевых/объектных пар (в отличие от Базовых наборов Основы, для которых начальная способность является жестким пределом).Если
orderFunc
предоставлен, это используетсяsetObject(const OSMetaClassBase *)
определить, где вставить новый объект. Другие функции параметра объекта игнорируют упорядочивание.orderingContext
не сохраняется или иначе управляется памятью упорядоченным набором. Если это должно быть освобождено, необходимо отследить ссылки на него и упорядоченный набор для освобождения его соответственно. ПосмотритеgetOrderingRef
. -
Тестирует равенство OSOrderedSet против произвольного объекта.
Объявление
C++
virtual bool isEqualTo( const OSMetaClassBase *
anObject
) const;Параметры
anObject
Объект, сравниваемый с получателем.
Возвращаемое значение
true
если два объекта эквивалентны,false
иначе.Обсуждение
Если другой объект получен из OSOrderedSet и выдерживает сравнение равный как OSOrderedSet, объект OSOrderedSet считают равным другому объекту.
-
Тестирует равенство двух объектов OSOrderedSet.
Объявление
C++
virtual bool isEqualTo( const OSOrderedSet *
anOrderedSet
) const;Параметры
anOrderedSet
Объект упорядоченного набора, сравниваемый с получателем.
Возвращаемое значение
true
если два набора эквивалентны,false
иначе.Обсуждение
Два объекта OSOrderedSet считают равными, если у них есть то же количество и те же объектные значения указателя в том же порядке.
-
Проверяет упорядоченный набор на присутствие объекта.
Объявление
C++
virtual bool member( const OSMetaClassBase *
anObject
) const;Параметры
anObject
OSMetaClassBase-производный-объект для проверки на в упорядоченном наборе.
Возвращаемое значение
true
еслиanObject
присутствует в упорядоченном наборе,false
иначе.Обсуждение
Равенство указателя используется. Возвраты
false
если переданоNULL
.containsObject(const OSMetaClassBase *)
проверки наNULL
прежде, чем отсканировать содержание, и поэтому более эффективно, чем эта функция. -
Вызывает функцию порядка упорядоченного набора против a
NULL
объект.Объявление
C++
virtual SInt32 orderObject( const OSMetaClassBase *
anObject
);Параметры
anObject
Объект, который будет упорядочен.
Возвращаемое значение
Значение упорядочивания для объекта.
Обсуждение
Это вызовы функции порядок упорядоченного набора функционирует с
anObject
,NULL
, и контекст упорядочивания (илиNULL
если ни один не был установлен), и возвращает результат той функции. -
Удаляет объект из упорядоченного набора.
Объявление
C++
virtual void removeObject( const OSMetaClassBase *
anObject
);Параметры
anObject
OSMetaClassBase-производный-объект, который будет удален из упорядоченного набора.
Обсуждение
Объект, удаленный из упорядоченного набора, выпущен.
-
Устанавливает инкремент хранения упорядоченного набора.
Объявление
C++
virtual unsigned int setCapacityIncrement( unsigned
increment
);Возвращаемое значение
Новый инкремент хранения упорядоченного набора, который может отличаться от числа, которое требуют.
Обсуждение
OSOrderedSet выделяет хранение для объектов в сети магазинов полного инкремента. Вызывание этой функции сразу не перераспределяет хранение.
-
Добавляет объект к OSOrderedSet в индексе 0, если это уже не присутствует.
Объявление
C++
virtual bool setFirstObject( const OSMetaClassBase *
anObject
);Параметры
anObject
OSMetaClassBase-производный-объект, который будет добавлен к упорядоченному набору.
Возвращаемое значение
true
еслиanObject
был успешно добавлен к упорядоченному набору,false
иначе (включая то, если это уже было в упорядоченном наборе в каком-либо индексе).Обсуждение
Набор добавляет хранение для размещения нового объекта, при необходимости. Если успешно добавлено, объект сохраняется.
Эта функция игнорирует любую функцию упорядочивания упорядоченного набора и может разрушить автоматический механизм сортировки. Только вызовите эту функцию при управлении упорядоченным набором непосредственно.
A
false
возвращаемое значение может означать любого этоanObject
уже присутствует в наборе, или что произошел сбой выделения памяти. Если необходимо знать, присутствует ли объект уже, использоватьcontainsObject(const OSMetaClassBase *)
. -
Добавляет объект в конце OSOrderedSet, если это уже не присутствует.
Объявление
C++
virtual bool setLastObject( const OSMetaClassBase *
anObject
);Параметры
anObject
OSMetaClassBase-производный-объект, который будет добавлен к упорядоченному набору.
Возвращаемое значение
true
еслиanObject
был успешно добавлен к упорядоченному набору,false
иначе (включая то, если это уже было в упорядоченном наборе в каком-либо индексе).Обсуждение
Набор добавляет хранение для размещения нового объекта, при необходимости. Если успешно добавлено, объект сохраняется.
Эта функция игнорирует любую функцию упорядочивания упорядоченного набора и может разрушить автоматический механизм сортировки. Только вызовите эту функцию при управлении упорядоченным набором непосредственно.
A
false
возвращаемое значение может означать любого этоanObject
уже присутствует в наборе, или что произошел сбой выделения памяти. Если необходимо знать, присутствует ли объект уже, использоватьcontainsObject(const OSMetaClassBase *)
. -
Добавляет объект к OSOrderedSet, если это уже не присутствует, храня его в сортированном порядке, если существует функция порядка.
Объявление
C++
virtual bool setObject( const OSMetaClassBase *
anObject
);Параметры
anObject
OSMetaClassBase-производный-объект, который будет добавлен к упорядоченному набору.
Возвращаемое значение
true
еслиanObject
был успешно добавлен к упорядоченному набору,false
иначе (включая то, если это уже было в упорядоченном наборе).Обсуждение
Набор добавляет хранение для размещения нового объекта, при необходимости. Если успешно добавлено, объект сохраняется.
Если
anObject
уже не находится в упорядоченном наборе и существует функция порядка, этот функциональные циклы через существующие объекты, вызывая функцию порядка с параметрами каждый existingObject,anObject
, и контекст упорядочивания (илиNULL
если ни один не был установлен), пока функция порядка не возвращает значение, больше, чем или равный 0. Это тогда вставляетanObject
в индексе существующего объекта.Если нет никакой функции порядка, объект вставляется в индексе 0.
A
false
возвращаемое значение может означать любого этоanObject
уже присутствует в наборе, или что произошел сбой выделения памяти. Если необходимо знать, присутствует ли объект уже, использоватьcontainsObject(const OSMetaClassBase *)
. -
setObject (интервал без знака, константа OSMetaClassBase *) - setObject (интервал без знака, константа OSMetaClassBase *)
Добавляет объект к OSOrderedSet в указанном индексе, если он уже не присутствует.
Объявление
C++
virtual bool setObject( unsigned int
index
, const OSMetaClassBase *anObject
);Параметры
index
Индекс, в котором можно вставить новый объект.
anObject
OSMetaClassBase-производный-объект, который будет добавлен к упорядоченному набору.
Возвращаемое значение
true
если объект был успешно добавлен к упорядоченному набору,false
иначе (включая то, если это уже было в наборе).Обсуждение
Набор добавляет хранение для размещения нового объекта, при необходимости. Если успешно добавлено, объект сохраняется.
Эта функция игнорирует любую функцию упорядочивания упорядоченного набора и может разрушить автоматический механизм сортировки. Только вызовите эту функцию при управлении упорядоченным набором непосредственно.
A
false
возвращаемое значение может означать или что объект уже присутствует в наборе, или что произошел сбой выделения памяти. Если необходимо знать, присутствует ли объект уже, использоватьcontainsObject containsObject
. -
Объявление
C++
virtual unsigned setOptions( unsigned
options
, unsignedmask
, void *context = 0);Параметры
options
Битовое поле, значения которого поворачивают опции на (1) или прочь (0).
mask
Маска, указывающая, который биты в
options
измениться. Передайте 0 для получения целого текущего битового поля опций, не изменяя настроек.context
Неиспользованный.
Возвращаемое значение
Битовое поле опций, как это было перед операцией присвоения.
Обсуждение
Расширения ядра не должны вызывать эту функцию.
Опции дочерних наборов изменяются, только если фактически изменяются опции упорядоченного набора получения.
-
Создает и инициализирует пустой OSOrderedSet.
Объявление
C++
static OSOrderedSet * withCapacity( unsigned int
capacity
, OSOrderFunction orderFunc = 0, void *orderingContext = 0);Параметры
capacity
Способность исходной системы хранения нового объекта упорядоченного набора.
orderFunc
Функция C, реализующая алгоритм сортировки для набора.
orderingContext
Контекст упорядочивания, передающийся
orderFunc
.Возвращаемое значение
Пустой экземпляр OSOrderedSet с сохранить количеством 1;
NULL
при отказе.Обсуждение
capacity
должно быть ненулевым. Новый OSOrderedSet будет расти по мере необходимости для размещения большего количества ключевых/объектных пар (в отличие от Базовых наборов Основы, для которых начальная способность является жестким пределом).Если
orderFunc
предоставлен, это используетсяsetObject(const OSMetaClassBase *)
определить, где вставить новый объект. Другие функции параметра объекта игнорируют упорядочивание.orderingContext
не сохраняется или иначе управляется памятью упорядоченным набором. Если это должно быть освобождено, необходимо отследить ссылки на него и упорядоченный набор для освобождения его соответственно. ПосмотритеgetOrderingRef
.
-
Функция сортировки, используемая OSOrderedSet для упорядочивания объектов.
Объявление
C++
typedef SInt32 ( *OSOrderFunction)( const OSMetaClassBase *obj1, const OSMetaClassBase *obj2, void *context);
Параметры
obj1
Объект от упорядоченного набора. Может быть
NULL
.obj2
Объект, упорядочиваемый в упорядоченном наборе. Может быть
NULL
.context
Указатель на предоставленный пользователями контекст. Может быть
NULL
.Возвращаемое значение
Результат сравнения объекта:
отрицательная величина, если obj2 должен предшествовать obj1,
положительное значение, если obj1 должен предшествовать obj2,
и 0, если obj1 и obj2 имеют эквивалентное упорядочивание.
Оператор импорта
Objective C
#include <OSOrderedSet.h>;
Доступность
Доступный в OS X v10.0 через OS X v10.5.