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 char
byte
, 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 не позволяет байтам быть добавленными.
-
appendBytes (константа, недействительная *, интервал без знака) - appendBytes (константа, недействительная *, интервал без знака)
Добавляет буфер байтов к внутреннему буферу данных объекта 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 int
newCapacity
);Параметры
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 указатель на то хранение.
-
getBytesNoCopy (интервал без знака, интервал без знака) - getBytesNoCopy (интервал без знака, интервал без знака)
Возвращает указатель во внутренний буфер данных объекта OSData с данным смещением и длиной.
Объявление
C++
virtual const void * getBytesNoCopy( unsigned int
start
, 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 int
capacity
);Параметры
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, для которого ненулевая начальная способность является жестким пределом).
-
initWithData (константа OSData *, интервал без знака, интервал без знака) - initWithData (константа OSData *, интервал без знака, интервал без знака)
Инициализирует экземпляр 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».
-
isEqualTo (константа, недействительная *, интервал без знака) - isEqualTo (константа, недействительная *, интервал без знака)
Тестирует равенство содержания объекта 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 int
capacity
);Параметры
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, для которого ненулевая начальная способность является жестким пределом).
-
withData (константа OSData *, интервал без знака, интервал без знака) - withData (константа OSData *, интервал без знака, интервал без знака)
Создает и инициализирует экземпляр OSData с содержанием, скопированным с диапазона в другом объекте OSData.
Объявление
C++
static OSData * withData( const OSData *
inData
, unsigned intstart
, unsigned intnumBytes
);Параметры
inData
Объект OSData, предоставляющий исходные данные.
start
Начальное значение индекса, с которого будут скопированы байты.
numBytes
Число байтов, которые будут скопированы с
start
.Возвращаемое значение
Экземпляр OSData, содержащего копию указанных данных, располагается от
inData
, с подсчетом ссылок 1;NULL
при отказе.Обсуждение
Новый объект OSData будет расти по мере необходимости для размещения большего количества байтов (в отличие от CFMutableData, для которого ненулевая начальная способность является жестким пределом).