quickjs-tart

quickjs-based runtime for wallet-core logic
Log | Files | Refs | README | LICENSE

CURLOPT_STREAM_DEPENDS.md (1915B)


      1 ---
      2 c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
      3 SPDX-License-Identifier: curl
      4 Title: CURLOPT_STREAM_DEPENDS
      5 Section: 3
      6 Source: libcurl
      7 See-also:
      8   - CURLMOPT_PIPELINING (3)
      9   - CURLOPT_HTTP_VERSION (3)
     10   - CURLOPT_STREAM_DEPENDS_E (3)
     11   - CURLOPT_STREAM_WEIGHT (3)
     12 Protocol:
     13   - HTTP
     14 Added-in: 7.46.0
     15 ---
     16 
     17 # NAME
     18 
     19 CURLOPT_STREAM_DEPENDS - stream this transfer depends on
     20 
     21 # SYNOPSIS
     22 
     23 ~~~c
     24 #include <curl/curl.h>
     25 
     26 CURLcode curl_easy_setopt(CURL *handle, CURLOPT_STREAM_DEPENDS,
     27                           CURL *dephandle);
     28 ~~~
     29 
     30 # DESCRIPTION
     31 
     32 Pass a CURL pointer in *dephandle* to identify the stream within the same
     33 connection that this stream is depending upon. This option clears the
     34 exclusive bit and is mutually exclusive to the CURLOPT_STREAM_DEPENDS_E(3)
     35 option.
     36 
     37 The spec says "Including a dependency expresses a preference to allocate
     38 resources to the identified stream rather than to the dependent stream."
     39 
     40 This option can be set during transfer.
     41 
     42 *dephandle* must not be the same as *handle*, that makes this function return
     43 an error. It must be another easy handle, and it also needs to be a handle of
     44 a transfer that is about to be sent over the same HTTP/2 connection for this
     45 option to have an actual effect.
     46 
     47 # DEFAULT
     48 
     49 NULL
     50 
     51 # %PROTOCOLS%
     52 
     53 # EXAMPLE
     54 
     55 ~~~c
     56 int main(void)
     57 {
     58   CURL *curl = curl_easy_init();
     59   CURL *curl2 = curl_easy_init(); /* a second handle */
     60   if(curl) {
     61     curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/one");
     62 
     63     /* the second depends on the first */
     64     curl_easy_setopt(curl2, CURLOPT_URL, "https://example.com/two");
     65     curl_easy_setopt(curl2, CURLOPT_STREAM_DEPENDS, curl);
     66 
     67     /* then add both to a multi handle and transfer them */
     68   }
     69 }
     70 ~~~
     71 
     72 # %AVAILABILITY%
     73 
     74 # RETURN VALUE
     75 
     76 curl_easy_setopt(3) returns a CURLcode indicating success or error.
     77 
     78 CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
     79 libcurl-errors(3).