• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

_exts/rubydomain/H19-Oct-2021-748614

_themes/sphinx_rtd_theme/H19-Oct-2021-1,9211,548

bash_completion/H19-Oct-2021-8072

sources/H19-Oct-2021-3,2162,454

Makefile.amH A D19-Oct-202116.1 KiB412357

Makefile.inH A D03-May-202237 KiB1,069947

README.rstH A D19-Oct-20215 KiB161133

asio_http2.h.rst.inH A D19-Oct-2021112 64

asio_http2_client.h.rst.inH A D19-Oct-2021133 64

asio_http2_server.h.rst.inH A D19-Oct-2021133 64

building-android-binary.rst.inH A D19-Oct-202166 21

conf.py.inH A D19-Oct-20218.6 KiB253187

contribute.rst.inH A D19-Oct-202153 21

enums.rstH A D19-Oct-202114.3 KiB527385

h2load-howto.rst.inH A D19-Oct-202155 21

h2load.1H A D19-Oct-202115.2 KiB520512

h2load.1.rstH A D19-Oct-202114.2 KiB426317

index.rst.inH A D19-Oct-202148 21

libnghttp2_asio.rst.inH A D19-Oct-202158 21

macros.rstH A D19-Oct-20212.8 KiB10460

mkapiref.pyH A D19-Oct-202111 KiB345281

nghttp.1H A D19-Oct-20218.7 KiB327319

nghttp.1.rstH A D19-Oct-20217.7 KiB269178

nghttp2.h.rst.inH A D19-Oct-202185 53

nghttp2_check_authority.rstH A D19-Oct-2021534 2012

nghttp2_check_header_name.rstH A D19-Oct-2021435 1810

nghttp2_check_header_value.rstH A D19-Oct-2021340 169

nghttp2_check_method.rstH A D19-Oct-2021425 1710

nghttp2_check_path.rstH A D19-Oct-2021618 2113

nghttp2_hd_deflate_bound.rstH A D19-Oct-2021321 158

nghttp2_hd_deflate_change_table_size.rstH A D19-Oct-20211,003 3221

nghttp2_hd_deflate_del.rstH A D19-Oct-2021234 147

nghttp2_hd_deflate_get_dynamic_table_size.rstH A D19-Oct-2021347 158

nghttp2_hd_deflate_get_max_dynamic_table_size.rstH A D19-Oct-2021293 147

nghttp2_hd_deflate_get_num_table_entries.rstH A D19-Oct-2021420 169

nghttp2_hd_deflate_get_table_entry.rstH A D19-Oct-2021631 1912

nghttp2_hd_deflate_hd.rstH A D19-Oct-20211.2 KiB3624

nghttp2_hd_deflate_hd_vec.rstH A D19-Oct-20211.4 KiB3726

nghttp2_hd_deflate_new.rstH A D19-Oct-2021641 2514

nghttp2_hd_deflate_new2.rstH A D19-Oct-2021687 2414

nghttp2_hd_inflate_change_table_size.rstH A D19-Oct-20211.2 KiB3524

nghttp2_hd_inflate_del.rstH A D19-Oct-2021234 147

nghttp2_hd_inflate_end_headers.rstH A D19-Oct-2021354 179

nghttp2_hd_inflate_get_dynamic_table_size.rstH A D19-Oct-2021347 158

nghttp2_hd_inflate_get_max_dynamic_table_size.rstH A D19-Oct-2021293 147

nghttp2_hd_inflate_get_num_table_entries.rstH A D19-Oct-2021420 169

nghttp2_hd_inflate_get_table_entry.rstH A D19-Oct-2021631 1912

nghttp2_hd_inflate_hd.rstH A D19-Oct-20213.1 KiB9168

nghttp2_hd_inflate_hd2.rstH A D19-Oct-20213.3 KiB9270

nghttp2_hd_inflate_new.rstH A D19-Oct-2021489 2212

nghttp2_hd_inflate_new2.rstH A D19-Oct-2021648 2414

nghttp2_http2_strerror.rstH A D19-Oct-2021442 1710

nghttp2_is_fatal.rstH A D19-Oct-2021242 158

nghttp2_nv_compare_name.rstH A D19-Oct-2021518 1811

nghttp2_option_del.rstH A D19-Oct-2021265 158

nghttp2_option_new.rstH A D19-Oct-2021503 2313

nghttp2_option_set_builtin_recv_extension_type.rstH A D19-Oct-2021881 2517

nghttp2_option_set_max_deflate_dynamic_table_size.rstH A D19-Oct-2021569 1811

nghttp2_option_set_max_outbound_ack.rstH A D19-Oct-2021503 1710

nghttp2_option_set_max_reserved_remote_streams.rstH A D19-Oct-20211,000 2417

nghttp2_option_set_max_send_header_block_length.rstH A D19-Oct-2021693 2013

nghttp2_option_set_max_settings.rstH A D19-Oct-2021461 1710

nghttp2_option_set_no_auto_ping_ack.rstH A D19-Oct-2021663 2013

nghttp2_option_set_no_auto_window_update.rstH A D19-Oct-2021626 1912

nghttp2_option_set_no_closed_streams.rstH A D19-Oct-2021429 169

nghttp2_option_set_no_http_messaging.rstH A D19-Oct-2021769 2215

nghttp2_option_set_no_recv_client_magic.rstH A D19-Oct-20211 KiB2819

nghttp2_option_set_peer_max_concurrent_streams.rstH A D19-Oct-2021999 2417

nghttp2_option_set_user_recv_extension_type.rstH A D19-Oct-2021779 2215

nghttp2_pack_settings_payload.rstH A D19-Oct-20211.2 KiB3020

nghttp2_priority_spec_check_default.rstH A D19-Oct-2021293 147

nghttp2_priority_spec_default_init.rstH A D19-Oct-2021376 169

nghttp2_priority_spec_init.rstH A D19-Oct-2021522 1911

nghttp2_rcbuf_decref.rstH A D19-Oct-2021360 169

nghttp2_rcbuf_get_buf.rstH A D19-Oct-2021227 147

nghttp2_rcbuf_incref.rstH A D19-Oct-2021215 147

nghttp2_rcbuf_is_static.rstH A D19-Oct-2021378 169

nghttp2_select_next_protocol.rstH A D19-Oct-20212.2 KiB6749

nghttp2_session_callbacks_del.rstH A D19-Oct-2021318 158

nghttp2_session_callbacks_new.rstH A D19-Oct-2021669 2615

nghttp2_session_callbacks_set_before_frame_send_callback.rstH A D19-Oct-2021413 147

nghttp2_session_callbacks_set_data_source_read_length_callback.rstH A D19-Oct-2021481 158

nghttp2_session_callbacks_set_error_callback.rstH A D19-Oct-2021632 2213

nghttp2_session_callbacks_set_error_callback2.rstH A D19-Oct-2021522 1911

nghttp2_session_callbacks_set_on_begin_frame_callback.rstH A D19-Oct-2021398 147

nghttp2_session_callbacks_set_on_begin_headers_callback.rstH A D19-Oct-2021453 158

nghttp2_session_callbacks_set_on_data_chunk_recv_callback.rstH A D19-Oct-2021437 158

nghttp2_session_callbacks_set_on_extension_chunk_recv_callback.rstH A D19-Oct-2021465 158

nghttp2_session_callbacks_set_on_frame_not_send_callback.rstH A D19-Oct-2021439 158

nghttp2_session_callbacks_set_on_frame_recv_callback.rstH A D19-Oct-2021451 158

nghttp2_session_callbacks_set_on_frame_send_callback.rstH A D19-Oct-2021383 147

nghttp2_session_callbacks_set_on_header_callback.rstH A D19-Oct-2021577 1811

nghttp2_session_callbacks_set_on_header_callback2.rstH A D19-Oct-2021392 158

nghttp2_session_callbacks_set_on_invalid_frame_recv_callback.rstH A D19-Oct-2021513 169

nghttp2_session_callbacks_set_on_invalid_header_callback.rstH A D19-Oct-2021643 1811

nghttp2_session_callbacks_set_on_invalid_header_callback2.rstH A D19-Oct-2021440 158

nghttp2_session_callbacks_set_on_stream_close_callback.rstH A D19-Oct-2021397 147

nghttp2_session_callbacks_set_pack_extension_callback.rstH A D19-Oct-2021455 158

nghttp2_session_callbacks_set_recv_callback.rstH A D19-Oct-2021508 1710

nghttp2_session_callbacks_set_select_padding_callback.rstH A D19-Oct-2021484 169

nghttp2_session_callbacks_set_send_callback.rstH A D19-Oct-2021504 1710

nghttp2_session_callbacks_set_send_data_callback.rstH A D19-Oct-2021479 169

nghttp2_session_callbacks_set_unpack_extension_callback.rstH A D19-Oct-2021469 158

nghttp2_session_change_stream_priority.rstH A D19-Oct-20211.4 KiB3826

nghttp2_session_check_request_allowed.rstH A D19-Oct-2021787 2415

nghttp2_session_check_server_session.rstH A D19-Oct-2021286 147

nghttp2_session_client_new.rstH A D19-Oct-20211,003 3019

nghttp2_session_client_new2.rstH A D19-Oct-2021892 3018

nghttp2_session_client_new3.rstH A D19-Oct-2021929 3018

nghttp2_session_consume.rstH A D19-Oct-20211 KiB3223

nghttp2_session_consume_connection.rstH A D19-Oct-2021724 2516

nghttp2_session_consume_stream.rstH A D19-Oct-2021829 2718

nghttp2_session_create_idle_stream.rstH A D19-Oct-20212 KiB5037

nghttp2_session_del.rstH A D19-Oct-2021272 158

nghttp2_session_find_stream.rstH A D19-Oct-2021662 2213

nghttp2_session_get_effective_local_window_size.rstH A D19-Oct-2021879 2617

nghttp2_session_get_effective_recv_data_length.rstH A D19-Oct-2021799 2315

nghttp2_session_get_hd_deflate_dynamic_table_size.rstH A D19-Oct-2021386 158

nghttp2_session_get_hd_inflate_dynamic_table_size.rstH A D19-Oct-2021387 158

nghttp2_session_get_last_proc_stream_id.rstH A D19-Oct-2021535 2012

nghttp2_session_get_local_settings.rstH A D19-Oct-2021417 169

nghttp2_session_get_local_window_size.rstH A D19-Oct-2021566 2012

nghttp2_session_get_next_stream_id.rstH A D19-Oct-2021377 169

nghttp2_session_get_outbound_queue_size.rstH A D19-Oct-2021335 158

nghttp2_session_get_remote_settings.rstH A D19-Oct-2021391 169

nghttp2_session_get_remote_window_size.rstH A D19-Oct-2021317 168

nghttp2_session_get_root_stream.rstH A D19-Oct-2021385 169

nghttp2_session_get_stream_effective_local_window_size.rstH A D19-Oct-2021936 2617

nghttp2_session_get_stream_effective_recv_data_length.rstH A D19-Oct-2021851 2315

nghttp2_session_get_stream_local_close.rstH A D19-Oct-2021376 158

nghttp2_session_get_stream_local_window_size.rstH A D19-Oct-2021675 2113

nghttp2_session_get_stream_remote_close.rstH A D19-Oct-2021380 158

nghttp2_session_get_stream_remote_window_size.rstH A D19-Oct-2021760 2314

nghttp2_session_get_stream_user_data.rstH A D19-Oct-2021675 2114

nghttp2_session_mem_recv.rstH A D19-Oct-20211.9 KiB4635

nghttp2_session_mem_send.rstH A D19-Oct-20211.6 KiB4832

nghttp2_session_recv.rstH A D19-Oct-20213.1 KiB7758

nghttp2_session_resume_data.rstH A D19-Oct-2021594 2314

nghttp2_session_send.rstH A D19-Oct-20212.3 KiB6444

nghttp2_session_server_new.rstH A D19-Oct-20211,002 3019

nghttp2_session_server_new2.rstH A D19-Oct-2021892 3018

nghttp2_session_server_new3.rstH A D19-Oct-2021929 3018

nghttp2_session_set_local_window_size.rstH A D19-Oct-20211.8 KiB4332

nghttp2_session_set_next_stream_id.rstH A D19-Oct-2021803 2516

nghttp2_session_set_stream_user_data.rstH A D19-Oct-2021840 2717

nghttp2_session_set_user_data.rstH A D19-Oct-2021369 169

nghttp2_session_terminate_session.rstH A D19-Oct-20211.1 KiB3522

nghttp2_session_terminate_session2.rstH A D19-Oct-20211.2 KiB3524

nghttp2_session_upgrade.rstH A D19-Oct-20212.5 KiB5643

nghttp2_session_upgrade2.rstH A D19-Oct-20212 KiB4836

nghttp2_session_want_read.rstH A D19-Oct-2021412 1911

nghttp2_session_want_write.rstH A D19-Oct-2021410 1911

nghttp2_set_debug_vprintf_callback.rstH A D19-Oct-2021963 3019

nghttp2_stream_get_first_child.rstH A D19-Oct-2021319 158

nghttp2_stream_get_next_sibling.rstH A D19-Oct-2021323 158

nghttp2_stream_get_parent.rstH A D19-Oct-2021300 158

nghttp2_stream_get_previous_sibling.rstH A D19-Oct-2021339 158

nghttp2_stream_get_state.rstH A D19-Oct-2021390 169

nghttp2_stream_get_sum_dependency_weight.rstH A D19-Oct-2021287 147

nghttp2_stream_get_weight.rstH A D19-Oct-2021247 147

nghttp2_strerror.rstH A D19-Oct-2021277 158

nghttp2_submit_altsvc.rstH A D19-Oct-20211.5 KiB4229

nghttp2_submit_data.rstH A D19-Oct-20212 KiB5038

nghttp2_submit_extension.rstH A D19-Oct-20211.9 KiB4835

nghttp2_submit_goaway.rstH A D19-Oct-20212.1 KiB5439

nghttp2_submit_headers.rstH A D19-Oct-20214.2 KiB9775

nghttp2_submit_origin.rstH A D19-Oct-20211.2 KiB3624

nghttp2_submit_ping.rstH A D19-Oct-20211 KiB3421

nghttp2_submit_priority.rstH A D19-Oct-20211.3 KiB3927

nghttp2_submit_push_promise.rstH A D19-Oct-20213.3 KiB8060

nghttp2_submit_request.rstH A D19-Oct-20213.8 KiB8668

nghttp2_submit_response.rstH A D19-Oct-20213.1 KiB7356

nghttp2_submit_rst_stream.rstH A D19-Oct-2021777 2817

nghttp2_submit_settings.rstH A D19-Oct-20211.3 KiB3926

nghttp2_submit_shutdown_notice.rstH A D19-Oct-20211.5 KiB4431

nghttp2_submit_trailer.rstH A D19-Oct-20212.6 KiB6046

nghttp2_submit_window_update.rstH A D19-Oct-20211.8 KiB4733

nghttp2_version.rstH A D19-Oct-2021496 1811

nghttp2ver.h.rst.inH A D19-Oct-202196 53

nghttpd.1H A D19-Oct-20215.3 KiB227219

nghttpd.1.rstH A D19-Oct-20214.2 KiB179105

nghttpx-howto.rst.inH A D19-Oct-202156 21

nghttpx.1H A D19-Oct-202189.7 KiB2,7432,732

nghttpx.1.rstH A D19-Oct-202188.6 KiB2,5011,783

package_README.rst.inH A D19-Oct-202137 21

programmers-guide.rstH A D19-Oct-202118.6 KiB482373

python-apiref.rst.inH A D19-Oct-202156 21

tutorial-client.rst.inH A D19-Oct-2021156 74

tutorial-hpack.rst.inH A D19-Oct-2021131 74

tutorial-server.rst.inH A D19-Oct-2021156 74

types.rstH A D19-Oct-202153.9 KiB1,295934

README.rst

1nghttp2 Documentation
2=====================
3
4The documentation of nghttp2 is generated using Sphinx.  This
5directory contains the source files to be processed by Sphinx.  The
6source file for API reference is generated using a script called
7``mkapiref.py`` from the nghttp2 C source code.
8
9Generating API reference
10------------------------
11
12As described earlier, we use ``mkapiref.py`` to generate rst formatted
13text of API reference from C source code.  The ``mkapiref.py`` is not
14so flexible and it requires that C source code is formatted in rather
15strict rules.
16
17To generate API reference, just run ``make html``. It runs
18``mkapiref.py`` and then run Sphinx to build the entire document.
19
20The ``mkapiref.py`` reads C source code and searches the comment block
21starts with ``/**``. In other words, it only processes the comment
22block starting ``/**``. The comment block must end with ``*/``. The
23``mkapiref.py`` requires that which type of the object this comment
24block refers to.  To specify the type of the object, the next line
25must contain the so-called action keyword.  Currently, the following
26action keywords are supported: ``@function``, ``@functypedef``,
27``@enum``, ``@struct`` and ``@union``. The following sections
28describes each action keyword.
29
30@function
31#########
32
33``@function`` is used to refer to the function.  The comment block is
34used for the document for the function.  After the script sees the end
35of the comment block, it consumes the lines as the function
36declaration until the line which ends with ``;`` is encountered.
37
38In Sphinx doc, usually the function argument is formatted like
39``*this*``.  But in C, ``*`` is used for dereferencing a pointer and
40we must escape ``*`` with a back slash. To avoid this, we format the
41argument like ``|this|``. The ``mkapiref.py`` translates it with
42``*this*``, as escaping ``*`` inside ``|`` and ``|`` as necessary.
43Note that this shadows the substitution feature of Sphinx.
44
45The example follows::
46
47    /**
48     * @function
49     *
50     * Submits PING frame to the |session|.
51     */
52    int nghttp2_submit_ping(nghttp2_session *session);
53
54
55@functypedef
56############
57
58``@functypedef`` is used to refer to the typedef of the function
59pointer. The formatting rule is pretty much the same with
60``@function``, but this outputs ``type`` domain, rather than
61``function`` domain.
62
63The example follows::
64
65    /**
66     * @functypedef
67     *
68     * Callback function invoked when |session| wants to send data to
69     * remote peer.
70     */
71    typedef ssize_t (*nghttp2_send_callback)
72    (nghttp2_session *session,
73     const uint8_t *data, size_t length, int flags, void *user_data);
74
75@enum
76#####
77
78``@enum`` is used to refer to the enum.  Currently, only enum typedefs
79are supported.  The comment block is used for the document for the
80enum type itself. To document each values, put comment block starting
81with the line ``/**`` and ending with the ``*/`` just before the enum
82value.  When the line starts with ``}`` is encountered, the
83``mkapiref.py`` extracts strings next to ``}`` as the name of enum.
84
85At the time of this writing, Sphinx does not support enum type. So we
86use ``type`` domain for enum it self and ``macro`` domain for each
87value. To refer to the enum value, use ``:enum:`` pseudo role. The
88``mkapiref.py`` replaces it with ``:macro:``. By doing this, when
89Sphinx will support enum officially, we can replace ``:enum:`` with
90the official role easily.
91
92The example follows::
93
94    /**
95     * @enum
96     * Error codes used in the nghttp2 library.
97     */
98    typedef enum {
99      /**
100       * Invalid argument passed.
101       */
102      NGHTTP2_ERR_INVALID_ARGUMENT = -501,
103      /**
104       * Zlib error.
105       */
106      NGHTTP2_ERR_ZLIB = -502,
107    } nghttp2_error;
108
109@struct
110#######
111
112``@struct`` is used to refer to the struct. Currently, only struct
113typedefs are supported. The comment block is used for the document for
114the struct type itself.To document each member, put comment block
115starting with the line ``/**`` and ending with the ``*/`` just before
116the member.  When the line starts with ``}`` is encountered, the
117``mkapiref.py`` extracts strings next to ``}`` as the name of struct.
118The block-less typedef is also supported. In this case, typedef
119declaration must be all in one line and the ``mkapiref.py`` uses last
120word as the name of struct.
121
122Some examples follow::
123
124    /**
125     * @struct
126     * The control frame header.
127     */
128    typedef struct {
129      /**
130       * SPDY protocol version.
131       */
132      uint16_t version;
133      /**
134       * The type of this control frame.
135       */
136      uint16_t type;
137      /**
138       * The control frame flags.
139       */
140      uint8_t flags;
141      /**
142       * The length field of this control frame.
143       */
144      int32_t length;
145    } nghttp2_ctrl_hd;
146
147    /**
148     * @struct
149     *
150     * The primary structure to hold the resources needed for a SPDY
151     * session. The details of this structure is hidden from the public
152     * API.
153     */
154    typedef struct nghttp2_session nghttp2_session;
155
156@union
157######
158
159``@union`` is used to refer to the union. Currently, ``@union`` is an
160alias of ``@struct``.
161