CakeFest 2024: The Official CakePHP Conference

Класс EventBuffer

(PECL event >= 1.5.0)

Введение

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

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

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

class EventBuffer {
/* Константы */
const int EOL_ANY = 0;
const int EOL_CRLF = 1;
const int EOL_CRLF_STRICT = 2;
const int EOL_LF = 3;
const int PTR_SET = 0;
const int PTR_ADD = 1;
/* Свойства */
public readonly int $length;
public readonly int $contiguous_space;
/* Методы */
public add( string $data ): bool
public addBuffer( EventBuffer $buf ): bool
public appendFrom( EventBuffer $buf , int $len ): int
public __construct()
public copyout( string &$data , int $max_bytes ): int
public drain( int $len ): bool
public expand( int $len ): bool
public freeze( bool $at_front ): bool
public lock(): void
public prepend( string $data ): bool
public pullup( int $size ): string
public read( int $max_bytes ): string
public read( mixed $fd , int $howmuch ): int
public readLine( int $eol_style ): string
public search( string $what , int $start = -1 , int $end = -1 ): mixed
public searchEol( int $start = -1 , int $eol_style = EventBuffer::EOL_ANY ): mixed
public substr( int $start , int $length = ?): string
public unfreeze( bool $at_front ): bool
public unlock(): bool
public write( 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 — Записывает содержимое буфера в файл или сокет
add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top