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);Параметры
aStringOSString возражают, чтобы искать или скопировать.
Возвращаемое значение
Экземпляр OSSymbol представление тех же символов как
aString;NULLпри отказе.Обсуждение
Эта функция создает или возвращает уникальный экземпляр OSSymbol, представляющий строковое значение
aString. Можно сравнить его с другим OSSymbols использование==оператор.OSSymbols обычно считаются на ссылку. Эта функция или возвращает новый OSSymbol с сохранить количеством 1 или постепенно увеличивает сохранить количество существующего экземпляра.
