Класс MemoryRegion
Публичные функции
const char & | at (int index) const |
const char * | constData () const |
const char * | data () const |
bool | isEmpty () const |
bool | isNull () const |
bool | isSecure () const |
MemoryRegion (const char *str) | |
MemoryRegion (const MemoryRegion &from) | |
MemoryRegion (const QByteArray &from) | |
MemoryRegion & | operator= (const MemoryRegion &from) |
MemoryRegion & | operator= (const QByteArray &from) |
int | size () const |
QByteArray | toByteArray () const |
Защищённые методы
char & | at (int index) |
char * | data () |
MemoryRegion (bool secure) | |
MemoryRegion (const QByteArray &from, bool secure) | |
MemoryRegion (int size, bool secure) | |
bool | resize (int size) |
void | set (const QByteArray &from, bool secure) |
void | setSecure (bool secure) |
Подробное описание
Массив байтов, который может быть дополнительно защищён.
Сам по себе этот класс в основном непригоден для использования. Следует либо использовать его как
подкласс SecureArray, либо вызвать
toByteArray()
для преобразования в QByteArray
.
Следует обратить внимание, что данный класс можно разделять между несколькими потоками исполнения, так как реализация основана на механизме копирования при записи.
Примеры
Описание конструкторов и деструктора
MemoryRegion() [1/6]
QCA::MemoryRegion::MemoryRegion (const char * str) |
Создаёт новую область памяти из массива символов с завершающим нулём.
Параметры
str | Указатель на массив данных для копирования |
MemoryRegion() [2/6]
QCA::MemoryRegion::MemoryRegion (const QByteArray & from) |
Создаёт новый
MemoryRegion
из
данных в массиве байтов.
Параметры
from | Объект QByteArray для копирования |
MemoryRegion() [3/6]
QCA::MemoryRegion::MemoryRegion (const MemoryRegion & from) |
Стандартный конструктор копирования.
Параметры
from | Объект MemoryRegion для копирования |
MemoryRegion() [4/6]
QCA::MemoryRegion::MemoryRegion (bool secure) | protected |
Создаёт область памяти, при необходимости используя безопасное хранилище.
Параметры
secure | Если true , область памяти будет использовать безопасное хранилище |
Примечание.
Метод создаст область памяти без какого-либо содержимого (т.е. как
isNull(),
так и
isEmpty()
вернут true
.
MemoryRegion() [5/6]
QCA::MemoryRegion::MemoryRegion (int size, bool secure ) | protected |
Создаёт область памяти, при необходимости используя безопасное хранилище.
Параметры
size | Количество байтов в области памяти. |
secure | Если true , область памяти будет использовать безопасное хранилище |
MemoryRegion() [6/6]
QCA::MemoryRegion::MemoryRegion (const QByteArray & from, bool secure ) | protected |
Создаёт область памяти, при необходимости используя безопасное хранилище.
Этот вариант конструктора позволяет инициализировать область памяти из существующего массива.
Параметры
from | Байтовый массив для копирования |
secure | Если true , область памяти будет использовать безопасное хранилище |
Описание методов
operator=() [1/2]
MemoryRegion& QCA::MemoryRegion::operator= (const MemoryRegion & from) |
Стандартный оператор присваивания.
Параметры
from | Объект MemoryRegion для копирования |
operator=() [2/2]
MemoryRegion& QCA::MemoryRegion::operator= (const QByteArray & from) |
Стандартный оператор присваивания.
Параметры
from | Объект QByteArray для копирования |
isNull()
bool QCA::MemoryRegion::isNull () const |
Проверяет, является ли
MemoryRegion
null
(т.е.,
был создан как нулевой массив, и его размер не изменялся).
Вероятно, это не то, что приложение пытается узнать. Если нужно определить, есть ли в массиве байты, следует использовать вместо него isEmpty().
isSecure()
bool QCA::MemoryRegion::isSecure () const |
Проверяет, использует ли
MemoryRegion
безопасную память или нет.
В этом контексте память безопасна, если она не выгружается на диск.
Возвращает true
, если область памяти безопасна.
toByteArray()
QByteArray QCA::MemoryRegion::toByteArray () const |
Преобразует эту область памяти в массив байтов.
Примечание.
Метод сделает защищённые данные небезопасными.
См. также data() и constData() для других способов преобразования в «доступный» формат.
Примеры
isEmpty()
bool QCA::MemoryRegion::isEmpty () const |
Возвращает true
, если размер области памяти равен нулю.
size()
int QCA::MemoryRegion::size () const |
Возвращает количество байтов в области памяти.
data() [1/2]
const char* QCA::MemoryRegion::data () const |
Преобразует содержимое области памяти в C-совместимый символьный массив.
Область состоит из байтов size(), за которыми следует нулевой терминатор.
См. также toByteArray для альтернативного подхода.
constData, который эквивалентен этому методу, но исключает вероятность того, что компилятор выберет неправильную версию.
constData()
const char* QCA::MemoryRegion::constData () const |
Преобразует содержимое области памяти в C-совместимый символьный массив.
Область состоит из байтов size(), за которыми следует нулевой терминатор.
См. также toByteArray для альтернативного подхода.
data, который эквивалентен этому методу.
at() [1/2]
const char& QCA::MemoryRegion::at (int index) const |
Получает значение ячейки памяти в указанной позиции.
Параметры
index | Смещение в области памяти |
Примечание.
Содержимое области памяти находится в диапазоне от 0
до
size()-1
.
Контент в позиции
size()
всегда является нулевым ограничителем.
data() [2/2]
char* QCA::MemoryRegion::data () | protected |
Преобразует содержимое области памяти в C-совместимый символьный массив.
Область состоит из байтов size(), за которыми следует нулевой терминатор.
at() [2/2]
char& QCA::MemoryRegion::at (int index) | protected |
Получает значение ячейки памяти в указанной позиции.
Параметры
index | Смещение в области памяти |
Примечание.
Содержимое области памяти находится в диапазоне от 0
до
size()-1
.
Контент в позиции
size()
всегда является нулевым ограничителем.
resize()
bool QCA::MemoryRegion::resize (int size) | protected |
Изменяет размер области памяти до указанного размера.
Параметры
size | Новый размер области |
set()
void QCA::MemoryRegion::set (const QByteArray & from, bool secure ) | protected |
Изменяет область памяти в соответствии с указанным массивом байтов.
Метод изменяет размер области памяти в соответствии с размером массива байтов.
Параметры
from | Байтовый массив для копирования |
secure | Если true , область памяти будет использовать безопасное хранилище |
setSecure()
void QCA::MemoryRegion::setSecure (bool secure) | protected |
Преобразует область памяти для использования указанного типа памяти.
Метод может выполнять копирование данных из безопасного хранилища в небезопасное или из небезопасного в безопасное.
Параметры
secure | Если true , использует безопасную память; в противном случае использует небезопасную память |