Update doc

This commit is contained in:
Tatsuhiro Tsujikawa 2014-04-25 01:41:11 +09:00
parent 597e7a5500
commit b7e21b0cd2
6 changed files with 257 additions and 319 deletions

View File

@ -228,19 +228,19 @@ TCP.</p>
<dl class="macro"> <dl class="macro">
<dt id="c.NGHTTP2_DEFAULT_WEIGHT"> <dt id="c.NGHTTP2_DEFAULT_WEIGHT">
<tt class="descname">NGHTTP2_DEFAULT_WEIGHT</tt><a class="headerlink" href="#c.NGHTTP2_DEFAULT_WEIGHT" title="Permalink to this definition"></a></dt> <tt class="descname">NGHTTP2_DEFAULT_WEIGHT</tt><a class="headerlink" href="#c.NGHTTP2_DEFAULT_WEIGHT" title="Permalink to this definition"></a></dt>
<dd><p>The default weight of priority group.</p> <dd><p>The default weight of stream dependency.</p>
</dd></dl> </dd></dl>
<dl class="macro"> <dl class="macro">
<dt id="c.NGHTTP2_MAX_WEIGHT"> <dt id="c.NGHTTP2_MAX_WEIGHT">
<tt class="descname">NGHTTP2_MAX_WEIGHT</tt><a class="headerlink" href="#c.NGHTTP2_MAX_WEIGHT" title="Permalink to this definition"></a></dt> <tt class="descname">NGHTTP2_MAX_WEIGHT</tt><a class="headerlink" href="#c.NGHTTP2_MAX_WEIGHT" title="Permalink to this definition"></a></dt>
<dd><p>The maximum weight of priority group.</p> <dd><p>The maximum weight of stream dependency.</p>
</dd></dl> </dd></dl>
<dl class="macro"> <dl class="macro">
<dt id="c.NGHTTP2_MIN_WEIGHT"> <dt id="c.NGHTTP2_MIN_WEIGHT">
<tt class="descname">NGHTTP2_MIN_WEIGHT</tt><a class="headerlink" href="#c.NGHTTP2_MIN_WEIGHT" title="Permalink to this definition"></a></dt> <tt class="descname">NGHTTP2_MIN_WEIGHT</tt><a class="headerlink" href="#c.NGHTTP2_MIN_WEIGHT" title="Permalink to this definition"></a></dt>
<dd><p>The minimum weight of priority group.</p> <dd><p>The minimum weight of stream dependency.</p>
</dd></dl> </dd></dl>
<dl class="macro"> <dl class="macro">
@ -648,6 +648,13 @@ The CONTINUATION frame.</p>
The ALTSVC frame.</p> The ALTSVC frame.</p>
</dd></dl> </dd></dl>
<dl class="macro">
<dt id="c.NGHTTP2_BLOCKED">
<tt class="descname">NGHTTP2_BLOCKED</tt><a class="headerlink" href="#c.NGHTTP2_BLOCKED" title="Permalink to this definition"></a></dt>
<dd><p>(<tt class="docutils literal"><span class="pre">0x0b</span></tt>)
The BLOCKED frame.</p>
</dd></dl>
</dd></dl> </dd></dl>
<dl class="type"> <dl class="type">
@ -705,17 +712,17 @@ The PAD_HIGH flag.</p>
</dd></dl> </dd></dl>
<dl class="macro"> <dl class="macro">
<dt id="c.NGHTTP2_FLAG_PRIORITY_GROUP"> <dt id="c.NGHTTP2_FLAG_PRIORITY">
<tt class="descname">NGHTTP2_FLAG_PRIORITY_GROUP</tt><a class="headerlink" href="#c.NGHTTP2_FLAG_PRIORITY_GROUP" title="Permalink to this definition"></a></dt> <tt class="descname">NGHTTP2_FLAG_PRIORITY</tt><a class="headerlink" href="#c.NGHTTP2_FLAG_PRIORITY" title="Permalink to this definition"></a></dt>
<dd><p>(<tt class="docutils literal"><span class="pre">0x20</span></tt>) <dd><p>(<tt class="docutils literal"><span class="pre">0x20</span></tt>)
The PRIORITY_GROUP flag.</p> The PRIORITY flag.</p>
</dd></dl> </dd></dl>
<dl class="macro"> <dl class="macro">
<dt id="c.NGHTTP2_FLAG_PRIORITY_DEPENDENCY"> <dt id="c.NGHTTP2_FLAG_COMPRESSED">
<tt class="descname">NGHTTP2_FLAG_PRIORITY_DEPENDENCY</tt><a class="headerlink" href="#c.NGHTTP2_FLAG_PRIORITY_DEPENDENCY" title="Permalink to this definition"></a></dt> <tt class="descname">NGHTTP2_FLAG_COMPRESSED</tt><a class="headerlink" href="#c.NGHTTP2_FLAG_COMPRESSED" title="Permalink to this definition"></a></dt>
<dd><p>(<tt class="docutils literal"><span class="pre">0x40</span></tt>) <dd><p>(<tt class="docutils literal"><span class="pre">0x20</span></tt>)
The PRIORITY_DEPENDENCY flag.</p> THE COMPRESSED flag.</p>
</dd></dl> </dd></dl>
</dd></dl> </dd></dl>
@ -752,10 +759,17 @@ SETTINGS_MAX_CONCURRENT_STREAMS</p>
SETTINGS_INITIAL_WINDOW_SIZE</p> SETTINGS_INITIAL_WINDOW_SIZE</p>
</dd></dl> </dd></dl>
<dl class="macro">
<dt id="c.NGHTTP2_SETTINGS_COMPRESS_DATA">
<tt class="descname">NGHTTP2_SETTINGS_COMPRESS_DATA</tt><a class="headerlink" href="#c.NGHTTP2_SETTINGS_COMPRESS_DATA" title="Permalink to this definition"></a></dt>
<dd><p>(<tt class="docutils literal"><span class="pre">5</span></tt>)
SETTINGS_COMPRESS_DATA</p>
</dd></dl>
<dl class="macro"> <dl class="macro">
<dt id="c.NGHTTP2_SETTINGS_MAX"> <dt id="c.NGHTTP2_SETTINGS_MAX">
<tt class="descname">NGHTTP2_SETTINGS_MAX</tt><a class="headerlink" href="#c.NGHTTP2_SETTINGS_MAX" title="Permalink to this definition"></a></dt> <tt class="descname">NGHTTP2_SETTINGS_MAX</tt><a class="headerlink" href="#c.NGHTTP2_SETTINGS_MAX" title="Permalink to this definition"></a></dt>
<dd><p>(<tt class="docutils literal"><span class="pre">4</span></tt>) <dd><p>(<tt class="docutils literal"><span class="pre">5</span></tt>)
Maximum ID of <a class="reference internal" href="#c.nghttp2_settings_id" title="nghttp2_settings_id"><tt class="xref c c-type docutils literal"><span class="pre">nghttp2_settings_id</span></tt></a>.</p> Maximum ID of <a class="reference internal" href="#c.nghttp2_settings_id" title="nghttp2_settings_id"><tt class="xref c c-type docutils literal"><span class="pre">nghttp2_settings_id</span></tt></a>.</p>
</dd></dl> </dd></dl>
@ -877,6 +891,13 @@ No flag set.</p>
Indicates EOF was sensed.</p> Indicates EOF was sensed.</p>
</dd></dl> </dd></dl>
<dl class="macro">
<dt id="c.NGHTTP2_DATA_FLAG_COMPRESSED">
<tt class="descname">NGHTTP2_DATA_FLAG_COMPRESSED</tt><a class="headerlink" href="#c.NGHTTP2_DATA_FLAG_COMPRESSED" title="Permalink to this definition"></a></dt>
<dd><p>(<tt class="docutils literal"><span class="pre">0x02</span></tt>)
Indicates data was compressed by application.</p>
</dd></dl>
</dd></dl> </dd></dl>
<dl class="type"> <dl class="type">
@ -921,34 +942,6 @@ which is analogous to HEADERS in SPDY.</p>
</dd></dl> </dd></dl>
<dl class="type">
<dt id="c.nghttp2_priority_type">
<tt class="descname">nghttp2_priority_type</tt><a class="headerlink" href="#c.nghttp2_priority_type" title="Permalink to this definition"></a></dt>
<dd><p>The type of priority specified in <a class="reference internal" href="#c.nghttp2_priority_spec" title="nghttp2_priority_spec"><tt class="xref c c-type docutils literal"><span class="pre">nghttp2_priority_spec</span></tt></a>.</p>
<dl class="macro">
<dt id="c.NGHTTP2_PRIORITY_TYPE_NONE">
<tt class="descname">NGHTTP2_PRIORITY_TYPE_NONE</tt><a class="headerlink" href="#c.NGHTTP2_PRIORITY_TYPE_NONE" title="Permalink to this definition"></a></dt>
<dd><p>(<tt class="docutils literal"><span class="pre">0</span></tt>)
No priority is given. The default priority will be used.</p>
</dd></dl>
<dl class="macro">
<dt id="c.NGHTTP2_PRIORITY_TYPE_GROUP">
<tt class="descname">NGHTTP2_PRIORITY_TYPE_GROUP</tt><a class="headerlink" href="#c.NGHTTP2_PRIORITY_TYPE_GROUP" title="Permalink to this definition"></a></dt>
<dd><p>(<tt class="docutils literal"><span class="pre">1</span></tt>)
Priority group ID and its weight are specified.</p>
</dd></dl>
<dl class="macro">
<dt id="c.NGHTTP2_PRIORITY_TYPE_DEP">
<tt class="descname">NGHTTP2_PRIORITY_TYPE_DEP</tt><a class="headerlink" href="#c.NGHTTP2_PRIORITY_TYPE_DEP" title="Permalink to this definition"></a></dt>
<dd><p>(<tt class="docutils literal"><span class="pre">2</span></tt>)
The stream ID of a stream to depend on and its exclusive flag is
specified.</p>
</dd></dl>
</dd></dl>
</div> </div>
<div class="section" id="types-structs-unions-and-typedefs"> <div class="section" id="types-structs-unions-and-typedefs">
<h2>Types (structs, unions and typedefs)<a class="headerlink" href="#types-structs-unions-and-typedefs" title="Permalink to this headline"></a></h2> <h2>Types (structs, unions and typedefs)<a class="headerlink" href="#types-structs-unions-and-typedefs" title="Permalink to this headline"></a></h2>
@ -1089,8 +1082,12 @@ the <em>source</em>. The read data is sent in the stream <em>stream_id</em>.
The implementation of this function must read at most <em>length</em> The implementation of this function must read at most <em>length</em>
bytes of data from <em>source</em> (or possibly other places) and store bytes of data from <em>source</em> (or possibly other places) and store
them in <em>buf</em> and return number of data stored in <em>buf</em>. If EOF is them in <em>buf</em> and return number of data stored in <em>buf</em>. If EOF is
reached, set <a class="reference internal" href="#c.NGHTTP2_DATA_FLAG_EOF" title="NGHTTP2_DATA_FLAG_EOF"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_DATA_FLAG_EOF</span></tt></a> flag in <em>*data_falgs</em>. reached, set <a class="reference internal" href="#c.NGHTTP2_DATA_FLAG_EOF" title="NGHTTP2_DATA_FLAG_EOF"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_DATA_FLAG_EOF</span></tt></a> flag in <em>*data_flags</em>.</p>
If the application wants to postpone DATA frames (e.g., <p>To send compressed data payload without affecting content-length,
set <a class="reference internal" href="#c.NGHTTP2_DATA_FLAG_COMPRESSED" title="NGHTTP2_DATA_FLAG_COMPRESSED"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_DATA_FLAG_COMPRESSED</span></tt></a> flag in <em>*data_flags</em>.
Compression must be done by application prior to fill data in
<em>buf</em>.</p>
<p>If the application wants to postpone DATA frames (e.g.,
asynchronous I/O, or reading data blocks for long time), it is asynchronous I/O, or reading data blocks for long time), it is
achieved by returning <a class="reference internal" href="#c.NGHTTP2_ERR_DEFERRED" title="NGHTTP2_ERR_DEFERRED"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_ERR_DEFERRED</span></tt></a> without reading achieved by returning <a class="reference internal" href="#c.NGHTTP2_ERR_DEFERRED" title="NGHTTP2_ERR_DEFERRED"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_ERR_DEFERRED</span></tt></a> without reading
any data in this invocation. The library removes DATA frame from any data in this invocation. The library removes DATA frame from
@ -1136,75 +1133,27 @@ and PAD_LOW.</p>
</dd></dl> </dd></dl>
<dl class="type">
<dt id="c.nghttp2_priority_group">
<tt class="descname">nghttp2_priority_group</tt><a class="headerlink" href="#c.nghttp2_priority_group" title="Permalink to this definition"></a></dt>
<dd><p>This structure stores priority group ID and its weight.</p>
<dl class="member">
<dt id="c.nghttp2_priority_group.pri_group_id">
int32_t <tt class="descname">pri_group_id</tt><a class="headerlink" href="#c.nghttp2_priority_group.pri_group_id" title="Permalink to this definition"></a></dt>
<dd><p>The priority group ID</p>
</dd></dl>
<dl class="member">
<dt id="c.nghttp2_priority_group.weight">
int32_t <tt class="descname">weight</tt><a class="headerlink" href="#c.nghttp2_priority_group.weight" title="Permalink to this definition"></a></dt>
<dd><p>The weight of the priority group</p>
</dd></dl>
</dd></dl>
<dl class="type">
<dt id="c.nghttp2_priority_dep">
<tt class="descname">nghttp2_priority_dep</tt><a class="headerlink" href="#c.nghttp2_priority_dep" title="Permalink to this definition"></a></dt>
<dd><p>This structure stores stream ID of the stream to depend on and its
dependency is exclusive or not.</p>
<dl class="member">
<dt id="c.nghttp2_priority_dep.stream_id">
int32_t <tt class="descname">stream_id</tt><a class="headerlink" href="#c.nghttp2_priority_dep.stream_id" title="Permalink to this definition"></a></dt>
<dd><p>The stream ID of the stream to depend on.</p>
</dd></dl>
<dl class="member">
<dt id="c.nghttp2_priority_dep.exclusive">
uint8_t <tt class="descname">exclusive</tt><a class="headerlink" href="#c.nghttp2_priority_dep.exclusive" title="Permalink to this definition"></a></dt>
<dd><p>nonzero means exclusive dependency</p>
</dd></dl>
</dd></dl>
<dl class="type"> <dl class="type">
<dt id="c.nghttp2_priority_spec"> <dt id="c.nghttp2_priority_spec">
<tt class="descname">nghttp2_priority_spec</tt><a class="headerlink" href="#c.nghttp2_priority_spec" title="Permalink to this definition"></a></dt> <tt class="descname">nghttp2_priority_spec</tt><a class="headerlink" href="#c.nghttp2_priority_spec" title="Permalink to this definition"></a></dt>
<dd><p>The structure to specify stream dependency. To specify stream <dd><p>The structure to specify stream dependency.</p>
dependency, specify <em>pri_type</em> and fill the <em>group</em> or <em>dep</em> member
according to <em>pri_type</em>.</p>
<dl class="member"> <dl class="member">
<dt id="c.nghttp2_priority_spec.pri_type"> <dt id="c.nghttp2_priority_spec.stream_id">
<a class="reference internal" href="#c.nghttp2_priority_type" title="nghttp2_priority_type">nghttp2_priority_type</a> <tt class="descname">pri_type</tt><a class="headerlink" href="#c.nghttp2_priority_spec.pri_type" title="Permalink to this definition"></a></dt> int32_t <tt class="descname">stream_id</tt><a class="headerlink" href="#c.nghttp2_priority_spec.stream_id" title="Permalink to this definition"></a></dt>
<dd><p>Type of priority specification. If <em>pri_type</em> is <dd><p>The stream ID of the stream to depend on. Specifying 0 makes
<a class="reference internal" href="#c.NGHTTP2_PRIORITY_TYPE_GROUP" title="NGHTTP2_PRIORITY_TYPE_GROUP"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_PRIORITY_TYPE_GROUP</span></tt></a>, fill <em>group</em>. If <em>pri_type</em> stream not depend any other stream.</p>
is <a class="reference internal" href="#c.NGHTTP2_PRIORITY_TYPE_DEP" title="NGHTTP2_PRIORITY_TYPE_DEP"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_PRIORITY_TYPE_DEP</span></tt></a>, fill <em>dep</em>. If <em>pri_type</em>
is <a class="reference internal" href="#c.NGHTTP2_PRIORITY_TYPE_NONE" title="NGHTTP2_PRIORITY_TYPE_NONE"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_PRIORITY_TYPE_NONE</span></tt></a>, the other data members are
ignored and it means that default priority group ID (which is
same as the stream ID) and default weight
<a class="reference internal" href="#c.NGHTTP2_DEFAULT_WEIGHT" title="NGHTTP2_DEFAULT_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_DEFAULT_WEIGHT</span></tt></a> are specified.</p>
</dd></dl> </dd></dl>
<dl class="member"> <dl class="member">
<dt id="c.nghttp2_priority_spec.group"> <dt id="c.nghttp2_priority_spec.weight">
<a class="reference internal" href="#c.nghttp2_priority_group" title="nghttp2_priority_group">nghttp2_priority_group</a> <tt class="descname">group</tt><a class="headerlink" href="#c.nghttp2_priority_spec.group" title="Permalink to this definition"></a></dt> int32_t <tt class="descname">weight</tt><a class="headerlink" href="#c.nghttp2_priority_spec.weight" title="Permalink to this definition"></a></dt>
<dd><p>Specify priority group ID and its weight. This field is <dd><p>The weight of this dependency.</p>
interpreted only when <em>pri_type</em> member is
<a class="reference internal" href="#c.NGHTTP2_PRIORITY_TYPE_GROUP" title="NGHTTP2_PRIORITY_TYPE_GROUP"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_PRIORITY_TYPE_GROUP</span></tt></a>.</p>
</dd></dl> </dd></dl>
<dl class="member"> <dl class="member">
<dt id="c.nghttp2_priority_spec.dep"> <dt id="c.nghttp2_priority_spec.exclusive">
<a class="reference internal" href="#c.nghttp2_priority_dep" title="nghttp2_priority_dep">nghttp2_priority_dep</a> <tt class="descname">dep</tt><a class="headerlink" href="#c.nghttp2_priority_spec.dep" title="Permalink to this definition"></a></dt> uint8_t <tt class="descname">exclusive</tt><a class="headerlink" href="#c.nghttp2_priority_spec.exclusive" title="Permalink to this definition"></a></dt>
<dd><p>Specify stream ID of a stream to depend on and exclusive flag. <dd><p>nonzero means exclusive dependency</p>
This field is interpreted only when <em>pri_type</em> member is
<a class="reference internal" href="#c.NGHTTP2_PRIORITY_TYPE_DEP" title="NGHTTP2_PRIORITY_TYPE_DEP"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_PRIORITY_TYPE_DEP</span></tt></a>.</p>
</dd></dl> </dd></dl>
</dd></dl> </dd></dl>
@ -1499,6 +1448,18 @@ uint16_t <tt class="descname">port</tt><a class="headerlink" href="#c.nghttp2_al
</dd></dl> </dd></dl>
<dl class="type">
<dt id="c.nghttp2_blocked">
<tt class="descname">nghttp2_blocked</tt><a class="headerlink" href="#c.nghttp2_blocked" title="Permalink to this definition"></a></dt>
<dd><p>The BLOCKED frame. It has following members:</p>
<dl class="member">
<dt id="c.nghttp2_blocked.hd">
<a class="reference internal" href="#c.nghttp2_frame_hd" title="nghttp2_frame_hd">nghttp2_frame_hd</a> <tt class="descname">hd</tt><a class="headerlink" href="#c.nghttp2_blocked.hd" title="Permalink to this definition"></a></dt>
<dd><p>The frame header.</p>
</dd></dl>
</dd></dl>
<dl class="type"> <dl class="type">
<dt id="c.nghttp2_frame"> <dt id="c.nghttp2_frame">
<tt class="descname">nghttp2_frame</tt><a class="headerlink" href="#c.nghttp2_frame" title="Permalink to this definition"></a></dt> <tt class="descname">nghttp2_frame</tt><a class="headerlink" href="#c.nghttp2_frame" title="Permalink to this definition"></a></dt>
@ -1571,6 +1532,12 @@ from here because the library deals with it internally.</p>
<dd><p>The ALTSVC frame.</p> <dd><p>The ALTSVC frame.</p>
</dd></dl> </dd></dl>
<dl class="member">
<dt id="c.nghttp2_frame.blocked">
<a class="reference internal" href="#c.nghttp2_blocked" title="nghttp2_blocked">nghttp2_blocked</a> <tt class="descname">blocked</tt><a class="headerlink" href="#c.nghttp2_frame.blocked" title="Permalink to this definition"></a></dt>
<dd><p>The BLOCKED frame.</p>
</dd></dl>
</dd></dl> </dd></dl>
<dl class="type"> <dl class="type">
@ -2490,27 +2457,27 @@ const char* <tt class="descname">nghttp2_strerror</tt><big>(</big>int<em>&nbsp;l
</dd></dl> </dd></dl>
<dl class="function"> <dl class="function">
<dt id="c.nghttp2_priority_spec_group_init"> <dt id="c.nghttp2_priority_spec_init">
void <tt class="descname">nghttp2_priority_spec_group_init</tt><big>(</big><a class="reference internal" href="#c.nghttp2_priority_spec" title="nghttp2_priority_spec">nghttp2_priority_spec</a><em>&nbsp;*pri_spec</em>, int32_t<em>&nbsp;pri_group_id</em>, int32_t<em>&nbsp;weight</em><big>)</big><a class="headerlink" href="#c.nghttp2_priority_spec_group_init" title="Permalink to this definition"></a></dt> void <tt class="descname">nghttp2_priority_spec_init</tt><big>(</big><a class="reference internal" href="#c.nghttp2_priority_spec" title="nghttp2_priority_spec">nghttp2_priority_spec</a><em>&nbsp;*pri_spec</em>, int32_t<em>&nbsp;stream_id</em>, int32_t<em>&nbsp;weight</em>, int<em>&nbsp;exclusive</em><big>)</big><a class="headerlink" href="#c.nghttp2_priority_spec_init" title="Permalink to this definition"></a></dt>
<dd><p>Initializes <em>pri_spec</em> with priority group ID <em>pri_group_id</em> and <dd><p>Initializes <em>pri_spec</em> with the <em>stream_id</em> of the stream to depend
its weight <em>weight</em>.</p> on with <em>weight</em> and its exclusive flag. If <em>exclusive</em> is
nonzero, exclusive flag is set.</p>
<p>The <em>weight</em> must be in [<a class="reference internal" href="#c.NGHTTP2_MIN_WEIGHT" title="NGHTTP2_MIN_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MIN_WEIGHT</span></tt></a>, <p>The <em>weight</em> must be in [<a class="reference internal" href="#c.NGHTTP2_MIN_WEIGHT" title="NGHTTP2_MIN_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MIN_WEIGHT</span></tt></a>,
<a class="reference internal" href="#c.NGHTTP2_MAX_WEIGHT" title="NGHTTP2_MAX_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MAX_WEIGHT</span></tt></a>], inclusive. If <em>weight</em> is strictly <a class="reference internal" href="#c.NGHTTP2_MAX_WEIGHT" title="NGHTTP2_MAX_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MAX_WEIGHT</span></tt></a>], inclusive.</p>
less than <a class="reference internal" href="#c.NGHTTP2_MIN_WEIGHT" title="NGHTTP2_MIN_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MIN_WEIGHT</span></tt></a>, it becomes
<a class="reference internal" href="#c.NGHTTP2_MIN_WEIGHT" title="NGHTTP2_MIN_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MIN_WEIGHT</span></tt></a>. If it is strictly greater than
<a class="reference internal" href="#c.NGHTTP2_MAX_WEIGHT" title="NGHTTP2_MAX_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MAX_WEIGHT</span></tt></a>, it becomes <a class="reference internal" href="#c.NGHTTP2_MAX_WEIGHT" title="NGHTTP2_MAX_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MAX_WEIGHT</span></tt></a>.</p>
<p>To specify weight for the default priority group (which is the same
as the stream ID of the stream) in <a class="reference internal" href="#c.nghttp2_submit_request" title="nghttp2_submit_request"><tt class="xref c c-func docutils literal"><span class="pre">nghttp2_submit_request()</span></tt></a> and
<a class="reference internal" href="#c.nghttp2_submit_headers" title="nghttp2_submit_headers"><tt class="xref c c-func docutils literal"><span class="pre">nghttp2_submit_headers()</span></tt></a> and its stream ID is not known in
advance, specify -1 to <em>pri_group_id</em>.</p>
</dd></dl> </dd></dl>
<dl class="function"> <dl class="function">
<dt id="c.nghttp2_priority_spec_dep_init"> <dt id="c.nghttp2_priority_spec_default_init">
void <tt class="descname">nghttp2_priority_spec_dep_init</tt><big>(</big><a class="reference internal" href="#c.nghttp2_priority_spec" title="nghttp2_priority_spec">nghttp2_priority_spec</a><em>&nbsp;*pri_spec</em>, int32_t<em>&nbsp;stream_id</em>, int<em>&nbsp;exclusive</em><big>)</big><a class="headerlink" href="#c.nghttp2_priority_spec_dep_init" title="Permalink to this definition"></a></dt> void <tt class="descname">nghttp2_priority_spec_default_init</tt><big>(</big><a class="reference internal" href="#c.nghttp2_priority_spec" title="nghttp2_priority_spec">nghttp2_priority_spec</a><em>&nbsp;*pri_spec</em><big>)</big><a class="headerlink" href="#c.nghttp2_priority_spec_default_init" title="Permalink to this definition"></a></dt>
<dd><p>Initializes <em>pri_spec</em> with the <em>stream_id</em> of the stream to depend <dd><p>Initializes <em>pri_spec</em> with the default values. The default values
on and its exclusive flag. If <em>exclusive</em> is nonzero, exclusive are: stream_id = 0, weight = <a class="reference internal" href="#c.NGHTTP2_DEFAULT_WEIGHT" title="NGHTTP2_DEFAULT_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_DEFAULT_WEIGHT</span></tt></a> and
flag is set.</p> exclusive = 0.</p>
</dd></dl>
<dl class="function">
<dt id="c.nghttp2_priority_spec_check_default">
int <tt class="descname">nghttp2_priority_spec_check_default</tt><big>(</big>const <a class="reference internal" href="#c.nghttp2_priority_spec" title="nghttp2_priority_spec">nghttp2_priority_spec</a><em>&nbsp;*pri_spec</em><big>)</big><a class="headerlink" href="#c.nghttp2_priority_spec_check_default" title="Permalink to this definition"></a></dt>
<dd><p>Returns nonzero if the <em>pri_spec</em> is filled with default values.</p>
</dd></dl> </dd></dl>
<dl class="function"> <dl class="function">
@ -2518,11 +2485,15 @@ flag is set.</p>
int <tt class="descname">nghttp2_submit_request</tt><big>(</big><a class="reference internal" href="#c.nghttp2_session" title="nghttp2_session">nghttp2_session</a><em>&nbsp;*session</em>, const <a class="reference internal" href="#c.nghttp2_priority_spec" title="nghttp2_priority_spec">nghttp2_priority_spec</a><em>&nbsp;*pri_spec</em>, const <a class="reference internal" href="#c.nghttp2_nv" title="nghttp2_nv">nghttp2_nv</a><em>&nbsp;*nva</em>, size_t<em>&nbsp;nvlen</em>, const <a class="reference internal" href="#c.nghttp2_data_provider" title="nghttp2_data_provider">nghttp2_data_provider</a><em>&nbsp;*data_prd</em>, void<em>&nbsp;*stream_user_data</em><big>)</big><a class="headerlink" href="#c.nghttp2_submit_request" title="Permalink to this definition"></a></dt> int <tt class="descname">nghttp2_submit_request</tt><big>(</big><a class="reference internal" href="#c.nghttp2_session" title="nghttp2_session">nghttp2_session</a><em>&nbsp;*session</em>, const <a class="reference internal" href="#c.nghttp2_priority_spec" title="nghttp2_priority_spec">nghttp2_priority_spec</a><em>&nbsp;*pri_spec</em>, const <a class="reference internal" href="#c.nghttp2_nv" title="nghttp2_nv">nghttp2_nv</a><em>&nbsp;*nva</em>, size_t<em>&nbsp;nvlen</em>, const <a class="reference internal" href="#c.nghttp2_data_provider" title="nghttp2_data_provider">nghttp2_data_provider</a><em>&nbsp;*data_prd</em>, void<em>&nbsp;*stream_user_data</em><big>)</big><a class="headerlink" href="#c.nghttp2_submit_request" title="Permalink to this definition"></a></dt>
<dd><p>Submits HEADERS frame and optionally one or more DATA frames.</p> <dd><p>Submits HEADERS frame and optionally one or more DATA frames.</p>
<p>The <em>pri_spec</em> is priority specification of this request. <tt class="docutils literal"><span class="pre">NULL</span></tt> <p>The <em>pri_spec</em> is priority specification of this request. <tt class="docutils literal"><span class="pre">NULL</span></tt>
means the default priority (priority group ID becomes its stream ID means the default priority (see
and weight is <a class="reference internal" href="#c.NGHTTP2_DEFAULT_WEIGHT" title="NGHTTP2_DEFAULT_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_DEFAULT_WEIGHT</span></tt></a>). To specify the <a class="reference internal" href="#c.nghttp2_priority_spec_default_init" title="nghttp2_priority_spec_default_init"><tt class="xref c c-func docutils literal"><span class="pre">nghttp2_priority_spec_default_init()</span></tt></a>). To specify the priority,
priority, use either <a class="reference internal" href="#c.nghttp2_priority_spec_group_init" title="nghttp2_priority_spec_group_init"><tt class="xref c c-func docutils literal"><span class="pre">nghttp2_priority_spec_group_init()</span></tt></a> or use <a class="reference internal" href="#c.nghttp2_priority_spec_init" title="nghttp2_priority_spec_init"><tt class="xref c c-func docutils literal"><span class="pre">nghttp2_priority_spec_init()</span></tt></a>. If <em>pri_spec</em> is not <tt class="docutils literal"><span class="pre">NULL</span></tt>,
<a class="reference internal" href="#c.nghttp2_priority_spec_dep_init" title="nghttp2_priority_spec_dep_init"><tt class="xref c c-func docutils literal"><span class="pre">nghttp2_priority_spec_dep_init()</span></tt></a>. If <em>pri_spec</em> is not <tt class="docutils literal"><span class="pre">NULL</span></tt>,
this function will copy its data members.</p> this function will copy its data members.</p>
<p>The <tt class="xref c c-func docutils literal"><span class="pre">pri_spec-&gt;weight()</span></tt> must be in [<a class="reference internal" href="#c.NGHTTP2_MIN_WEIGHT" title="NGHTTP2_MIN_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MIN_WEIGHT</span></tt></a>,
<a class="reference internal" href="#c.NGHTTP2_MAX_WEIGHT" title="NGHTTP2_MAX_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MAX_WEIGHT</span></tt></a>], inclusive. If <tt class="xref c c-func docutils literal"><span class="pre">pri_spec-&gt;weight()</span></tt> is
strictly less than <a class="reference internal" href="#c.NGHTTP2_MIN_WEIGHT" title="NGHTTP2_MIN_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MIN_WEIGHT</span></tt></a>, it becomes
<a class="reference internal" href="#c.NGHTTP2_MIN_WEIGHT" title="NGHTTP2_MIN_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MIN_WEIGHT</span></tt></a>. If it is strictly greater than
<a class="reference internal" href="#c.NGHTTP2_MAX_WEIGHT" title="NGHTTP2_MAX_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MAX_WEIGHT</span></tt></a>, it becomes <a class="reference internal" href="#c.NGHTTP2_MAX_WEIGHT" title="NGHTTP2_MAX_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MAX_WEIGHT</span></tt></a>.</p>
<p>The <em>nva</em> is an array of name/value pair <a class="reference internal" href="#c.nghttp2_nv" title="nghttp2_nv"><tt class="xref c c-type docutils literal"><span class="pre">nghttp2_nv</span></tt></a> with <p>The <em>nva</em> is an array of name/value pair <a class="reference internal" href="#c.nghttp2_nv" title="nghttp2_nv"><tt class="xref c c-type docutils literal"><span class="pre">nghttp2_nv</span></tt></a> with
<em>nvlen</em> elements. The value is opaque sequence of bytes and <em>nvlen</em> elements. The value is opaque sequence of bytes and
therefore can contain NULL byte (0x0). If the application requires therefore can contain NULL byte (0x0). If the application requires
@ -2560,8 +2531,6 @@ negative error codes:</p>
<dl class="docutils"> <dl class="docutils">
<dt><a class="reference internal" href="#c.NGHTTP2_ERR_NOMEM" title="NGHTTP2_ERR_NOMEM"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_ERR_NOMEM</span></tt></a></dt> <dt><a class="reference internal" href="#c.NGHTTP2_ERR_NOMEM" title="NGHTTP2_ERR_NOMEM"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_ERR_NOMEM</span></tt></a></dt>
<dd>Out of memory.</dd> <dd>Out of memory.</dd>
<dt><a class="reference internal" href="#c.NGHTTP2_ERR_INVALID_ARGUMENT" title="NGHTTP2_ERR_INVALID_ARGUMENT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_ERR_INVALID_ARGUMENT</span></tt></a></dt>
<dd>The <em>pri_spec-&gt;pri_type</em> is invalid.</dd>
</dl> </dl>
</dd></dl> </dd></dl>
@ -2616,11 +2585,15 @@ request HEADERS frame which opens new stream). In this case, the
actual stream ID is assigned just before the frame is sent. For actual stream ID is assigned just before the frame is sent. For
response, specify stream ID in <em>stream_id</em>.</p> response, specify stream ID in <em>stream_id</em>.</p>
<p>The <em>pri_spec</em> is priority specification of this request. <tt class="docutils literal"><span class="pre">NULL</span></tt> <p>The <em>pri_spec</em> is priority specification of this request. <tt class="docutils literal"><span class="pre">NULL</span></tt>
means the default priority (priority group ID becomes its stream ID means the default priority (see
and weight is <a class="reference internal" href="#c.NGHTTP2_DEFAULT_WEIGHT" title="NGHTTP2_DEFAULT_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_DEFAULT_WEIGHT</span></tt></a>). To specify the <a class="reference internal" href="#c.nghttp2_priority_spec_default_init" title="nghttp2_priority_spec_default_init"><tt class="xref c c-func docutils literal"><span class="pre">nghttp2_priority_spec_default_init()</span></tt></a>). To specify the priority,
priority, use either <a class="reference internal" href="#c.nghttp2_priority_spec_group_init" title="nghttp2_priority_spec_group_init"><tt class="xref c c-func docutils literal"><span class="pre">nghttp2_priority_spec_group_init()</span></tt></a> or use <a class="reference internal" href="#c.nghttp2_priority_spec_init" title="nghttp2_priority_spec_init"><tt class="xref c c-func docutils literal"><span class="pre">nghttp2_priority_spec_init()</span></tt></a>. If <em>pri_spec</em> is not <tt class="docutils literal"><span class="pre">NULL</span></tt>,
<a class="reference internal" href="#c.nghttp2_priority_spec_dep_init" title="nghttp2_priority_spec_dep_init"><tt class="xref c c-func docutils literal"><span class="pre">nghttp2_priority_spec_dep_init()</span></tt></a>. If <em>pri_spec</em> is not <tt class="docutils literal"><span class="pre">NULL</span></tt>,
this function will copy its data members.</p> this function will copy its data members.</p>
<p>The <tt class="xref c c-func docutils literal"><span class="pre">pri_spec-&gt;weight()</span></tt> must be in [<a class="reference internal" href="#c.NGHTTP2_MIN_WEIGHT" title="NGHTTP2_MIN_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MIN_WEIGHT</span></tt></a>,
<a class="reference internal" href="#c.NGHTTP2_MAX_WEIGHT" title="NGHTTP2_MAX_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MAX_WEIGHT</span></tt></a>], inclusive. If <tt class="xref c c-func docutils literal"><span class="pre">pri_spec-&gt;weight()</span></tt> is
strictly less than <a class="reference internal" href="#c.NGHTTP2_MIN_WEIGHT" title="NGHTTP2_MIN_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MIN_WEIGHT</span></tt></a>, it becomes
<a class="reference internal" href="#c.NGHTTP2_MIN_WEIGHT" title="NGHTTP2_MIN_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MIN_WEIGHT</span></tt></a>. If it is strictly greater than
<a class="reference internal" href="#c.NGHTTP2_MAX_WEIGHT" title="NGHTTP2_MAX_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MAX_WEIGHT</span></tt></a>, it becomes <a class="reference internal" href="#c.NGHTTP2_MAX_WEIGHT" title="NGHTTP2_MAX_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MAX_WEIGHT</span></tt></a>.</p>
<p>The <em>nva</em> is an array of name/value pair <a class="reference internal" href="#c.nghttp2_nv" title="nghttp2_nv"><tt class="xref c c-type docutils literal"><span class="pre">nghttp2_nv</span></tt></a> with <p>The <em>nva</em> is an array of name/value pair <a class="reference internal" href="#c.nghttp2_nv" title="nghttp2_nv"><tt class="xref c c-type docutils literal"><span class="pre">nghttp2_nv</span></tt></a> with
<em>nvlen</em> elements. The value is opaque sequence of bytes and <em>nvlen</em> elements. The value is opaque sequence of bytes and
therefore can contain NULL byte (0x0). If the application requires therefore can contain NULL byte (0x0). If the application requires
@ -2641,8 +2614,6 @@ negative error codes:</p>
<dl class="docutils"> <dl class="docutils">
<dt><a class="reference internal" href="#c.NGHTTP2_ERR_NOMEM" title="NGHTTP2_ERR_NOMEM"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_ERR_NOMEM</span></tt></a></dt> <dt><a class="reference internal" href="#c.NGHTTP2_ERR_NOMEM" title="NGHTTP2_ERR_NOMEM"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_ERR_NOMEM</span></tt></a></dt>
<dd>Out of memory.</dd> <dd>Out of memory.</dd>
<dt><a class="reference internal" href="#c.NGHTTP2_ERR_INVALID_ARGUMENT" title="NGHTTP2_ERR_INVALID_ARGUMENT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_ERR_INVALID_ARGUMENT</span></tt></a></dt>
<dd>The <em>pri_spec-&gt;pri_type</em> is invalid.</dd>
</dl> </dl>
</dd></dl> </dd></dl>
@ -2674,18 +2645,21 @@ to the priority specification <em>pri_spec</em>.</p>
<p>The <em>flags</em> is currently ignored and should be <p>The <em>flags</em> is currently ignored and should be
<a class="reference internal" href="#c.NGHTTP2_FLAG_NONE" title="NGHTTP2_FLAG_NONE"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_FLAG_NONE</span></tt></a>.</p> <a class="reference internal" href="#c.NGHTTP2_FLAG_NONE" title="NGHTTP2_FLAG_NONE"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_FLAG_NONE</span></tt></a>.</p>
<p>The <em>pri_spec</em> is priority specification of this request. <tt class="docutils literal"><span class="pre">NULL</span></tt> <p>The <em>pri_spec</em> is priority specification of this request. <tt class="docutils literal"><span class="pre">NULL</span></tt>
is not allowed for this function. To specify the priority, use is not allowed for this function. To specify the priority, use
either <a class="reference internal" href="#c.nghttp2_priority_spec_group_init" title="nghttp2_priority_spec_group_init"><tt class="xref c c-func docutils literal"><span class="pre">nghttp2_priority_spec_group_init()</span></tt></a> or <a class="reference internal" href="#c.nghttp2_priority_spec_init" title="nghttp2_priority_spec_init"><tt class="xref c c-func docutils literal"><span class="pre">nghttp2_priority_spec_init()</span></tt></a>. This function will copy its data
<a class="reference internal" href="#c.nghttp2_priority_spec_dep_init" title="nghttp2_priority_spec_dep_init"><tt class="xref c c-func docutils literal"><span class="pre">nghttp2_priority_spec_dep_init()</span></tt></a>. This function will copy its members.</p>
data members.</p> <p>The <tt class="xref c c-func docutils literal"><span class="pre">pri_spec-&gt;weight()</span></tt> must be in [<a class="reference internal" href="#c.NGHTTP2_MIN_WEIGHT" title="NGHTTP2_MIN_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MIN_WEIGHT</span></tt></a>,
<a class="reference internal" href="#c.NGHTTP2_MAX_WEIGHT" title="NGHTTP2_MAX_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MAX_WEIGHT</span></tt></a>], inclusive. If <tt class="xref c c-func docutils literal"><span class="pre">pri_spec-&gt;weight()</span></tt> is
strictly less than <a class="reference internal" href="#c.NGHTTP2_MIN_WEIGHT" title="NGHTTP2_MIN_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MIN_WEIGHT</span></tt></a>, it becomes
<a class="reference internal" href="#c.NGHTTP2_MIN_WEIGHT" title="NGHTTP2_MIN_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MIN_WEIGHT</span></tt></a>. If it is strictly greater than
<a class="reference internal" href="#c.NGHTTP2_MAX_WEIGHT" title="NGHTTP2_MAX_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MAX_WEIGHT</span></tt></a>, it becomes <a class="reference internal" href="#c.NGHTTP2_MAX_WEIGHT" title="NGHTTP2_MAX_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MAX_WEIGHT</span></tt></a>.</p>
<p>This function returns 0 if it succeeds, or one of the following <p>This function returns 0 if it succeeds, or one of the following
negative error codes:</p> negative error codes:</p>
<dl class="docutils"> <dl class="docutils">
<dt><a class="reference internal" href="#c.NGHTTP2_ERR_NOMEM" title="NGHTTP2_ERR_NOMEM"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_ERR_NOMEM</span></tt></a></dt> <dt><a class="reference internal" href="#c.NGHTTP2_ERR_NOMEM" title="NGHTTP2_ERR_NOMEM"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_ERR_NOMEM</span></tt></a></dt>
<dd>Out of memory.</dd> <dd>Out of memory.</dd>
<dt><a class="reference internal" href="#c.NGHTTP2_ERR_INVALID_ARGUMENT" title="NGHTTP2_ERR_INVALID_ARGUMENT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_ERR_INVALID_ARGUMENT</span></tt></a></dt> <dt><a class="reference internal" href="#c.NGHTTP2_ERR_INVALID_ARGUMENT" title="NGHTTP2_ERR_INVALID_ARGUMENT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_ERR_INVALID_ARGUMENT</span></tt></a></dt>
<dd>The <em>pri_spec</em> is NULL; or the <em>pri_spec-&gt;pri_type</em> is invalid; <dd>The <em>pri_spec</em> is NULL; or trying to depend on itself.</dd>
or trying to depend on itself.</dd>
</dl> </dl>
</dd></dl> </dd></dl>

View File

@ -215,6 +215,18 @@
</dt> </dt>
<dt><a href="apiref.html#c.NGHTTP2_BLOCKED">NGHTTP2_BLOCKED (C macro)</a>
</dt>
<dt><a href="apiref.html#c.nghttp2_blocked">nghttp2_blocked (C type)</a>
</dt>
<dt><a href="apiref.html#c.nghttp2_blocked.hd">nghttp2_blocked.hd (C member)</a>
</dt>
<dt><a href="apiref.html#c.NGHTTP2_CANCEL">NGHTTP2_CANCEL (C macro)</a> <dt><a href="apiref.html#c.NGHTTP2_CANCEL">NGHTTP2_CANCEL (C macro)</a>
</dt> </dt>
@ -279,6 +291,10 @@
</dt> </dt>
<dt><a href="apiref.html#c.NGHTTP2_DATA_FLAG_COMPRESSED">NGHTTP2_DATA_FLAG_COMPRESSED (C macro)</a>
</dt>
<dt><a href="apiref.html#c.NGHTTP2_DATA_FLAG_EOF">NGHTTP2_DATA_FLAG_EOF (C macro)</a> <dt><a href="apiref.html#c.NGHTTP2_DATA_FLAG_EOF">NGHTTP2_DATA_FLAG_EOF (C macro)</a>
</dt> </dt>
@ -463,6 +479,10 @@
</dt> </dt>
<dt><a href="apiref.html#c.NGHTTP2_FLAG_COMPRESSED">NGHTTP2_FLAG_COMPRESSED (C macro)</a>
</dt>
<dt><a href="apiref.html#c.NGHTTP2_FLAG_END_HEADERS">NGHTTP2_FLAG_END_HEADERS (C macro)</a> <dt><a href="apiref.html#c.NGHTTP2_FLAG_END_HEADERS">NGHTTP2_FLAG_END_HEADERS (C macro)</a>
</dt> </dt>
@ -487,11 +507,7 @@
</dt> </dt>
<dt><a href="apiref.html#c.NGHTTP2_FLAG_PRIORITY_DEPENDENCY">NGHTTP2_FLAG_PRIORITY_DEPENDENCY (C macro)</a> <dt><a href="apiref.html#c.NGHTTP2_FLAG_PRIORITY">NGHTTP2_FLAG_PRIORITY (C macro)</a>
</dt>
<dt><a href="apiref.html#c.NGHTTP2_FLAG_PRIORITY_GROUP">NGHTTP2_FLAG_PRIORITY_GROUP (C macro)</a>
</dt> </dt>
@ -507,6 +523,10 @@
</dt> </dt>
<dt><a href="apiref.html#c.nghttp2_frame.blocked">nghttp2_frame.blocked (C member)</a>
</dt>
<dt><a href="apiref.html#c.nghttp2_frame.data">nghttp2_frame.data (C member)</a> <dt><a href="apiref.html#c.nghttp2_frame.data">nghttp2_frame.data (C member)</a>
</dt> </dt>
@ -710,6 +730,8 @@
<dt><a href="apiref.html#c.NGHTTP2_INTERNAL_ERROR">NGHTTP2_INTERNAL_ERROR (C macro)</a> <dt><a href="apiref.html#c.NGHTTP2_INTERNAL_ERROR">NGHTTP2_INTERNAL_ERROR (C macro)</a>
</dt> </dt>
</dl></td>
<td style="width: 33%" valign="top"><dl>
<dt><a href="apiref.html#c.nghttp2_is_fatal">nghttp2_is_fatal (C function)</a> <dt><a href="apiref.html#c.nghttp2_is_fatal">nghttp2_is_fatal (C function)</a>
</dt> </dt>
@ -734,8 +756,6 @@
<dt><a href="apiref.html#c.NGHTTP2_NO_ERROR">NGHTTP2_NO_ERROR (C macro)</a> <dt><a href="apiref.html#c.NGHTTP2_NO_ERROR">NGHTTP2_NO_ERROR (C macro)</a>
</dt> </dt>
</dl></td>
<td style="width: 33%" valign="top"><dl>
<dt><a href="apiref.html#c.nghttp2_nv">nghttp2_nv (C type)</a> <dt><a href="apiref.html#c.nghttp2_nv">nghttp2_nv (C type)</a>
</dt> </dt>
@ -869,67 +889,31 @@
</dt> </dt>
<dt><a href="apiref.html#c.nghttp2_priority_dep">nghttp2_priority_dep (C type)</a>
</dt>
<dt><a href="apiref.html#c.nghttp2_priority_dep.exclusive">nghttp2_priority_dep.exclusive (C member)</a>
</dt>
<dt><a href="apiref.html#c.nghttp2_priority_dep.stream_id">nghttp2_priority_dep.stream_id (C member)</a>
</dt>
<dt><a href="apiref.html#c.nghttp2_priority_group">nghttp2_priority_group (C type)</a>
</dt>
<dt><a href="apiref.html#c.nghttp2_priority_group.pri_group_id">nghttp2_priority_group.pri_group_id (C member)</a>
</dt>
<dt><a href="apiref.html#c.nghttp2_priority_group.weight">nghttp2_priority_group.weight (C member)</a>
</dt>
<dt><a href="apiref.html#c.nghttp2_priority_spec">nghttp2_priority_spec (C type)</a> <dt><a href="apiref.html#c.nghttp2_priority_spec">nghttp2_priority_spec (C type)</a>
</dt> </dt>
<dt><a href="apiref.html#c.nghttp2_priority_spec.dep">nghttp2_priority_spec.dep (C member)</a> <dt><a href="apiref.html#c.nghttp2_priority_spec.exclusive">nghttp2_priority_spec.exclusive (C member)</a>
</dt> </dt>
<dt><a href="apiref.html#c.nghttp2_priority_spec.group">nghttp2_priority_spec.group (C member)</a> <dt><a href="apiref.html#c.nghttp2_priority_spec.stream_id">nghttp2_priority_spec.stream_id (C member)</a>
</dt> </dt>
<dt><a href="apiref.html#c.nghttp2_priority_spec.pri_type">nghttp2_priority_spec.pri_type (C member)</a> <dt><a href="apiref.html#c.nghttp2_priority_spec.weight">nghttp2_priority_spec.weight (C member)</a>
</dt> </dt>
<dt><a href="apiref.html#c.nghttp2_priority_spec_dep_init">nghttp2_priority_spec_dep_init (C function)</a> <dt><a href="apiref.html#c.nghttp2_priority_spec_check_default">nghttp2_priority_spec_check_default (C function)</a>
</dt> </dt>
<dt><a href="apiref.html#c.nghttp2_priority_spec_group_init">nghttp2_priority_spec_group_init (C function)</a> <dt><a href="apiref.html#c.nghttp2_priority_spec_default_init">nghttp2_priority_spec_default_init (C function)</a>
</dt> </dt>
<dt><a href="apiref.html#c.nghttp2_priority_type">nghttp2_priority_type (C type)</a> <dt><a href="apiref.html#c.nghttp2_priority_spec_init">nghttp2_priority_spec_init (C function)</a>
</dt>
<dt><a href="apiref.html#c.NGHTTP2_PRIORITY_TYPE_DEP">NGHTTP2_PRIORITY_TYPE_DEP (C macro)</a>
</dt>
<dt><a href="apiref.html#c.NGHTTP2_PRIORITY_TYPE_GROUP">NGHTTP2_PRIORITY_TYPE_GROUP (C macro)</a>
</dt>
<dt><a href="apiref.html#c.NGHTTP2_PRIORITY_TYPE_NONE">NGHTTP2_PRIORITY_TYPE_NONE (C macro)</a>
</dt> </dt>
@ -1177,6 +1161,10 @@
</dt> </dt>
<dt><a href="apiref.html#c.NGHTTP2_SETTINGS_COMPRESS_DATA">NGHTTP2_SETTINGS_COMPRESS_DATA (C macro)</a>
</dt>
<dt><a href="apiref.html#c.NGHTTP2_SETTINGS_ENABLE_PUSH">NGHTTP2_SETTINGS_ENABLE_PUSH (C macro)</a> <dt><a href="apiref.html#c.NGHTTP2_SETTINGS_ENABLE_PUSH">NGHTTP2_SETTINGS_ENABLE_PUSH (C macro)</a>
</dt> </dt>

View File

@ -202,7 +202,7 @@
<span class="cm"> * The protocol version identification string of this library</span> <span class="cm"> * The protocol version identification string of this library</span>
<span class="cm"> * supports. This identifier is used if HTTP/2 is used over TLS.</span> <span class="cm"> * supports. This identifier is used if HTTP/2 is used over TLS.</span>
<span class="cm"> */</span> <span class="cm"> */</span>
<span class="cp">#define NGHTTP2_PROTO_VERSION_ID &quot;h2-11&quot;</span> <span class="cp">#define NGHTTP2_PROTO_VERSION_ID &quot;h2-12&quot;</span>
<span class="cm">/**</span> <span class="cm">/**</span>
<span class="cm"> * @macro</span> <span class="cm"> * @macro</span>
<span class="cm"> *</span> <span class="cm"> *</span>
@ -217,7 +217,7 @@
<span class="cm"> * supports. This identifier is used if HTTP/2 is used over cleartext</span> <span class="cm"> * supports. This identifier is used if HTTP/2 is used over cleartext</span>
<span class="cm"> * TCP.</span> <span class="cm"> * TCP.</span>
<span class="cm"> */</span> <span class="cm"> */</span>
<span class="cp">#define NGHTTP2_CLEARTEXT_PROTO_VERSION_ID &quot;h2c-11&quot;</span> <span class="cp">#define NGHTTP2_CLEARTEXT_PROTO_VERSION_ID &quot;h2c-12&quot;</span>
<span class="cm">/**</span> <span class="cm">/**</span>
<span class="cm"> * @macro</span> <span class="cm"> * @macro</span>
@ -275,21 +275,21 @@
<span class="cm">/**</span> <span class="cm">/**</span>
<span class="cm"> * @macro</span> <span class="cm"> * @macro</span>
<span class="cm"> *</span> <span class="cm"> *</span>
<span class="cm"> * The default weight of priority group.</span> <span class="cm"> * The default weight of stream dependency.</span>
<span class="cm"> */</span> <span class="cm"> */</span>
<span class="cp">#define NGHTTP2_DEFAULT_WEIGHT 16</span> <span class="cp">#define NGHTTP2_DEFAULT_WEIGHT 16</span>
<span class="cm">/**</span> <span class="cm">/**</span>
<span class="cm"> * @macro</span> <span class="cm"> * @macro</span>
<span class="cm"> *</span> <span class="cm"> *</span>
<span class="cm"> * The maximum weight of priority group.</span> <span class="cm"> * The maximum weight of stream dependency.</span>
<span class="cm"> */</span> <span class="cm"> */</span>
<span class="cp">#define NGHTTP2_MAX_WEIGHT 256</span> <span class="cp">#define NGHTTP2_MAX_WEIGHT 256</span>
<span class="cm">/**</span> <span class="cm">/**</span>
<span class="cm"> * @macro</span> <span class="cm"> * @macro</span>
<span class="cm"> *</span> <span class="cm"> *</span>
<span class="cm"> * The minimum weight of priority group.</span> <span class="cm"> * The minimum weight of stream dependency.</span>
<span class="cm"> */</span> <span class="cm"> */</span>
<span class="cp">#define NGHTTP2_MIN_WEIGHT 1</span> <span class="cp">#define NGHTTP2_MIN_WEIGHT 1</span>
@ -604,7 +604,11 @@
<span class="cm">/**</span> <span class="cm">/**</span>
<span class="cm"> * The ALTSVC frame.</span> <span class="cm"> * The ALTSVC frame.</span>
<span class="cm"> */</span> <span class="cm"> */</span>
<span class="n">NGHTTP2_ALTSVC</span> <span class="o">=</span> <span class="mh">0x0a</span> <span class="n">NGHTTP2_ALTSVC</span> <span class="o">=</span> <span class="mh">0x0a</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * The BLOCKED frame.</span>
<span class="cm"> */</span>
<span class="n">NGHTTP2_BLOCKED</span> <span class="o">=</span> <span class="mh">0x0b</span>
<span class="p">}</span> <span class="n">nghttp2_frame_type</span><span class="p">;</span> <span class="p">}</span> <span class="n">nghttp2_frame_type</span><span class="p">;</span>
<span class="cm">/**</span> <span class="cm">/**</span>
@ -643,13 +647,13 @@
<span class="cm"> */</span> <span class="cm"> */</span>
<span class="n">NGHTTP2_FLAG_PAD_HIGH</span> <span class="o">=</span> <span class="mh">0x10</span><span class="p">,</span> <span class="n">NGHTTP2_FLAG_PAD_HIGH</span> <span class="o">=</span> <span class="mh">0x10</span><span class="p">,</span>
<span class="cm">/**</span> <span class="cm">/**</span>
<span class="cm"> * The PRIORITY_GROUP flag.</span> <span class="cm"> * The PRIORITY flag.</span>
<span class="cm"> */</span> <span class="cm"> */</span>
<span class="n">NGHTTP2_FLAG_PRIORITY_GROUP</span> <span class="o">=</span> <span class="mh">0x20</span><span class="p">,</span> <span class="n">NGHTTP2_FLAG_PRIORITY</span> <span class="o">=</span> <span class="mh">0x20</span><span class="p">,</span>
<span class="cm">/**</span> <span class="cm">/**</span>
<span class="cm"> * The PRIORITY_DEPENDENCY flag.</span> <span class="cm"> * THE COMPRESSED flag.</span>
<span class="cm"> */</span> <span class="cm"> */</span>
<span class="n">NGHTTP2_FLAG_PRIORITY_DEPENDENCY</span> <span class="o">=</span> <span class="mh">0x40</span> <span class="n">NGHTTP2_FLAG_COMPRESSED</span> <span class="o">=</span> <span class="mh">0x20</span>
<span class="p">}</span> <span class="n">nghttp2_flag</span><span class="p">;</span> <span class="p">}</span> <span class="n">nghttp2_flag</span><span class="p">;</span>
<span class="cm">/**</span> <span class="cm">/**</span>
@ -674,9 +678,13 @@
<span class="cm"> */</span> <span class="cm"> */</span>
<span class="n">NGHTTP2_SETTINGS_INITIAL_WINDOW_SIZE</span> <span class="o">=</span> <span class="mi">4</span><span class="p">,</span> <span class="n">NGHTTP2_SETTINGS_INITIAL_WINDOW_SIZE</span> <span class="o">=</span> <span class="mi">4</span><span class="p">,</span>
<span class="cm">/**</span> <span class="cm">/**</span>
<span class="cm"> * SETTINGS_COMPRESS_DATA</span>
<span class="cm"> */</span>
<span class="n">NGHTTP2_SETTINGS_COMPRESS_DATA</span> <span class="o">=</span> <span class="mi">5</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * Maximum ID of :type:`nghttp2_settings_id`.</span> <span class="cm"> * Maximum ID of :type:`nghttp2_settings_id`.</span>
<span class="cm"> */</span> <span class="cm"> */</span>
<span class="n">NGHTTP2_SETTINGS_MAX</span> <span class="o">=</span> <span class="mi">4</span> <span class="n">NGHTTP2_SETTINGS_MAX</span> <span class="o">=</span> <span class="mi">5</span>
<span class="p">}</span> <span class="n">nghttp2_settings_id</span><span class="p">;</span> <span class="p">}</span> <span class="n">nghttp2_settings_id</span><span class="p">;</span>
<span class="cm">/**</span> <span class="cm">/**</span>
@ -799,7 +807,11 @@
<span class="cm">/**</span> <span class="cm">/**</span>
<span class="cm"> * Indicates EOF was sensed.</span> <span class="cm"> * Indicates EOF was sensed.</span>
<span class="cm"> */</span> <span class="cm"> */</span>
<span class="n">NGHTTP2_DATA_FLAG_EOF</span> <span class="o">=</span> <span class="mh">0x01</span> <span class="n">NGHTTP2_DATA_FLAG_EOF</span> <span class="o">=</span> <span class="mh">0x01</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * Indicates data was compressed by application.</span>
<span class="cm"> */</span>
<span class="n">NGHTTP2_DATA_FLAG_COMPRESSED</span> <span class="o">=</span> <span class="mh">0x02</span>
<span class="p">}</span> <span class="n">nghttp2_data_flag</span><span class="p">;</span> <span class="p">}</span> <span class="n">nghttp2_data_flag</span><span class="p">;</span>
<span class="cm">/**</span> <span class="cm">/**</span>
@ -810,7 +822,13 @@
<span class="cm"> * The implementation of this function must read at most |length|</span> <span class="cm"> * The implementation of this function must read at most |length|</span>
<span class="cm"> * bytes of data from |source| (or possibly other places) and store</span> <span class="cm"> * bytes of data from |source| (or possibly other places) and store</span>
<span class="cm"> * them in |buf| and return number of data stored in |buf|. If EOF is</span> <span class="cm"> * them in |buf| and return number of data stored in |buf|. If EOF is</span>
<span class="cm"> * reached, set :enum:`NGHTTP2_DATA_FLAG_EOF` flag in |*data_falgs|.</span> <span class="cm"> * reached, set :enum:`NGHTTP2_DATA_FLAG_EOF` flag in |*data_flags|.</span>
<span class="cm"> *</span>
<span class="cm"> * To send compressed data payload without affecting content-length,</span>
<span class="cm"> * set :enum:`NGHTTP2_DATA_FLAG_COMPRESSED` flag in |*data_flags|.</span>
<span class="cm"> * Compression must be done by application prior to fill data in</span>
<span class="cm"> * |buf|.</span>
<span class="cm"> *</span>
<span class="cm"> * If the application wants to postpone DATA frames (e.g.,</span> <span class="cm"> * If the application wants to postpone DATA frames (e.g.,</span>
<span class="cm"> * asynchronous I/O, or reading data blocks for long time), it is</span> <span class="cm"> * asynchronous I/O, or reading data blocks for long time), it is</span>
<span class="cm"> * achieved by returning :enum:`NGHTTP2_ERR_DEFERRED` without reading</span> <span class="cm"> * achieved by returning :enum:`NGHTTP2_ERR_DEFERRED` without reading</span>
@ -892,93 +910,25 @@
<span class="n">NGHTTP2_HCAT_HEADERS</span> <span class="o">=</span> <span class="mi">3</span> <span class="n">NGHTTP2_HCAT_HEADERS</span> <span class="o">=</span> <span class="mi">3</span>
<span class="p">}</span> <span class="n">nghttp2_headers_category</span><span class="p">;</span> <span class="p">}</span> <span class="n">nghttp2_headers_category</span><span class="p">;</span>
<span class="cm">/**</span>
<span class="cm"> * @enum</span>
<span class="cm"> *</span>
<span class="cm"> * The type of priority specified in :type:`nghttp2_priority_spec`.</span>
<span class="cm"> */</span>
<span class="k">typedef</span> <span class="k">enum</span> <span class="p">{</span>
<span class="cm">/**</span>
<span class="cm"> * No priority is given. The default priority will be used.</span>
<span class="cm"> */</span>
<span class="n">NGHTTP2_PRIORITY_TYPE_NONE</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * Priority group ID and its weight are specified.</span>
<span class="cm"> */</span>
<span class="n">NGHTTP2_PRIORITY_TYPE_GROUP</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * The stream ID of a stream to depend on and its exclusive flag is</span>
<span class="cm"> * specified.</span>
<span class="cm"> */</span>
<span class="n">NGHTTP2_PRIORITY_TYPE_DEP</span> <span class="o">=</span> <span class="mi">2</span>
<span class="p">}</span> <span class="n">nghttp2_priority_type</span><span class="p">;</span>
<span class="cm">/**</span> <span class="cm">/**</span>
<span class="cm"> * @struct</span> <span class="cm"> * @struct</span>
<span class="cm"> *</span> <span class="cm"> *</span>
<span class="cm"> * This structure stores priority group ID and its weight.</span> <span class="cm"> * The structure to specify stream dependency.</span>
<span class="cm"> */</span> <span class="cm"> */</span>
<span class="k">typedef</span> <span class="k">struct</span> <span class="p">{</span> <span class="k">typedef</span> <span class="k">struct</span> <span class="p">{</span>
<span class="cm">/**</span> <span class="cm">/**</span>
<span class="cm"> * The priority group ID</span> <span class="cm"> * The stream ID of the stream to depend on. Specifying 0 makes</span>
<span class="cm"> */</span> <span class="cm"> * stream not depend any other stream.</span>
<span class="kt">int32_t</span> <span class="n">pri_group_id</span><span class="p">;</span>
<span class="cm">/**</span>
<span class="cm"> * The weight of the priority group</span>
<span class="cm"> */</span>
<span class="kt">int32_t</span> <span class="n">weight</span><span class="p">;</span>
<span class="p">}</span> <span class="n">nghttp2_priority_group</span><span class="p">;</span>
<span class="cm">/**</span>
<span class="cm"> * @struct</span>
<span class="cm"> *</span>
<span class="cm"> * This structure stores stream ID of the stream to depend on and its</span>
<span class="cm"> * dependency is exclusive or not.</span>
<span class="cm"> */</span>
<span class="k">typedef</span> <span class="k">struct</span> <span class="p">{</span>
<span class="cm">/**</span>
<span class="cm"> * The stream ID of the stream to depend on.</span>
<span class="cm"> */</span> <span class="cm"> */</span>
<span class="kt">int32_t</span> <span class="n">stream_id</span><span class="p">;</span> <span class="kt">int32_t</span> <span class="n">stream_id</span><span class="p">;</span>
<span class="cm">/**</span> <span class="cm">/**</span>
<span class="cm"> * The weight of this dependency.</span>
<span class="cm"> */</span>
<span class="kt">int32_t</span> <span class="n">weight</span><span class="p">;</span>
<span class="cm">/**</span>
<span class="cm"> * nonzero means exclusive dependency</span> <span class="cm"> * nonzero means exclusive dependency</span>
<span class="cm"> */</span> <span class="cm"> */</span>
<span class="kt">uint8_t</span> <span class="n">exclusive</span><span class="p">;</span> <span class="kt">uint8_t</span> <span class="n">exclusive</span><span class="p">;</span>
<span class="p">}</span> <span class="n">nghttp2_priority_dep</span><span class="p">;</span>
<span class="cm">/**</span>
<span class="cm"> * @struct</span>
<span class="cm"> *</span>
<span class="cm"> * The structure to specify stream dependency. To specify stream</span>
<span class="cm"> * dependency, specify |pri_type| and fill the |group| or |dep| member</span>
<span class="cm"> * according to |pri_type|.</span>
<span class="cm"> */</span>
<span class="k">typedef</span> <span class="k">struct</span> <span class="p">{</span>
<span class="cm">/**</span>
<span class="cm"> * Type of priority specification. If |pri_type| is</span>
<span class="cm"> * :enum:`NGHTTP2_PRIORITY_TYPE_GROUP`, fill |group|. If |pri_type|</span>
<span class="cm"> * is :enum:`NGHTTP2_PRIORITY_TYPE_DEP`, fill |dep|. If |pri_type|</span>
<span class="cm"> * is :enum:`NGHTTP2_PRIORITY_TYPE_NONE`, the other data members are</span>
<span class="cm"> * ignored and it means that default priority group ID (which is</span>
<span class="cm"> * same as the stream ID) and default weight</span>
<span class="cm"> * :macro:`NGHTTP2_DEFAULT_WEIGHT` are specified.</span>
<span class="cm"> */</span>
<span class="n">nghttp2_priority_type</span> <span class="n">pri_type</span><span class="p">;</span>
<span class="k">union</span> <span class="p">{</span>
<span class="cm">/**</span>
<span class="cm"> * Specify priority group ID and its weight. This field is</span>
<span class="cm"> * interpreted only when |pri_type| member is</span>
<span class="cm"> * :enum:`NGHTTP2_PRIORITY_TYPE_GROUP`.</span>
<span class="cm"> */</span>
<span class="n">nghttp2_priority_group</span> <span class="n">group</span><span class="p">;</span>
<span class="cm">/**</span>
<span class="cm"> * Specify stream ID of a stream to depend on and exclusive flag.</span>
<span class="cm"> * This field is interpreted only when |pri_type| member is</span>
<span class="cm"> * :enum:`NGHTTP2_PRIORITY_TYPE_DEP`.</span>
<span class="cm"> */</span>
<span class="n">nghttp2_priority_dep</span> <span class="n">dep</span><span class="p">;</span>
<span class="p">}</span> <span class="n">spec</span><span class="p">;</span>
<span class="p">}</span> <span class="n">nghttp2_priority_spec</span><span class="p">;</span> <span class="p">}</span> <span class="n">nghttp2_priority_spec</span><span class="p">;</span>
<span class="cm">/**</span> <span class="cm">/**</span>
@ -1215,6 +1165,18 @@
<span class="kt">uint16_t</span> <span class="n">port</span><span class="p">;</span> <span class="kt">uint16_t</span> <span class="n">port</span><span class="p">;</span>
<span class="p">}</span> <span class="n">nghttp2_altsvc</span><span class="p">;</span> <span class="p">}</span> <span class="n">nghttp2_altsvc</span><span class="p">;</span>
<span class="cm">/**</span>
<span class="cm"> * @struct</span>
<span class="cm"> *</span>
<span class="cm"> * The BLOCKED frame. It has following members:</span>
<span class="cm"> */</span>
<span class="k">typedef</span> <span class="k">struct</span> <span class="p">{</span>
<span class="cm">/**</span>
<span class="cm"> * The frame header.</span>
<span class="cm"> */</span>
<span class="n">nghttp2_frame_hd</span> <span class="n">hd</span><span class="p">;</span>
<span class="p">}</span> <span class="n">nghttp2_blocked</span><span class="p">;</span>
<span class="cm">/**</span> <span class="cm">/**</span>
<span class="cm"> * @union</span> <span class="cm"> * @union</span>
<span class="cm"> *</span> <span class="cm"> *</span>
@ -1267,6 +1229,10 @@
<span class="cm"> * The ALTSVC frame.</span> <span class="cm"> * The ALTSVC frame.</span>
<span class="cm"> */</span> <span class="cm"> */</span>
<span class="n">nghttp2_altsvc</span> <span class="n">altsvc</span><span class="p">;</span> <span class="n">nghttp2_altsvc</span> <span class="n">altsvc</span><span class="p">;</span>
<span class="cm">/**</span>
<span class="cm"> * The BLOCKED frame.</span>
<span class="cm"> */</span>
<span class="n">nghttp2_blocked</span> <span class="n">blocked</span><span class="p">;</span>
<span class="p">}</span> <span class="n">nghttp2_frame</span><span class="p">;</span> <span class="p">}</span> <span class="n">nghttp2_frame</span><span class="p">;</span>
<span class="cm">/**</span> <span class="cm">/**</span>
@ -2314,32 +2280,32 @@
<span class="cm">/**</span> <span class="cm">/**</span>
<span class="cm"> * @function</span> <span class="cm"> * @function</span>
<span class="cm"> *</span> <span class="cm"> *</span>
<span class="cm"> * Initializes |pri_spec| with priority group ID |pri_group_id| and</span> <span class="cm"> * Initializes |pri_spec| with the |stream_id| of the stream to depend</span>
<span class="cm"> * its weight |weight|.</span> <span class="cm"> * on with |weight| and its exclusive flag. If |exclusive| is</span>
<span class="cm"> * nonzero, exclusive flag is set.</span>
<span class="cm"> *</span> <span class="cm"> *</span>
<span class="cm"> * The |weight| must be in [:enum:`NGHTTP2_MIN_WEIGHT`,</span> <span class="cm"> * The |weight| must be in [:enum:`NGHTTP2_MIN_WEIGHT`,</span>
<span class="cm"> * :enum:`NGHTTP2_MAX_WEIGHT`], inclusive. If |weight| is strictly</span> <span class="cm"> * :enum:`NGHTTP2_MAX_WEIGHT`], inclusive.</span>
<span class="cm"> * less than :enum:`NGHTTP2_MIN_WEIGHT`, it becomes</span>
<span class="cm"> * :enum:`NGHTTP2_MIN_WEIGHT`. If it is strictly greater than</span>
<span class="cm"> * :enum:`NGHTTP2_MAX_WEIGHT`, it becomes :enum:`NGHTTP2_MAX_WEIGHT`.</span>
<span class="cm"> *</span>
<span class="cm"> * To specify weight for the default priority group (which is the same</span>
<span class="cm"> * as the stream ID of the stream) in `nghttp2_submit_request()` and</span>
<span class="cm"> * `nghttp2_submit_headers()` and its stream ID is not known in</span>
<span class="cm"> * advance, specify -1 to |pri_group_id|.</span>
<span class="cm"> */</span> <span class="cm"> */</span>
<span class="kt">void</span> <span class="nf">nghttp2_priority_spec_group_init</span><span class="p">(</span><span class="n">nghttp2_priority_spec</span> <span class="o">*</span><span class="n">pri_spec</span><span class="p">,</span> <span class="kt">void</span> <span class="nf">nghttp2_priority_spec_init</span><span class="p">(</span><span class="n">nghttp2_priority_spec</span> <span class="o">*</span><span class="n">pri_spec</span><span class="p">,</span>
<span class="kt">int32_t</span> <span class="n">pri_group_id</span><span class="p">,</span> <span class="kt">int32_t</span> <span class="n">weight</span><span class="p">);</span> <span class="kt">int32_t</span> <span class="n">stream_id</span><span class="p">,</span> <span class="kt">int32_t</span> <span class="n">weight</span><span class="p">,</span>
<span class="kt">int</span> <span class="n">exclusive</span><span class="p">);</span>
<span class="cm">/**</span> <span class="cm">/**</span>
<span class="cm"> * @function</span> <span class="cm"> * @function</span>
<span class="cm"> *</span> <span class="cm"> *</span>
<span class="cm"> * Initializes |pri_spec| with the |stream_id| of the stream to depend</span> <span class="cm"> * Initializes |pri_spec| with the default values. The default values</span>
<span class="cm"> * on and its exclusive flag. If |exclusive| is nonzero, exclusive</span> <span class="cm"> * are: stream_id = 0, weight = :macro:`NGHTTP2_DEFAULT_WEIGHT` and</span>
<span class="cm"> * flag is set.</span> <span class="cm"> * exclusive = 0.</span>
<span class="cm"> */</span> <span class="cm"> */</span>
<span class="kt">void</span> <span class="nf">nghttp2_priority_spec_dep_init</span><span class="p">(</span><span class="n">nghttp2_priority_spec</span> <span class="o">*</span><span class="n">pri_spec</span><span class="p">,</span> <span class="kt">void</span> <span class="nf">nghttp2_priority_spec_default_init</span><span class="p">(</span><span class="n">nghttp2_priority_spec</span> <span class="o">*</span><span class="n">pri_spec</span><span class="p">);</span>
<span class="kt">int32_t</span> <span class="n">stream_id</span><span class="p">,</span> <span class="kt">int</span> <span class="n">exclusive</span><span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * @function</span>
<span class="cm"> *</span>
<span class="cm"> * Returns nonzero if the |pri_spec| is filled with default values.</span>
<span class="cm"> */</span>
<span class="kt">int</span> <span class="nf">nghttp2_priority_spec_check_default</span><span class="p">(</span><span class="k">const</span> <span class="n">nghttp2_priority_spec</span> <span class="o">*</span><span class="n">pri_spec</span><span class="p">);</span>
<span class="cm">/**</span> <span class="cm">/**</span>
<span class="cm"> * @function</span> <span class="cm"> * @function</span>
@ -2347,12 +2313,17 @@
<span class="cm"> * Submits HEADERS frame and optionally one or more DATA frames.</span> <span class="cm"> * Submits HEADERS frame and optionally one or more DATA frames.</span>
<span class="cm"> *</span> <span class="cm"> *</span>
<span class="cm"> * The |pri_spec| is priority specification of this request. ``NULL``</span> <span class="cm"> * The |pri_spec| is priority specification of this request. ``NULL``</span>
<span class="cm"> * means the default priority (priority group ID becomes its stream ID</span> <span class="cm"> * means the default priority (see</span>
<span class="cm"> * and weight is :macro:`NGHTTP2_DEFAULT_WEIGHT`). To specify the</span> <span class="cm"> * `nghttp2_priority_spec_default_init()`). To specify the priority,</span>
<span class="cm"> * priority, use either `nghttp2_priority_spec_group_init()` or</span> <span class="cm"> * use `nghttp2_priority_spec_init()`. If |pri_spec| is not ``NULL``,</span>
<span class="cm"> * `nghttp2_priority_spec_dep_init()`. If |pri_spec| is not ``NULL``,</span>
<span class="cm"> * this function will copy its data members.</span> <span class="cm"> * this function will copy its data members.</span>
<span class="cm"> *</span> <span class="cm"> *</span>
<span class="cm"> * The `pri_spec-&gt;weight` must be in [:enum:`NGHTTP2_MIN_WEIGHT`,</span>
<span class="cm"> * :enum:`NGHTTP2_MAX_WEIGHT`], inclusive. If `pri_spec-&gt;weight` is</span>
<span class="cm"> * strictly less than :enum:`NGHTTP2_MIN_WEIGHT`, it becomes</span>
<span class="cm"> * :enum:`NGHTTP2_MIN_WEIGHT`. If it is strictly greater than</span>
<span class="cm"> * :enum:`NGHTTP2_MAX_WEIGHT`, it becomes :enum:`NGHTTP2_MAX_WEIGHT`.</span>
<span class="cm"> *</span>
<span class="cm"> * The |nva| is an array of name/value pair :type:`nghttp2_nv` with</span> <span class="cm"> * The |nva| is an array of name/value pair :type:`nghttp2_nv` with</span>
<span class="cm"> * |nvlen| elements. The value is opaque sequence of bytes and</span> <span class="cm"> * |nvlen| elements. The value is opaque sequence of bytes and</span>
<span class="cm"> * therefore can contain NULL byte (0x0). If the application requires</span> <span class="cm"> * therefore can contain NULL byte (0x0). If the application requires</span>
@ -2395,8 +2366,6 @@
<span class="cm"> *</span> <span class="cm"> *</span>
<span class="cm"> * :enum:`NGHTTP2_ERR_NOMEM`</span> <span class="cm"> * :enum:`NGHTTP2_ERR_NOMEM`</span>
<span class="cm"> * Out of memory.</span> <span class="cm"> * Out of memory.</span>
<span class="cm"> * :enum:`NGHTTP2_ERR_INVALID_ARGUMENT`</span>
<span class="cm"> * The |pri_spec-&gt;pri_type| is invalid.</span>
<span class="cm"> */</span> <span class="cm"> */</span>
<span class="kt">int</span> <span class="nf">nghttp2_submit_request</span><span class="p">(</span><span class="n">nghttp2_session</span> <span class="o">*</span><span class="n">session</span><span class="p">,</span> <span class="kt">int</span> <span class="nf">nghttp2_submit_request</span><span class="p">(</span><span class="n">nghttp2_session</span> <span class="o">*</span><span class="n">session</span><span class="p">,</span>
<span class="k">const</span> <span class="n">nghttp2_priority_spec</span> <span class="o">*</span><span class="n">pri_spec</span><span class="p">,</span> <span class="k">const</span> <span class="n">nghttp2_priority_spec</span> <span class="o">*</span><span class="n">pri_spec</span><span class="p">,</span>
@ -2467,12 +2436,17 @@
<span class="cm"> * response, specify stream ID in |stream_id|.</span> <span class="cm"> * response, specify stream ID in |stream_id|.</span>
<span class="cm"> *</span> <span class="cm"> *</span>
<span class="cm"> * The |pri_spec| is priority specification of this request. ``NULL``</span> <span class="cm"> * The |pri_spec| is priority specification of this request. ``NULL``</span>
<span class="cm"> * means the default priority (priority group ID becomes its stream ID</span> <span class="cm"> * means the default priority (see</span>
<span class="cm"> * and weight is :macro:`NGHTTP2_DEFAULT_WEIGHT`). To specify the</span> <span class="cm"> * `nghttp2_priority_spec_default_init()`). To specify the priority,</span>
<span class="cm"> * priority, use either `nghttp2_priority_spec_group_init()` or</span> <span class="cm"> * use `nghttp2_priority_spec_init()`. If |pri_spec| is not ``NULL``,</span>
<span class="cm"> * `nghttp2_priority_spec_dep_init()`. If |pri_spec| is not ``NULL``,</span>
<span class="cm"> * this function will copy its data members.</span> <span class="cm"> * this function will copy its data members.</span>
<span class="cm"> *</span> <span class="cm"> *</span>
<span class="cm"> * The `pri_spec-&gt;weight` must be in [:enum:`NGHTTP2_MIN_WEIGHT`,</span>
<span class="cm"> * :enum:`NGHTTP2_MAX_WEIGHT`], inclusive. If `pri_spec-&gt;weight` is</span>
<span class="cm"> * strictly less than :enum:`NGHTTP2_MIN_WEIGHT`, it becomes</span>
<span class="cm"> * :enum:`NGHTTP2_MIN_WEIGHT`. If it is strictly greater than</span>
<span class="cm"> * :enum:`NGHTTP2_MAX_WEIGHT`, it becomes :enum:`NGHTTP2_MAX_WEIGHT`.</span>
<span class="cm"> *</span>
<span class="cm"> * The |nva| is an array of name/value pair :type:`nghttp2_nv` with</span> <span class="cm"> * The |nva| is an array of name/value pair :type:`nghttp2_nv` with</span>
<span class="cm"> * |nvlen| elements. The value is opaque sequence of bytes and</span> <span class="cm"> * |nvlen| elements. The value is opaque sequence of bytes and</span>
<span class="cm"> * therefore can contain NULL byte (0x0). If the application requires</span> <span class="cm"> * therefore can contain NULL byte (0x0). If the application requires</span>
@ -2497,8 +2471,6 @@
<span class="cm"> *</span> <span class="cm"> *</span>
<span class="cm"> * :enum:`NGHTTP2_ERR_NOMEM`</span> <span class="cm"> * :enum:`NGHTTP2_ERR_NOMEM`</span>
<span class="cm"> * Out of memory.</span> <span class="cm"> * Out of memory.</span>
<span class="cm"> * :enum:`NGHTTP2_ERR_INVALID_ARGUMENT`</span>
<span class="cm"> * The |pri_spec-&gt;pri_type| is invalid.</span>
<span class="cm"> */</span> <span class="cm"> */</span>
<span class="kt">int</span> <span class="nf">nghttp2_submit_headers</span><span class="p">(</span><span class="n">nghttp2_session</span> <span class="o">*</span><span class="n">session</span><span class="p">,</span> <span class="kt">uint8_t</span> <span class="n">flags</span><span class="p">,</span> <span class="kt">int</span> <span class="nf">nghttp2_submit_headers</span><span class="p">(</span><span class="n">nghttp2_session</span> <span class="o">*</span><span class="n">session</span><span class="p">,</span> <span class="kt">uint8_t</span> <span class="n">flags</span><span class="p">,</span>
<span class="kt">int32_t</span> <span class="n">stream_id</span><span class="p">,</span> <span class="kt">int32_t</span> <span class="n">stream_id</span><span class="p">,</span>
@ -2540,10 +2512,15 @@
<span class="cm"> * :enum:`NGHTTP2_FLAG_NONE`.</span> <span class="cm"> * :enum:`NGHTTP2_FLAG_NONE`.</span>
<span class="cm"> *</span> <span class="cm"> *</span>
<span class="cm"> * The |pri_spec| is priority specification of this request. ``NULL``</span> <span class="cm"> * The |pri_spec| is priority specification of this request. ``NULL``</span>
<span class="cm"> * is not allowed for this function. To specify the priority, use</span> <span class="cm"> * is not allowed for this function. To specify the priority, use</span>
<span class="cm"> * either `nghttp2_priority_spec_group_init()` or</span> <span class="cm"> * `nghttp2_priority_spec_init()`. This function will copy its data</span>
<span class="cm"> * `nghttp2_priority_spec_dep_init()`. This function will copy its</span> <span class="cm"> * members.</span>
<span class="cm"> * data members.</span> <span class="cm"> *</span>
<span class="cm"> * The `pri_spec-&gt;weight` must be in [:enum:`NGHTTP2_MIN_WEIGHT`,</span>
<span class="cm"> * :enum:`NGHTTP2_MAX_WEIGHT`], inclusive. If `pri_spec-&gt;weight` is</span>
<span class="cm"> * strictly less than :enum:`NGHTTP2_MIN_WEIGHT`, it becomes</span>
<span class="cm"> * :enum:`NGHTTP2_MIN_WEIGHT`. If it is strictly greater than</span>
<span class="cm"> * :enum:`NGHTTP2_MAX_WEIGHT`, it becomes :enum:`NGHTTP2_MAX_WEIGHT`.</span>
<span class="cm"> *</span> <span class="cm"> *</span>
<span class="cm"> * This function returns 0 if it succeeds, or one of the following</span> <span class="cm"> * This function returns 0 if it succeeds, or one of the following</span>
<span class="cm"> * negative error codes:</span> <span class="cm"> * negative error codes:</span>
@ -2551,8 +2528,7 @@
<span class="cm"> * :enum:`NGHTTP2_ERR_NOMEM`</span> <span class="cm"> * :enum:`NGHTTP2_ERR_NOMEM`</span>
<span class="cm"> * Out of memory.</span> <span class="cm"> * Out of memory.</span>
<span class="cm"> * :enum:`NGHTTP2_ERR_INVALID_ARGUMENT`</span> <span class="cm"> * :enum:`NGHTTP2_ERR_INVALID_ARGUMENT`</span>
<span class="cm"> * The |pri_spec| is NULL; or the |pri_spec-&gt;pri_type| is invalid;</span> <span class="cm"> * The |pri_spec| is NULL; or trying to depend on itself.</span>
<span class="cm"> * or trying to depend on itself.</span>
<span class="cm"> */</span> <span class="cm"> */</span>
<span class="kt">int</span> <span class="nf">nghttp2_submit_priority</span><span class="p">(</span><span class="n">nghttp2_session</span> <span class="o">*</span><span class="n">session</span><span class="p">,</span> <span class="kt">uint8_t</span> <span class="n">flags</span><span class="p">,</span> <span class="kt">int</span> <span class="nf">nghttp2_submit_priority</span><span class="p">(</span><span class="n">nghttp2_session</span> <span class="o">*</span><span class="n">session</span><span class="p">,</span> <span class="kt">uint8_t</span> <span class="n">flags</span><span class="p">,</span>
<span class="kt">int32_t</span> <span class="n">stream_id</span><span class="p">,</span> <span class="kt">int32_t</span> <span class="n">stream_id</span><span class="p">,</span>

Binary file not shown.

View File

@ -163,8 +163,8 @@
version 2.</p> version 2.</p>
<div class="section" id="development-status"> <div class="section" id="development-status">
<h2>Development Status<a class="headerlink" href="#development-status" title="Permalink to this headline"></a></h2> <h2>Development Status<a class="headerlink" href="#development-status" title="Permalink to this headline"></a></h2>
<p>We started to implement h2-11 <p>We started to implement h2-12
(<a class="reference external" href="http://tools.ietf.org/html/draft-ietf-httpbis-http2-11">http://tools.ietf.org/html/draft-ietf-httpbis-http2-11</a>) and the (<a class="reference external" href="http://tools.ietf.org/html/draft-ietf-httpbis-http2-12">http://tools.ietf.org/html/draft-ietf-httpbis-http2-12</a>) and the
header compression header compression
(<a class="reference external" href="http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-07">http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-07</a>).</p> (<a class="reference external" href="http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-07">http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-07</a>).</p>
<p>The nghttp2 code base was forked from spdylay project.</p> <p>The nghttp2 code base was forked from spdylay project.</p>
@ -175,17 +175,17 @@ header compression
</colgroup> </colgroup>
<thead valign="bottom"> <thead valign="bottom">
<tr class="row-odd"><th class="head">Features</th> <tr class="row-odd"><th class="head">Features</th>
<th class="head">h2-11</th> <th class="head">h2-12</th>
</tr> </tr>
</thead> </thead>
<tbody valign="top"> <tbody valign="top">
<tr class="row-even"><td>HPACK-draft-07</td> <tr class="row-even"><td>Dependency based priority</td>
<td>Done</td> <td>Done</td>
</tr> </tr>
<tr class="row-odd"><td>Dependency based priority</td> <tr class="row-odd"><td>BLOCKED frame</td>
<td>Done</td> <td>Done</td>
</tr> </tr>
<tr class="row-even"><td>ALTSVC frame</td> <tr class="row-even"><td>COMPRESSED DATA</td>
<td>Done</td> <td>Done</td>
</tr> </tr>
</tbody> </tbody>
@ -311,12 +311,12 @@ with prior knowledge, HTTP Upgrade and NPN/ALPN TLS extension.</p>
output from <tt class="docutils literal"><span class="pre">nghttp</span></tt> client:</p> output from <tt class="docutils literal"><span class="pre">nghttp</span></tt> client:</p>
<div class="highlight-c"><div class="highlight"><pre>$ src/nghttp -nv https://localhost:8443 <div class="highlight-c"><div class="highlight"><pre>$ src/nghttp -nv https://localhost:8443
[ 0.004][NPN] server offers: [ 0.004][NPN] server offers:
* h2-11 * h2-12
* spdy/3.1 * spdy/3.1
* spdy/3 * spdy/3
* spdy/2 * spdy/2
* http/1.1 * http/1.1
The negotiated protocol: h2-11 The negotiated protocol: h2-12
[ 0.006] send SETTINGS frame &lt;length=10, flags=0x00, stream_id=0&gt; [ 0.006] send SETTINGS frame &lt;length=10, flags=0x00, stream_id=0&gt;
(niv=2) (niv=2)
[SETTINGS_MAX_CONCURRENT_STREAMS(3):100] [SETTINGS_MAX_CONCURRENT_STREAMS(3):100]
@ -481,7 +481,7 @@ IPv6: listen on port 8080
<div class="section" id="nghttpx-proxy"> <div class="section" id="nghttpx-proxy">
<h3>nghttpx - proxy<a class="headerlink" href="#nghttpx-proxy" title="Permalink to this headline"></a></h3> <h3>nghttpx - proxy<a class="headerlink" href="#nghttpx-proxy" title="Permalink to this headline"></a></h3>
<p><tt class="docutils literal"><span class="pre">nghttpx</span></tt> is a multi-threaded reverse proxy for <p><tt class="docutils literal"><span class="pre">nghttpx</span></tt> is a multi-threaded reverse proxy for
<tt class="docutils literal"><span class="pre">h2-11</span></tt>, SPDY and HTTP/1.1. It has several operation modes:</p> <tt class="docutils literal"><span class="pre">h2-12</span></tt>, SPDY and HTTP/1.1. It has several operation modes:</p>
<table border="1" class="docutils"> <table border="1" class="docutils">
<colgroup> <colgroup>
<col width="25%" /> <col width="25%" />
@ -525,7 +525,7 @@ IPv6: listen on port 8080
</tbody> </tbody>
</table> </table>
<p>The interesting mode at the moment is the default mode. It works like <p>The interesting mode at the moment is the default mode. It works like
a reverse proxy and listens for <tt class="docutils literal"><span class="pre">h2-11</span></tt>, SPDY and HTTP/1.1 and can a reverse proxy and listens for <tt class="docutils literal"><span class="pre">h2-12</span></tt>, SPDY and HTTP/1.1 and can
be deployed SSL/TLS terminator for existing web server.</p> be deployed SSL/TLS terminator for existing web server.</p>
<p>The default mode, <tt class="docutils literal"><span class="pre">--http2-proxy</span></tt> and <tt class="docutils literal"><span class="pre">--http2-bridge</span></tt> modes use <p>The default mode, <tt class="docutils literal"><span class="pre">--http2-proxy</span></tt> and <tt class="docutils literal"><span class="pre">--http2-bridge</span></tt> modes use
SSL/TLS in the frontend connection by default. To disable SSL/TLS, SSL/TLS in the frontend connection by default. To disable SSL/TLS,

File diff suppressed because one or more lines are too long