![]() |
PIP 5.6.1
Platform-Independent Primitives
|
Класс PIByteArray предоставляет массив байтов с эффективным управлением памятью и различными операциями манипулирования. Подробнее...
#include <pibytearray.h>
Открытые члены | |
| PIByteArray () | |
| Создает пустой байтовый массив. | |
| PIByteArray (const PIByteArray &o) | |
| Создает копию байтового массива "o". | |
| PIByteArray (const PIDeque< uchar > &o) | |
| Создает копию байтового массива "o". | |
| PIByteArray (PIByteArray &&o) | |
| Конструктор перемещения. | |
| PIByteArray (const uint size) | |
| Создает заполненный "0" байтовый массив размером "size". | |
| PIByteArray (const void *data, const uint size) | |
| Создает байтовый массив из данных по указателю "data" размером "size". | |
| PIByteArray (const uint size, uchar t) | |
| Создает заполненный "t" байтовый массив размером "size". | |
| PIByteArray (std::initializer_list< uchar > init_list) | |
| Создает массив из списка инициализации C++11. Подробнее... | |
| void | swap (PIByteArray &other) |
Меняет местами массив v с этим массивом. Подробнее... | |
| PIDeque< uchar >::iterator | begin () |
| Итератор на первый элемент. Подробнее... | |
| PIDeque< uchar >::iterator | end () |
| Итератор на элемент, следующий за последним элементом. Подробнее... | |
| PIDeque< uchar >::reverse_iterator | rbegin () |
| Обратный итератор на первый элемент. Подробнее... | |
| PIDeque< uchar >::reverse_iterator | rend () |
| Обратный итератор на элемент, следующий за последним элементом. Подробнее... | |
| size_t | size () const |
| Количество элементов массива. Подробнее... | |
| ssize_t | size_s () const |
| Количество элементов массива в виде знакового числа. Подробнее... | |
| size_t | length () const |
| Синоним size(). Подробнее... | |
| size_t | capacity () const |
| Количество элементов, для которого сейчас выделена память массивом. Подробнее... | |
| bool | isEmpty () const |
| Проверяет пуст ли массив. Подробнее... | |
| bool | isNotEmpty () const |
| Проверяет не пуст ли массив. Подробнее... | |
| bool | any (std::function< bool(uchar e)> test) const |
Проверяет, удовлетворяет ли какой-либо элемент массива условию, заданному в передаваемой функции test. Подробнее... | |
| bool | every (std::function< bool(uchar e)> test) const |
Проверяет, удовлетворяют ли все элементы массива условию, заданному в передаваемой функции test. Подробнее... | |
| uchar & | operator[] (size_t index) |
Полный доступ к элементу по индексу index. Подробнее... | |
| uchar | at (size_t index) const |
Доступ исключительно на чтение к элементу по индексу index. Подробнее... | |
| uchar & | back () |
| Последний элемент массива. Подробнее... | |
| uchar & | front () |
| Первый элемент массива. Подробнее... | |
| bool | contains (uchar e, ssize_t start=0) const |
Проверяет наличие элемента e в массиве. Подробнее... | |
| int | entries (uchar e, ssize_t start=0) const |
Подсчитывает количество элементов, совпадающих с элементом e в массиве. Подробнее... | |
| int | entries (std::function< bool(uchar e)> test, ssize_t start=0) const |
Подсчитывает количество элементов в массиве, проходящих по условию, заданному в передаваемой функции test. Подробнее... | |
| ssize_t | indexOf (const uchar &e, ssize_t start=0) const |
Возвращает первый индекс, по которому данный элемент e может быть найден в массиве или -1, если такого индекса нет. Подробнее... | |
| ssize_t | indexWhere (std::function< bool(const uchar &e)> test, ssize_t start=0) const |
Возвращает первый индекс элемента проходящего по условию, заданному в передаваемой функции test, или -1, если таких элементов нет. Подробнее... | |
| ssize_t | lastIndexOf (const uchar &e, ssize_t start=-1) const |
Возвращает последний индекс, по которому данный элемент e может быть найден в массиве или -1, если такого индекса нет. Подробнее... | |
| ssize_t | lastIndexWhere (std::function< bool(const uchar &e)> test, ssize_t start=-1) const |
Возвращает последний индекс элемента проходящего по условию, заданному в передаваемой функции test, или -1, если таких элементов нет. Подробнее... | |
| uchar * | data (size_t index=0) |
| Указатель на память массива Подробнее... | |
| const uchar * | data (size_t index=0) const |
| Указатель на память массива только для чтения. Подробнее... | |
| PIByteArray & | clear () |
| Очищает массив, удаляет все элементы. Подробнее... | |
| PIByteArray & | fill (uchar e=0) |
| Заполняет весь массив копиями элемента 'e'. Подробнее... | |
| PIByteArray & | fill (std::function< uchar(size_t i)> f) |
| Заполняет весь массив результатом вызова функции 'f(size_t i)'. Подробнее... | |
| PIByteArray & | assign (uchar e=0) |
| Тоже самое что и fill(). Подробнее... | |
| PIByteArray & | assign (size_t new_size, uchar e) |
Сначала делает resize(new_size), затем fill(e). Подробнее... | |
| PIByteArray & | resize (size_t new_size, uchar e=0) |
Устанавливает размер массива, новые элементы копируются из e. Подробнее... | |
| PIByteArray & | resize (size_t new_size, std::function< uchar(size_t i)> f) |
Устанавливает размер массива, новые элементы создаются функцией f(size_t i). Подробнее... | |
| PIByteArray | resized (uint new_size) const |
| Возвращает копию байтового массива с измененным размером | |
| PIByteArray & | reserve (size_t new_size) |
Резервируется память под как минимум new_size элементов. Подробнее... | |
| PIByteArray & | insert (size_t index, uchar e=0) |
Вставляет значение e в позицию index в массиве. Подробнее... | |
| PIByteArray & | insert (size_t index, const PIByteArray &v) |
Вставляет массив v в позицию index в массиве. Подробнее... | |
| PIByteArray & | insert (size_t index, std::initializer_list< uchar > init_list) |
Вставляет элементы в позицию index в массиве. Подробнее... | |
| PIByteArray & | remove (size_t index, size_t count=1) |
Удаляет элементы из массива, начиная с позиции index в количестве count. Подробнее... | |
| PIByteArray | getRange (size_t index, size_t count) const |
| Возвращает подмассив с данными от индекса "index" и размером не более "count". | |
| PIByteArray | takeRange (size_t index, size_t count) |
| Вырезает подмассив, то есть кусок из текущего массива. Подробнее... | |
| PIByteArray & | reverse () |
| Обращает порядок следования элементов этого массива. Подробнее... | |
| PIByteArray | reversed () const |
| Возвращает перевернутый массив. Подробнее... | |
| PIByteArray & | enlarge (ssize_t add_size, uchar e=0) |
Увеличивает или уменьшает размер массива на add_size элементов. Подробнее... | |
| PIByteArray & | removeOne (uchar e) |
Удаляет первый элемент, который равен элементу e. Подробнее... | |
| PIByteArray & | removeAll (uchar e) |
Удаляет все элементы, равные элементу e. Подробнее... | |
| PIByteArray & | removeWhere (std::function< bool(uchar e)> test) |
Удаляет все элементы, удовлетворяющие условию, заданному в передаваемой функции test. Подробнее... | |
| PIByteArray & | push_back (uchar e) |
Добавляет элемент e в конец массива. Подробнее... | |
| PIByteArray & | push_back (std::initializer_list< uchar > init_list) |
| Добавляет элементы в конец массива. Подробнее... | |
| PIByteArray & | push_back (const PIByteArray &v) |
Добавляет массив v в конец массива. Подробнее... | |
| PIByteArray & | push_back (const void *data_, int size_) |
| Добавляет в конец массива данные по указателю "data" размером "size". | |
| PIByteArray & | push_front (uchar e) |
Добавляет элемент e в начало массива. Подробнее... | |
| PIByteArray & | push_front (const PIByteArray &v) |
Добавляет массив v в начало массива. Подробнее... | |
| PIByteArray & | push_front (std::initializer_list< uchar > init_list) |
| Добавляет элементы в начало массива. Подробнее... | |
| PIByteArray & | prepend (uchar e) |
Добавляет элемент e в начало массива. Подробнее... | |
| PIByteArray & | prepend (const PIByteArray &v) |
Добавляет массив v в начало массива. Подробнее... | |
| PIByteArray & | prepend (std::initializer_list< uchar > init_list) |
| Добавляет элементы в начало массива. Подробнее... | |
| PIByteArray & | pop_back () |
| Удаляет один элемент с конца массива. Подробнее... | |
| PIByteArray & | pop_front () |
| Удаляет один элемент с начала массива. Подробнее... | |
| uchar | take_back () |
| Удаляет один элемент с начала массива и возвращает его. Подробнее... | |
| uchar | take_front () |
| Удаляет один элемент с конца массива и возвращает его. Подробнее... | |
| PIByteArray | filter (std::function< bool(const uchar &e)> test) const |
Возвращает новый массив со всеми элементами, прошедшими проверку, задаваемую в передаваемой функции test. Подробнее... | |
| void | forEach (std::function< void(const uchar &e)> f) const |
Выполняет функцию void f(const uchar & e) для каждого элемента массива. Подробнее... | |
| PIByteArray & | forEach (std::function< void(uchar &e)> f) |
Выполняет функцию void f(uchar & e) для каждого элемента массива. Подробнее... | |
| template<typename ST > | |
| PIDeque< ST > | map (std::function< ST(const uchar &e)> f) const |
Создаёт новый массив с результатом вызова указанной функции ST f(const T & e) для каждого элемента массива. Подробнее... | |
| template<typename ST > | |
| ST | reduce (std::function< ST(const uchar &e, const ST &acc)> f, const ST &initial=ST()) const |
Применяет функцию ST f(const uchar & e, const ST & acc) к каждому элементу массива (слева-направо), возвращает одно значение. Подробнее... | |
| PIByteArray & | convertToBase64 () |
| Преобразует данные в Base 64 и возвращает текущий массив | |
| PIByteArray & | convertFromBase64 () |
| Преобразует данные из Base 64 и возвращает текущий массив | |
| PIByteArray | toBase64 () const |
| Возвращает копию байтового массива, преобразованного в Base 64. | |
| PIString | toString (int base=16) const |
| Возвращает текстовое представление байтового массива, каждый байт в "base" системе, с пробелами | |
| PIString | toHex () const |
| Возвращает шестнадцатеричное представление массива, без пробелов. Оно использует цифры 0-9 и буквы a-f. | |
| PIByteArray & | append (const void *data_, int size_) |
| Добавляет в конец массива данные по указателю "data" размером "size". | |
| PIByteArray & | append (const PIByteArray &data_) |
| Добавляет в конец массива содержимое массива "data". | |
| PIByteArray & | append (uchar t) |
| Добавляет в конец массива байт "t". | |
| PIByteArray & | append (std::initializer_list< uchar > init_list) |
| Добавляет элементы в конец массива. Подробнее... | |
| uchar | checksumPlain8 (bool inverse=true) const |
| Возвращает 8-битную контрольную сумму Подробнее... | |
| uint | checksumPlain32 (bool inverse=true) const |
| Возвращает 32-битную контрольную сумму Подробнее... | |
| uchar | checksumCRC8 () const |
| Возвращает 8-битную контрольную сумму CRC-8. | |
| ushort | checksumCRC16 () const |
| Возвращает 16-битную контрольную сумму CRC-16. | |
| uint | checksumCRC32 () const |
| Возвращает 32-битную контрольную сумму CRC-32. | |
| uint | hash () const |
| Возвращает хэш содержимого | |
Открытые члены унаследованные от PIBinaryStream< PIByteArray > | |
| bool | binaryStreamAppend (const void *d, size_t s) |
| Записывает сырые байты в нижележащий поток. | |
| void | binaryStreamAppend (T v) |
| Записывает одно значение прямым копированием его байтов. | |
| bool | binaryStreamTake (void *d, size_t s) |
| Читает сырые байты из нижележащего потока и устанавливает состояние ошибки чтения при неполном чтении. | |
| ssize_t | binaryStreamSize () const |
| Возвращает число байтов, доступных для чтения. Подробнее... | |
| int | binaryStreamTakeInt () |
Читает одно значение int из потока. | |
| bool | wasReadError () const |
| Возвращает было ли неполное чтение с момента последнего вызова resetReadError() или создания потока | |
| void | resetReadError () |
| Сбрасывает флаг неполного чтения | |
Открытые статические члены | |
| static PIByteArray | fromBase64 (const PIByteArray &base64) |
| Возвращает массив из Base 64 представления | |
Относящиеся к классу функции | |
(не члены класса) | |
| bool | operator< (const PIByteArray &v0, const PIByteArray &v1) |
| Оператор сравнения | |
| bool | operator> (const PIByteArray &v0, const PIByteArray &v1) |
| Оператор сравнения | |
| bool | operator== (const PIByteArray &v0, const PIByteArray &v1) |
| Оператор сравнения | |
| bool | operator!= (const PIByteArray &v0, const PIByteArray &v1) |
| Оператор сравнения | |
| PIByteArray | operator& (const PIByteArray &v0, const PIByteArray &v1) |
| Возвращает по-битовое "и" Если размеры не совпадают, возвращает пустой PIByteArray. | |
| PIByteArray | operator| (const PIByteArray &v0, const PIByteArray &v1) |
| Возвращает по-битовое "или" Если размеры не совпадают, возвращает пустой PIByteArray. | |
| PIByteArray | operator^ (const PIByteArray &v0, const PIByteArray &v1) |
| Возвращает по-битовое "исключающее или" Если размеры не совпадают, возвращает пустой PIByteArray. | |
| PICout | operator<< (PICout s, const PIByteArray &ba) |
| Оператор вывода в PICout. | |
| template<> | |
| uint | piHash (const PIByteArray &ba) |
| Возвращает PIByteArray::hash() от "ba". | |
| template<> | |
| void | piSwap (PIByteArray &f, PIByteArray &s) |
| Меняет содержимое массивов "f" и "s". | |
| template<typename T > | |
| PIByteArray | piSerialize (const T &value) |
| Сохраняет "value" в байтовый массив и возвращает его | |
| template<typename T > | |
| T | piDeserialize (const PIByteArray &data) |
| Извлекает тип "T" из байтового массива "data" и возвращает его | |
Относящиеся к классу функции унаследованные от PIBinaryStream< PIByteArray > | |
| #define | BINARY_STREAM_FRIEND(T) |
Объявляет шаблонные операторы бинарного потока дружественными для T. | |
| #define | BINARY_STREAM_WRITE(T) |
Начинает определение шаблонного оператора записи в бинарный поток для T. | |
| #define | BINARY_STREAM_READ(T) |
Начинает определение шаблонного оператора чтения из бинарного потока для T. | |
Класс PIByteArray предоставляет массив байтов с эффективным управлением памятью и различными операциями манипулирования.
PIByteArray используется для хранения байтов. Он может быть сконструирован из любых даных. Можно использовать PIByteArray как потоковый объект для сериализации/десериализации любых типов и данных. Подробнее Поток ввода/вывода. Этот класс использует PIDeque<uchar> и предоставляет набор удобных методов для работы с байтами.
PIByteArray наследован от PIBinaryStream и может быть использован для сохранения любых данных и работы с ними. Операторы сохранения добавляют данные в конец массива, а операторы извлечения берут данные из его начала. Также есть методы для преобразования в Hex и Base64.
Потоковый оператор для типа PIByteArray сохраняет его как контейнер, а не просто добавляет его содержимое в конец. Этот оператор полезен для управляемой упаковки произвольных данных в виде PIByteArray. Для добавления содержимого одного байтового массива к другому используется метод append().