Класс DataBuffer - lmovsesjan/Fastcgi-Daemon GitHub Wiki

Хранит данные и предоставляет методы работы с ними. Определен в заголовочном файле fastcgi2/data_buffer.h.

Методы класса:

Метод Описание
DataBuffer Конструктор класса. Служит для создания пустого объекта класса или создания объекта класса с фрагментом данных из другого объекта этого же класса.
at Возвращает символ из буфера.
empty Проверяет существование буфера и данных в нём.
size Возвращает размер данных буфера.
resize Изменяет размер буфера.
begin Возвращает первый сегмент буфера.
end Возвращает конец буфера.
trim Усекает буфер.
trimn Вырезает из буфера заданный фрагмент.
split Делит буфер на две части.
startsWith Проверяет, начинается ли буфер с определенных данных.
startsWithCI Проверяет, начинается ли буфер с определенных данных без учета регистра.
endsWith Проверяет окончание буфера на соответствие определенным данным.
endsWithCI Проверяет окончание буфера на соответствие определенным данным без учета регистра.
toString Возвращает буфер в строковом представлении.
read Читает данные из буфера.
write Записывает данные в буфер.
beginIndex Номер первого байта в буфере.
endIndex Номер последнего байта.

Конструктор класса

Служит для создания пустого объекта класса или создания объекта класса с фрагментом данных из другого объекта этого же класса.

DataBuffer();
DataBuffer(DataBuffer buffer, boost::uint64_t begin, boost::uint64_t end)

Входные параметры

Параметр Описание
buffer Буфер.
begin Начальная позиция фрагмента в буфере. Первый индекс 0.
end Конец фрагмента в байтах.

Метод at

Возвращает символ из буфера.

char at(boost::uint64_t pos) const

Входные параметры

Параметр Описание
pos Позиция в буфере.

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

Символ, расположенный на указанной позиции.

Метод empty

Проверяет существование буфера и данных в нём.

bool empty() const

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

true, если буфер пустой.

Метод size

Возвращает размер данных буфера.

boost::uint64_t size() const

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

Размер данных буфера в байтах.

Метод resize

Изменяет размер буфера.

void resize(boost::uint64_t size)

Входные параметры

Параметр Описание
size Конечный размер буфера.

Метод begin

Возвращает первый сегмент буфера.

SegmentIterator begin() const

Возвращаемое значение Объект класса SegmentIterator, указывающий на первый сегмент буфера.

Метод end

Возвращает конец буфера.

SegmentIterator end() const

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

Объект класса SegmentIterator, указывающий на конец буфера.

Метод trim

Усекает буфер.

DataBuffer trim() const

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

DataBuffer, содержащий часть исходного буфера, оставшуюся после усечения.

Метод trimn

Вырезает из буфера заданный фрагмент.

DataBuffer trimn(boost::uint64_t b, boost::uint64_t e) const

Входные параметры

Параметр Описание
b Начальная позиция.
e Конечная позиция.

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

DataBuffer, содержащий заданный фрагмент данных исходного буфера.

Метод split

Делит буфер на две части.

bool split(const std::string &delim, DataBuffer &first, DataBuffer &second) const;
bool split(char delim, DataBuffer &first, DataBuffer &second) const;

Входные параметры

Параметр Описание
delim Символ или строка разделитель.
first Буфер для хранения первой части разделенных данных.
second Буфер для хранения второй части разделенных данных.

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

true, если операция разделения завершилась успешно.

Метод startsWith

Проверяет, начинается ли буфер с определенных данных.

bool startsWith(const std::string &data) const

Входные параметры

Параметр Описание
data Строка для сравнения.

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

true, если буфер начинается с заданной строки.

Метод startsWithCI

Проверяет, начинается ли буфер с определенных данных без учета регистра символов.

bool startsWithCI(const std::string &data) const

Входные параметры

Параметр Описание
data Строка для сравнения.

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

true, если буфер начинается с заданной строки.

Метод endsWith

Проверяет окончание буфера на соответствие определенным данным.

bool endsWith(const std::string &data) const

Входные параметры

Параметр Описание
data Строка для сравнения.

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

true, если буфер заканчивается заданной строкой.

Метод endsWithCI

Проверяет окончание буфера на соответствие определенным данным без учета регистра символов.

bool endsWithCI(const std::string &data) const

Входные параметры

Параметр Описание
data Строка для сравнения.

Возвращаемое значение true, если буфер заканчивается заданной строкой.

Метод toString

Возвращает буфер в строковом представлении.

void toString(std::string &str) const

Входные параметры

Параметр Описание
str Выходной параметр. Строка, в которую будет сохранен результат.

Метод read

Читает данные из буфера.

boost::uint64_t read(boost::uint64_t pos, char *data, boost::uint64_t len)

Входные параметры

Параметр Описание
pos Позиция в буфере.
data Выходной параметр. Указатель на строку, в которую будут скопированы данные.
len Необходимый размер данных.

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

Количество прочитанных байт.

Метод write

Записывает данные в буфер.

boost::uint64_t write(boost::uint64_t pos, const char *data, boost::uint64_t len)

Входные параметры

Параметр Описание
pos Позиция в буфере.
data Данные для записи.
len Размер данных.

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

Количество записанных байт.

Метод beginIndex

Возвращает номер первого байта в буфере.

boost::uint64_t beginIndex() const

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

Номер первого байта.

Метод endIndex

Возвращает номер последнего байта в буффере.

boost::uint64_t endIndex() const

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

Номер последнего байта.