OSSymbol
OSSymbol обертывает струну до в уникальный объект C++ для использования в качестве ключей в наборах Libkern.
OSSymbol является контейнерным классом для управления uniqued строки, например, используемые в качестве ключей словаря. Его статическое создание экземпляра функционирует проверка на существующий экземпляр OSSymbol с требуемым значением струны до прежде, чем создать новый объект. Если экземпляр уже существует в пуле уникальных символов, его подсчет ссылок постепенно увеличивается, и существующий экземпляр возвращается.
В то время как OSSymbol предусматривает uniquing данного строкового значения, это не прилагает усилия для осуществления неизменности того значения. Изменения содержания OSSymbol нужно избежать.
Используйте ограничения
За очень немногими исключениями в Наборе I/O все находящиеся в Libkern классы C++, функции и макросы небезопасны использовать в основном контексте прерывания. Консультируйтесь с документацией Набора I/O, связанной с основными прерываниями для получения дополнительной информации.
OSSymbol не обеспечивает защиты параллелизма; это до контекста использования для обеспечивания любой необходимой защиты. Некоторые части Набора I/O, такие как IORegistryEntry, обрабатывают синхронизацию через определенные функции членства для установки свойств.
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Не применимый
Objective C
@import Kernel;
Доступность
Доступный в OS X v10.0 и позже.
-
Переопределения
OSObject::free
синхронизироваться с пулом символа.Объявление
C++
virtual void free();
Обсуждение
Поскольку OSSymbol совместно использует экземпляры, функции подсчета ссылок должны синхронизироваться, доступ к внутренним классом таблицам раньше отслеживал те экземпляры.
-
Переопределенный для предотвращения создания двойных символов.
Объявление
C++
virtual bool initWithCString( const char *
cString
);Параметры
cString
Неиспользованный.
Возвращаемое значение
false
.Обсуждение
Реализация OSString's переопределений для предотвращения создания отличного OSSymbols с тем же строковым значением.
-
Переопределенный для предотвращения создания двойных символов.
Объявление
C++
virtual bool initWithCStringNoCopy( const char *
cString
);Параметры
cString
Неиспользованный.
Возвращаемое значение
false
.Обсуждение
Реализация OSString's переопределений для предотвращения создания отличного OSSymbols с тем же строковым значением.
-
Переопределенный для предотвращения создания двойных символов.
Объявление
C++
virtual bool initWithString( const OSString *
aString
);Параметры
aString
Неиспользованный.
Возвращаемое значение
false
.Обсуждение
Реализация OSString's переопределений для предотвращения создания отличного OSSymbols с тем же строковым значением.
-
Тестирует равенство объекта OSSymbol к произвольному объекту.
Объявление
C++
virtual bool isEqualTo( const OSMetaClassBase *
anObject
) const;Параметры
anObject
Объект, который будет сравнен с получателем.
Возвращаемое значение
Возвраты
true
если два объекта эквивалентны,false
иначе.Обсуждение
Если тот объект получен из OSString и содержит эквивалентные байты той же длины, OSSymbol считают равным другому объекту.
-
Тестирует равенство объекта OSSymbol со струной до.
Объявление
C++
virtual bool isEqualTo( const char *
cString
) const;Параметры
cString
Струна до для сравнения с получателем.
Возвращаемое значение
true
если символы OSSYMBOL эквивалентны струне до,false
иначе. -
Тестирует равенство двух объектов OSSymbol.
Объявление
C++
virtual bool isEqualTo( const OSSymbol *
aSymbol
) const;Параметры
aSymbol
Объект OSSymbol, сравниваемый с получателем.
Возвращаемое значение
true
если два объекта OSSymbol эквивалентны,false
иначе.Обсуждение
Два объекта OSSymbol считают равными, если у них есть тот же адрес; т.е. эта функция эквивалентна
==
оператор. -
Переопределения
OSObject::taggedRelease(const void *)
синхронизироваться с пулом символа.Объявление
C++
virtual void taggedRelease( const void *
tag
) const;Параметры
tag
Используемый для отслеживания ссылок набора.
Обсуждение
Поскольку OSSymbol совместно использует экземпляры, функции подсчета ссылок должны синхронизироваться, доступ к внутренним классом таблицам раньше отслеживал те экземпляры.
-
taggedRelease (константа, недействительная *, интервал константы) - taggedRelease (константа, недействительная *, интервал константы)
Переопределения
OSObject::taggedRelease(const void *, const int)
синхронизироваться с пулом символа.Объявление
C++
virtual void taggedRelease( const void *
tag
, const intfreeWhen
) const;Параметры
tag
Используемый для отслеживания ссылок набора.
freeWhen
Если постепенное уменьшение подсчета ссылок делает его> =
freeWhen
, объект сразу освобожден.Обсуждение
Поскольку OSSymbol совместно использует экземпляры, функции подсчета ссылок должны синхронизироваться, доступ к внутренним классом таблицам раньше отслеживал те экземпляры.
-
Возвращает OSSymbol, создаваемый из струны до или существующего уникального экземпляра того же значения.
Объявление
C++
static const OSSymbol * withCString( const char *
cString
);Параметры
cString
Струна до, чтобы искать или скопировать.
Возвращаемое значение
Экземпляр OSSymbol представление тех же символов как
cString
;NULL
при отказе.Обсуждение
Эта функция возвращает уникальный экземпляр OSSymbol, представляющий строковое значение
cString
. Можно сравнить его с другим OSSymbols использование==
оператор.OSSymbols обычно считаются на ссылку. Эта функция или возвращает новый OSSymbol с сохранить количеством 1 или постепенно увеличивает сохранить количество существующего экземпляра.
-
Возвращает OSSymbol, создаваемый из струны до, не копируя ту строку или существующий уникальный экземпляр того же значения.
Объявление
C++
static const OSSymbol * withCStringNoCopy( const char *
cString
);Параметры
cString
Струна до, чтобы искать или использовать.
Возвращаемое значение
Экземпляр OSSymbol представление тех же символов как
cString
;NULL
.Обсуждение
Избегайте использования этой функции; OSSymbols должны принадлежать их внутренние строковые буферы.
Эта функция возвращает уникальный экземпляр OSSymbol, представляющий строковое значение
cString
. Можно сравнить его с другим OSSymbols использование==
оператор.OSSymbols обычно считаются на ссылку. Эта функция или возвращает новый OSSymbol с сохранить количеством 1 или постепенно увеличивает сохранить количество существующего экземпляра.
-
Возвращает OSSymbol, создаваемый из OSString или существующего уникального экземпляра того же значения.
Объявление
C++
static const OSSymbol * withString( const OSString *
aString
);Параметры
aString
OSString возражают, чтобы искать или скопировать.
Возвращаемое значение
Экземпляр OSSymbol представление тех же символов как
aString
;NULL
при отказе.Обсуждение
Эта функция создает или возвращает уникальный экземпляр OSSymbol, представляющий строковое значение
aString
. Можно сравнить его с другим OSSymbols использование==
оператор.OSSymbols обычно считаются на ссылку. Эта функция или возвращает новый OSSymbol с сохранить количеством 1 или постепенно увеличивает сохранить количество существующего экземпляра.