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).