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

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

Разработчик

Ссылка класса OSSerialize

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

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

OSSerialize

OSSerialize координирует сериализацию объектов C++ Libkern в поток XML.

Этот класс является по большей части внутренним к классам OSContainer, используемым для передачи таблиц свойства между ядром и пространством пользователя. Это не должно использоваться непосредственно. Классы, участвующие в сериализации, переопределяют OSObject::serialize . функция.

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

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

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

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


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

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


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

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


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

Objective C

@import Kernel;

Доступность


Доступный в OS X v10.0 и позже.
  • Добавляет отдельный символ к потоку XML.

    Объявление

    C++

    virtual bool addChar( const charaChar);

    Параметры

    aChar

    Символ для добавления к потоку XML.

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

    true если char успешно добавляется к потоку XML, false иначе.

  • Добавляет струну до к потоку XML.

    Объявление

    C++

    virtual bool addString( const char *cString);

    Параметры

    cString

    Струна до для добавления к потоку XML.

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

    true если cString успешно добавляется к потоку XML, false иначе.

  • Добавляет конечный тэг XML к потоку XML.

    Объявление

    C++

    virtual bool addXMLEndTag( const char *tagString);

    Параметры

    tagString

    Имя XML-тэга для испускания; например, «строка».

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

    true если конечный тэг XML для tagString успешно добавляется к потоку XML, false иначе.

    Обсуждение

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

    Вызов к этой функции должен сбалансировать более ранний вызов к addXMLStartTag использование того же tagString.

  • Добавляет XML, запускают тег к потоку XML.

    Объявление

    C++

    virtual bool addXMLStartTag( const OSMetaClassBase *object, const char *tagString);

    Параметры

    object

    Сериализируемый объект.

    tagString

    Имя XML-тэга для испускания; например, «строка».

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

    true если XML запускает тег для tagString успешно добавляется к потоку XML, false иначе.

    Обсуждение

    Эта функция испускает именованный тег, включенный в паре угловых скобок.

    Класс, реализующий сериализацию, должен вызвать эту функцию с именем XML-тэга, лучше всего представляющего сериализированное содержание объекта. Ограниченное количество тегов поддерживается библиотекой I/O Kit пространства пользователя:

    • массив

    • dict

    • целое число

    • ключ

    • набор

    • строка

    Вызов к этой функции должен быть сбалансирован с одной к addXMLEndTag использование того же tagString.

  • Сбрасывает объект OSSerialize.

    Объявление

    C++

    virtual void clearText();

    Обсуждение

    Эта функция является полезной оптимизацией при сериализации того же объекта неоднократно.

  • Проверки, был ли объект уже сериализирован в поток XML, испустив ссылку, если это имеет.

    Объявление

    C++

    virtual bool previouslySerialized( const OSMetaClassBase *object);

    Параметры

    object

    Объект проверить.

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

    true если object был уже сериализирован этим объектом OSSerialize, и ссылка на него успешно добавляется к потоку XML, false иначе.

    Обсуждение

    Эта функция оба сокращает размер сгенерированного XML путем испускания более коротких ссылок на существующие объекты с тем же значением (особенно для OSString, OSSymbol и OSData), и также сохраняет ссылки экземпляра так, чтобы библиотека I/O Kit пространства пользователя могла восстановить идентичный график объектных отношений.

    Все классы то переопределение OSObject::serialize. должен вызвать эту функцию прежде, чем сделать любую фактическую сериализацию; если это возвращается true, serialize реализация может сразу возвратиться true.

  • Возвращает текст XML, сериализированный до сих пор.

    Объявление

    C++

    virtual char * text() const;

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

    Nul-завершенные данные XML, сериализированные до сих пор.

  • Создает и инициализирует пустой объект OSSerialize.

    Объявление

    C++

    static OSSerialize * withCapacity( unsigned intcapacity);

    Параметры

    capacity

    Начальный размер буфера XML.

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

    Новый экземпляр OSSerialize с сохранить количеством 1; NULL при отказе.

    Обсуждение

    Сериализатор будет расти по мере необходимости для размещения большего количества данных.