lsquic_conn_public.h revision 19f667fb
1229fce07SDmitri Tikhonov/* Copyright (c) 2017 - 2019 LiteSpeed Technologies Inc. See LICENSE. */ 250aadb33SDmitri Tikhonov/* 350aadb33SDmitri Tikhonov * lsquic_conn_public.h -- Connection's "public interface" 450aadb33SDmitri Tikhonov * 550aadb33SDmitri Tikhonov * This structure is used to bundle things in connection that stream 650aadb33SDmitri Tikhonov * needs access to into a single object. This way, the space per 750aadb33SDmitri Tikhonov * stream object is one pointer instead of four or five. 850aadb33SDmitri Tikhonov */ 950aadb33SDmitri Tikhonov 1050aadb33SDmitri Tikhonov#ifndef LSQUIC_CONN_PUBLIC_H 1150aadb33SDmitri Tikhonov#define LSQUIC_CONN_PUBLIC_H 1 1250aadb33SDmitri Tikhonov 1350aadb33SDmitri Tikhonovstruct lsquic_conn; 1450aadb33SDmitri Tikhonovstruct lsquic_engine_public; 1550aadb33SDmitri Tikhonovstruct lsquic_mm; 16c51ce338SDmitri Tikhonovstruct lsquic_hash; 1750aadb33SDmitri Tikhonovstruct headers_stream; 1850aadb33SDmitri Tikhonovstruct lsquic_send_ctl; 1919f667fbSDmitri Tikhonov#if LSQUIC_CONN_STATS 2019f667fbSDmitri Tikhonovstruct conn_stats; 2119f667fbSDmitri Tikhonov#endif 2250aadb33SDmitri Tikhonov 2350aadb33SDmitri Tikhonovstruct lsquic_conn_public { 24c51ce338SDmitri Tikhonov struct lsquic_streams_tailq sending_streams, /* Send RST_STREAM, BLOCKED, and WUF frames */ 25c51ce338SDmitri Tikhonov read_streams, 26c51ce338SDmitri Tikhonov write_streams, /* Send STREAM frames */ 2750aadb33SDmitri Tikhonov service_streams; 28c51ce338SDmitri Tikhonov struct lsquic_hash *all_streams; 2950aadb33SDmitri Tikhonov struct lsquic_cfcw cfcw; 3050aadb33SDmitri Tikhonov struct lsquic_conn_cap conn_cap; 3150aadb33SDmitri Tikhonov struct lsquic_rtt_stats rtt_stats; 3250aadb33SDmitri Tikhonov struct lsquic_engine_public *enpub; 3350aadb33SDmitri Tikhonov struct malo *packet_out_malo; 3450aadb33SDmitri Tikhonov struct lsquic_conn *lconn; 3550aadb33SDmitri Tikhonov struct lsquic_mm *mm; 3650aadb33SDmitri Tikhonov struct headers_stream *hs; 3750aadb33SDmitri Tikhonov struct lsquic_send_ctl *send_ctl; 3819f667fbSDmitri Tikhonov#if LSQUIC_CONN_STATS 3919f667fbSDmitri Tikhonov struct conn_stats *conn_stats; 4019f667fbSDmitri Tikhonov#endif 4150aadb33SDmitri Tikhonov}; 4250aadb33SDmitri Tikhonov 4350aadb33SDmitri Tikhonov#endif 44