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

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

Разработчик

Ссылка класса OSData

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

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

OSData

OSData обертывает массив байтов в объекте C++ для использования в наборах Libkern.

OSData представляет массив байтов как объект C++ Libkern. Объекты OSData являются непостоянными: можно добавить байты к ним и перезаписать части массива байтов.

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

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

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

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


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

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


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

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


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

Objective C

@import Kernel;

Доступность


Доступный в OS X v10.0 и позже.
  • Добавляет единственное значение байта к внутреннему буферу данных объекта OSData конкретное количество времен.

    Объявление

    C++

    virtual bool appendByte( unsigned charbyte, unsigned intnumBytes);

    Параметры

    byte

    Значение байта для добавления.

    numBytes

    Число копий byte добавлять.

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

    true если новые данные были успешно добавлены, false если нет.

    Обсуждение

    Эта функция сразу изменяет размеры буфера OSDATA, при необходимости, для размещения нового общего размера.

    Создаваемый «NoCopy» объекта OSData не позволяет байтам быть добавленными.

  • Добавляет данные, содержавшиеся в другом объекте OSData.

    Объявление

    C++

    virtual bool appendBytes( const OSData *aDataObj);

    Параметры

    aDataObj

    OSData возражают, чье содержание будет добавлено.

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

    true если новые данные были успешно добавлены, false при отказе.

    Обсуждение

    Эта функция сразу изменяет размеры буфера OSDATA, при необходимости, для размещения нового общего размера.

    Создаваемый «NoCopy» объекта OSData не позволяет байтам быть добавленными.

  • Добавляет буфер байтов к внутреннему буферу данных объекта OSData.

    Объявление

    C++

    virtual bool appendBytes( const void *bytes, unsigned intnumBytes);

    Параметры

    bytes

    Указатель на данные для добавления. Если bytes NULL тогда заполненный нулями буфер длины numBytes добавляется.

    numBytes

    Число байтов от bytes добавлять.

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

    true если новые данные были успешно добавлены, false при отказе.

    Обсуждение

    Эта функция сразу изменяет размеры буфера OSDATA, при необходимости, для размещения нового общего размера.

    Создаваемый «NoCopy» объекта OSData не позволяет байтам быть добавленными.

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

    Объявление

    C++

    virtual unsigned int ensureCapacity( unsigned intnewCapacity);

    Параметры

    newCapacity

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

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

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

    Обсуждение

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

    Нет никакого способа сократить способность OSData.

    Создаваемый «NoCopy» объекта OSData не позволяет изменять размеры.

  • Освобождает или высвобождает любые средства, используемые экземпляром OSDictionary.

    Объявление

    C++

    virtual void free();

    Обсуждение

    Эта функция не должна быть вызвана непосредственно; использовать release вместо этого.

  • Возвращает указатель на внутренний буфер данных объекта OSData.

    Объявление

    C++

    virtual const void * getBytesNoCopy() const;

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

    Указатель на внутренний буфер данных объекта OSData.

    Обсуждение

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

    При добавлении байтов или символов к объекту OSData ему, вероятно, придется перераспределить его внутреннюю память, представив недопустимый extrated указатель на то хранение.

  • Возвращает указатель во внутренний буфер данных объекта OSData с данным смещением и длиной.

    Объявление

    C++

    virtual const void * getBytesNoCopy( unsigned intstart, unsigned intnumBytes) const;

    Параметры

    start

    Смещение от основы внутреннего буфера данных.

    numBytes

    Длина окна.

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

    Указатель на байты в указанном диапазоне в объекте OSData, или 0, если тот диапазон не лежит полностью в буфере объекта.

    Обсуждение

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

    При добавлении байтов или символов к объекту OSData ему, вероятно, придется перераспределить его внутреннюю память, представив недопустимый extrated указатель на то хранение.

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

    Объявление

    C++

    virtual unsigned int getCapacity() const;

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

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

    Обсуждение

    Объекты OSData растут, когда полный для размещения дополнительных байтов. Посмотрите getCapacityIncrement и ensureCapacity.

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

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

    Объявление

    C++

    virtual unsigned int getCapacityIncrement() const;

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

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

    Обсуждение

    Объект OSData выделяет хранение для байтов в сети магазинов полного инкремента.

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

  • Возвращает число байтов в или ссылаемый объектом OSData.

    Объявление

    C++

    virtual unsigned int getLength() const;

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

    Число байтов в или ссылаемый объектом OSData.

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

    Объявление

    C++

    virtual bool initWithBytes( const void *bytes, unsigned intnumBytes);

    Параметры

    bytes

    Буфер данных для копирования.

    numBytes

    Длина bytes.

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

    true на успехе, false при отказе.

    Обсуждение

    Не для общего использования. Используйте статический метод создания экземпляра withBytes вместо этого.

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

  • Инициализирует экземпляр OSData для совместного использования буфера предоставленных данных.

    Объявление

    C++

    virtual bool initWithBytesNoCopy( void *bytes, unsigned intnumBytes);

    Параметры

    bytes

    Буфер данных для представления.

    numBytes

    Длина bytes.

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

    true на успехе, false при отказе.

    Обсуждение

    Не для общего использования. Используйте статический метод создания экземпляра withBytesNoCopy вместо этого.

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

    Объект OSData, создаваемый с совместно используемыми внешними данными, не может добавить байты, но можно получить указатель байта и изменить байты в совместно используемом буфере.

  • Инициализирует экземпляр OSData.

    Объявление

    C++

    virtual bool initWithCapacity( unsigned intcapacity);

    Параметры

    capacity

    Начальная способность OSData возражает в байтах.

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

    true на успехе, false при отказе.

    Обсуждение

    Не для общего использования. Используйте статический метод создания экземпляра withCapacity вместо этого.

    capacity может быть нуль. Объект OSData выделит буфер внутренне при необходимости и будет расти по мере необходимости для размещения большего количества байтов (в отличие от CFMutableData, для которого ненулевая начальная способность является жестким пределом).

  • Создает и инициализирует экземпляр OSData с содержанием, скопированным с другого объекта OSData.

    Объявление

    C++

    virtual bool initWithData( const OSData *inData);

    Параметры

    inData

    Объект OSData, предоставляющий исходные данные.

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

    true на успехе, false при отказе.

    Обсуждение

    Не для общего использования. Используйте статический метод создания экземпляра withData(OSData *) вместо этого.

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

  • Инициализирует экземпляр OSData с содержанием, скопированным с диапазона в другом объекте OSData.

    Объявление

    C++

    virtual bool initWithData( const OSData *inData, unsigned intstart, unsigned intnumBytes);

    Параметры

    inData

    Объект OSData, предоставляющий исходные данные.

    start

    Начальное значение индекса, с которого будут скопированы байты.

    numBytes

    Число байтов, которые будут скопированы с start.

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

    Возвраты true на успехе, false при отказе.

    Обсуждение

    Не для общего использования. Используйте статический метод создания экземпляра withData(OSData *, unsigned int, unsigned int) вместо этого.

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

  • Тестирует равенство двух объектов OSData.

    Объявление

    C++

    virtual bool isEqualTo( const OSData *aDataObj) const;

    Параметры

    aDataObj

    Объект OSData, сравниваемый с получателем.

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

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

    Обсуждение

    Два объекта OSData считают равными, если у них есть та же длина и если их буферы байта содержат то же содержание.

  • Тестирует равенство объекта OSData к произвольному объекту.

    Объявление

    C++

    virtual bool isEqualTo( const OSMetaClassBase *anObject) const;

    Параметры

    anObject

    Объект, который будет сравнен с получателем.

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

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

    Обсуждение

    Если тот объект получен из OSData и содержит эквивалентные байты той же длины, OSData считают равным другому объекту.

  • Тестирует равенство объекта OSData к OSString.

    Объявление

    C++

    virtual bool isEqualTo( const OSString *aString) const;

    Параметры

    aString

    Строковый объект, который будет сравнен с получателем.

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

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

    Обсуждение

    Эта функция сравнивает байты объекта OSData против тех из OSString, составляя возможность, что OSData мог бы явно включать nul символ как часть его общей длины. Таким образом, например, OSData возражают содержащий любого байты <'u'', 'b', '\0'> или <'u'', 'b'> выдержит сравнение как равный OSString, содержащему «usb».

  • Тестирует равенство содержания объекта OSData к массиву C байтов.

    Объявление

    C++

    virtual bool isEqualTo( const void *bytes, unsigned intnumBytes) const;

    Параметры

    bytes

    Указатель на байты для сравнения.

    numBytes

    Число байтов для сравнения.

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

    true если буферы данных равны по данной длине, false иначе.

  • Архивирует получатель в предоставленный объект OSSerialize.

    Объявление

    C++

    virtual bool serialize( OSSerialize *serializer) const;

    Параметры

    serializer

    Объект OSSerialize.

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

    true если сериализация успешно выполняется, false если нет.

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

    Объявление

    C++

    virtual unsigned int setCapacityIncrement( unsigned increment);

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

    Инкремент исходной системы хранения массива.

    Обсуждение

    OSArray выделяет хранение для объектов в сети магазинов полного инкремента.

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

  • Создает и инициализирует экземпляр OSData с копией буфера предоставленных данных.

    Объявление

    C++

    static OSData * withBytes( const void *bytes, unsigned intnumBytes);

    Параметры

    bytes

    Буфер данных для копирования.

    numBytes

    Длина bytes.

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

    Экземпляр OSData, содержащего копию предоставленного массива байтов, с подсчетом ссылок 1; NULL при отказе.

    Обсуждение

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

  • Создает и инициализирует экземпляр OSData, совместно использующего буфер предоставленных данных.

    Объявление

    C++

    static OSData * withBytesNoCopy( void *bytes, unsigned intnumBytes);

    Параметры

    bytes

    Буфер данных для представления.

    numBytes

    Длина bytes.

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

    Экземпляр OSData, совместно использующего предоставленный массив байтов с подсчетом ссылок 1; NULL<coe> on failure.

    Обсуждение

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

    Объект OSData, создаваемый с совместно используемыми внешними данными, не может добавить байты, но можно получить указатель байта и изменить байты в совместно используемом буфере.

  • Создает и инициализирует пустой экземпляр OSData.

    Объявление

    C++

    static OSData * withCapacity( unsigned intcapacity);

    Параметры

    capacity

    Начальная способность OSData возражает в байтах.

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

    Экземпляр OSData с подсчетом ссылок 1; NULL при отказе.

    Обсуждение

    capacity может быть нуль. Объект OSData выделит буфер внутренне при необходимости и будет расти по мере необходимости для размещения большего количества байтов (в отличие от CFMutableData, для которого ненулевая начальная способность является жестким пределом).

  • Создает и инициализирует экземпляр OSData с содержанием, скопированным с другого объекта OSData.

    Объявление

    C++

    static OSData * withData( const OSData *inData);

    Параметры

    inData

    Объект OSData, предоставляющий исходные данные.

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

    Экземпляр OSData, содержащего копию данных в inData, с подсчетом ссылок 1; NULL при отказе.

    Обсуждение

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

  • Создает и инициализирует экземпляр OSData с содержанием, скопированным с диапазона в другом объекте OSData.

    Объявление

    C++

    static OSData * withData( const OSData *inData, unsigned intstart, unsigned intnumBytes);

    Параметры

    inData

    Объект OSData, предоставляющий исходные данные.

    start

    Начальное значение индекса, с которого будут скопированы байты.

    numBytes

    Число байтов, которые будут скопированы с start.

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

    Экземпляр OSData, содержащего копию указанных данных, располагается от inData, с подсчетом ссылок 1; NULL при отказе.

    Обсуждение

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