Класс EventBuffer

(PECL event >= 1.5.0)

Введение

Класс EventBuffer представляет «событийный» буфер модуля Libevent — служебная функция для буферизированного ввода-вывода.

Буферы событий обычно полезны для организации «буферной» части буферизированного сетевого ввода-вывода.

Обзор классов

classEventBuffer {
constintEOL_ANY = 0;
constintEOL_CRLF = 1;
constintEOL_LF = 3;
constintPTR_SET = 0;
constintPTR_ADD = 1;
publicreadonlyint$length;
publicreadonlyint$contiguous_space;
publicadd(string$data): bool
publicappendFrom(EventBuffer$buf, int$len): int
public__construct()
publiccopyout(string&$data, int$max_bytes): int
publicdrain(int$len): bool
publicexpand(int$len): bool
publicfreeze(bool$at_front): bool
publiclock(): void
publicprepend(string$data): bool
publicpullup(int$size): string
publicread(int$max_bytes): string
publicread(mixed$fd, int$howmuch): int
publicreadLine(int$eol_style): string
publicsearch(string$what, int$start = -1, int$end = -1): mixed
publicsearchEol(int$start = -1, int$eol_style = EventBuffer::EOL_ANY): mixed
publicsubstr(int$start, int$length = ?): string
publicunfreeze(bool$at_front): bool
publicunlock(): bool
publicwrite(mixed$fd, int$howmuch = ?): int
}

Свойства

length

Количество байтов, которые хранятся в буфере событий.

contiguous_space

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

Предопределённые константы

EventBuffer::EOL_ANY

Конец строки — последовательность произвольного количества символов возврата каретки и перевода строки. Этот формат не очень полезен и его сохраняют в основном для обратной совместимости.

EventBuffer::EOL_CRLF

Конец строки — последовательность из необязательного возврата каретки и перевода строки. Говоря по-другому, либо "\r\n", либо "\n". Этот формат полезен при разборе текстовых интернет-протоколов, поскольку стандарты обычно предписывают обозначать конец строки последовательностью символов "\r\n", но клиенты, которые не соблюдают стандарты, иногда говорят просто "\n".

EventBuffer::EOL_CRLF_STRICT

Конец строки — один символ возврата каретки, за которым идёт один символ перевода строки. Эту последовательность символов знают как "\r\n". Значения кодировки ASCII: 0x0D0x0A.

EventBuffer::EOL_LF

Конец строки — один символ перевода строки — "\n". Значение в кодировке ASCII: 0x0A.

EventBuffer::PTR_SET

Флаг, который передают как аргумент в метод EventBuffer::setPosition(). Если флаг установили, указатель позиции перемещается в буфере в абсолютную позицию.

EventBuffer::PTR_ADD

То же, что и флаг EventBuffer::PTR_SET, за исключением того, что этот флаг заставляет метод EventBuffer::setPosition() перемещать позицию вперёд на заданное количество байтов, а не устанавливать абсолютную позицию.

Содержание

  • EventBuffer::add — Добавляет данные в конец буфера событий
  • EventBuffer::addBuffer — Перемещает все данные из буфера экземпляру EventBuffer
  • EventBuffer::appendFrom — Перемещает указанное количество байтов из исходного буфера в конец текущего буфера
  • EventBuffer::__construct — Создаёт объект EventBuffer
  • EventBuffer::copyout — Копирует указанное количество байтов с начала буфера
  • EventBuffer::drain — Удаляет указанное количество байтов с начала буфера, никуда не копируя
  • EventBuffer::enableLocking — Описание
  • EventBuffer::expand — Резервирует пространство в буфере
  • EventBuffer::freeze — Предотвращает вызовы, которые изменяют буфер событий в случае успешного выполнения
  • EventBuffer::lock — Получает блокировку буфера
  • EventBuffer::prepend — Записывает данные в начало буфера
  • EventBuffer::prependBuffer — Перемещает все данные из исходного буфера в начало текущего буфера
  • EventBuffer::pullup — Линеаризует данные в буфере и возвращает их содержимое в виде строки
  • EventBuffer::read — Читает данные из evbuffer и истощает прочитанные байты
  • EventBuffer::readFrom — Читает данные из файла в конец буфера
  • EventBuffer::readLine — Извлекает строку из начала буфера
  • EventBuffer::search — Сканирует буфер на наличие строки
  • EventBuffer::searchEol — Сканирует буфер на наличие конца строки
  • EventBuffer::substr — Обрезает часть данных буфера
  • EventBuffer::unfreeze — Повторно включает вызовы, которые изменяют буфер событий
  • EventBuffer::unlock — Снимает блокировку, установленную EventBuffer::lock
  • EventBuffer::write — Записывает содержимое буфера в файл или сокет
To Top