Lines Matching refs:to
18 libcurl-multi - how to use the multi interface
22 This is an overview on how to use the libcurl multi interface in your C
25 tutorial to programming with libcurl and the libcurl-easy(3) man page
36 and when to ask libcurl to get/send data.
41 3. Enable the application to wait for action on its own file descriptors and
44 4. Enable event-based handling and scaling transfers up to and beyond
50 curl_multi_init(3). This handle is then used as input to all further
60 description of both versions to fully understand how they work and
65 you should add the easy handle to the multi handle with
66 curl_multi_add_handle(3). You can add more easy handles to a multi
75 Adding the easy handle to the multi handle does not start the transfer.
76 Remember that one of the main ideas with this interface is to let your
79 available to transfer. It uses the callbacks and everything else you have
81 transfers in the multi stack that are ready to transfer anything. It may be
82 all, it may be none. When there is nothing more to do for now, it returns back
83 to the calling application.
85 Your application extracts info from libcurl about when it would like to get
86 invoked to transfer data or do other work. The most convenient way is to use
88 libcurl again. The older API to accomplish the same thing is
89 curl_multi_fdset(3) that extracts *fd_sets* from libcurl to use in
90 select() or poll() calls in order to get to know when the transfers in the
91 multi stack might need attention. Both these APIs allow for your program to
101 To get information about completed transfers, to figure out success or not and
105 receive there includes an easy handle pointer which you may use to identify
108 When a single transfer is completed, the easy handle is still left added to
109 the multi stack. You need to first remove the easy handle with
111 curl_easy_cleanup(3), or possibly set new options to it and add it again
112 with curl_multi_add_handle(3) to start another transfer.
117 to clean them up properly.
119 If you want to reuse an easy handle that was added to the multi handle for
125 curl_multi_socket_action(3) function offers a way for applications to
126 not only avoid being forced to use select(), but it also offers a much more
133 When using this API, you add easy handles to the multi handle just as with the
136 to curl_multi_setopt(3). They are two callback functions that libcurl
137 calls with information about what sockets to wait for, and for what activity,
141 The multi_socket API is designed to inform your application about which
143 on those sockets your application is expected to wait for.
145 Your application must make sure to receive all sockets informed about in the
151 The CURLMOPT_TIMERFUNCTION(3) callback is called to set a timeout. When
153 curl_multi_socket_action(3) function saying it was due to a timeout.
157 "subscribes" on socket changes. This allows applications and libcurl to much
164 then continue to call curl_multi_socket_action(3) accordingly when you
165 get activity on the sockets you have been asked to wait on, or if the timeout
168 You can poll curl_multi_info_read(3) to see if any transfer has
174 multi interface. While we certainly want and intend for these to get fixed in