45 lines
1.1 KiB
C
45 lines
1.1 KiB
C
/* Copyright (c) 2017 - 2022 LiteSpeed Technologies Inc. See LICENSE. */
|
|
/*
|
|
* lsquic_hcso_writer.h
|
|
*/
|
|
|
|
#ifndef LSQUIC_HCSO_WRITER_H
|
|
#define LSQUIC_HCSO_WRITER_H 1
|
|
|
|
struct lsquic_ext_http_prio;
|
|
struct lsquic_stream;
|
|
|
|
struct hcso_writer
|
|
{
|
|
struct lsquic_stream *how_stream;
|
|
struct frab_list how_fral;
|
|
#ifndef NDEBUG
|
|
enum {
|
|
HOW_RAND_VARINT = 1 << 0,
|
|
HOW_CHOP_STREAM = 1 << 1,
|
|
} how_flags;
|
|
#endif
|
|
};
|
|
|
|
int
|
|
lsquic_hcso_write_settings (struct hcso_writer *,
|
|
unsigned, unsigned, unsigned, int);
|
|
|
|
int
|
|
lsquic_hcso_write_goaway (struct hcso_writer *, lsquic_stream_id_t);
|
|
|
|
int
|
|
lsquic_hcso_write_max_push_id (struct hcso_writer *, uint64_t max_push_id);
|
|
|
|
int
|
|
lsquic_hcso_write_cancel_push (struct hcso_writer *, uint64_t push_id);
|
|
|
|
int
|
|
lsquic_hcso_write_priority_update (struct hcso_writer *,
|
|
enum hq_frame_type, uint64_t stream_or_push_id,
|
|
const struct lsquic_ext_http_prio *);
|
|
|
|
extern const struct lsquic_stream_if *const lsquic_hcso_writer_if;
|
|
|
|
#endif
|