lsquic_hcso_writer.h revision fbc6cc04
17d09751dSDmitri Tikhonov/* Copyright (c) 2017 - 2020 LiteSpeed Technologies Inc.  See LICENSE. */
25392f7a3SLiteSpeed Tech/*
35392f7a3SLiteSpeed Tech * lsquic_hcso_writer.h
45392f7a3SLiteSpeed Tech */
55392f7a3SLiteSpeed Tech
65392f7a3SLiteSpeed Tech#ifndef LSQUIC_HCSO_WRITER_H
75392f7a3SLiteSpeed Tech#define LSQUIC_HCSO_WRITER_H 1
85392f7a3SLiteSpeed Tech
95392f7a3SLiteSpeed Techstruct lsquic_engine_settings;
10fbc6cc04SDmitri Tikhonovstruct lsquic_ext_http_prio;
115392f7a3SLiteSpeed Techstruct lsquic_stream;
125392f7a3SLiteSpeed Tech
135392f7a3SLiteSpeed Techstruct hcso_writer
145392f7a3SLiteSpeed Tech{
155392f7a3SLiteSpeed Tech    struct lsquic_stream    *how_stream;
165392f7a3SLiteSpeed Tech    struct frab_list         how_fral;
175392f7a3SLiteSpeed Tech#ifndef NDEBUG
185392f7a3SLiteSpeed Tech    enum {
195392f7a3SLiteSpeed Tech        HOW_RAND_VARINT = 1 << 0,
205392f7a3SLiteSpeed Tech        HOW_CHOP_STREAM = 1 << 1,
215392f7a3SLiteSpeed Tech    }                        how_flags;
225392f7a3SLiteSpeed Tech#endif
235392f7a3SLiteSpeed Tech};
245392f7a3SLiteSpeed Tech
255392f7a3SLiteSpeed Techint
265392f7a3SLiteSpeed Techlsquic_hcso_write_settings (struct hcso_writer *,
275392f7a3SLiteSpeed Tech                        const struct lsquic_engine_settings *, int);
285392f7a3SLiteSpeed Tech
295392f7a3SLiteSpeed Techint
305392f7a3SLiteSpeed Techlsquic_hcso_write_goaway (struct hcso_writer *, lsquic_stream_id_t);
315392f7a3SLiteSpeed Tech
325392f7a3SLiteSpeed Techint
335392f7a3SLiteSpeed Techlsquic_hcso_write_max_push_id (struct hcso_writer *, uint64_t max_push_id);
345392f7a3SLiteSpeed Tech
355392f7a3SLiteSpeed Techint
365392f7a3SLiteSpeed Techlsquic_hcso_write_cancel_push (struct hcso_writer *, uint64_t push_id);
375392f7a3SLiteSpeed Tech
38fbc6cc04SDmitri Tikhonovint
39fbc6cc04SDmitri Tikhonovlsquic_hcso_write_priority_update (struct hcso_writer *,
40fbc6cc04SDmitri Tikhonov                enum hq_frame_type, uint64_t stream_or_push_id,
41fbc6cc04SDmitri Tikhonov                const struct lsquic_ext_http_prio *);
42fbc6cc04SDmitri Tikhonov
435392f7a3SLiteSpeed Techextern const struct lsquic_stream_if *const lsquic_hcso_writer_if;
445392f7a3SLiteSpeed Tech
455392f7a3SLiteSpeed Tech#endif
46