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