connect
disconnect
input
close
- Callback methods
h2_frame
h2_headers
h2_data_started
h2_data
h2_data_finished
- Utility methods
Создает контекст соединения.
int connect(long id, parser_callbacks *callbacks, connection_context **p_context);
id
- ID соединенияcallbacks
- список коллбэковp_context
- поинтер на переменную поинтера на контекст- TBD: Свойства соединения (endpoint'ы?)
return value
- код ошибки
Сигнализирует о разрыве соединения одним из endpoint'ов.
int disconnect(connection_context *context, enum transfer_direction direction);
context
- Контекст соединенияdirection
- Направление (OUT
илиIN
)return value
- код ошибки
Передает на обработку пакет данных, полученных от одного из endpoint'ов.
int input(connection_context *context, enum transfer_direction direction, char *buffer, int length);
context
- Контекст соединенияdirection
- Направление (OUT
илиIN
)buffer
- Буфер с даннымиlength
- Размер буфераreturn value
- код ошибки
Освобождает ресурсы заданного соединения.
int close(connection_context *context);
id
- ID соединенияreturn value
- код ошибки
Сигнализирует о получении фрейма
void h2_frame(connection_context *context, unsigned int stream_id, enum h2_frame_type type,
struct frame_any frame);
context
- контекст соединенияstream_id
- идентификатор потокаtype
- тип фреймаframe
- структура фрейма
Сигнализирует о получении фрейма заголовков
void h2_headers(connection_context *context, unsigned int stream_id, struct frame_headers headers);
context
- контекст соединенияstream_id
- идентификатор потокаheaders
- заголовки после распаковки
Сигнализирует о начале передачи данных в одном из stream'ов
void h2_data_started(connection_context *context, unsigned int stream_id);
context
- контекст соединенияstream_id
- идентификатор потока
Сигнализирует о получении фрейма с данными
void h2_data(connection_context *context, unsigned int stream_id, struct frame_data data);
context
- контекст соединенияstream_id
- идентификатор потокаdata
- структура фрейма с данными
Сигнализирует о завершении получения данных в одном из stream'ов
void h2_data_finished(connection_context *context, unsigned int stream_id, rst_stream_flag rst_stream);
context
- контекст соединенияstream_id
- идентификатор потокаrst_stream
- флаг конца потока
Сигнализирует о необходимости перейти на http/1.X.
int h2_downgrade(connection_context *context, enum http_proto version);
context
- контекст соединенияversion
- версияreturn value
- код ошибки
Создание, клонирование, модифицирование структур библиотеки.