xref: /aosp_15_r20/external/google-breakpad/src/third_party/curl/easy.h (revision 9712c20fc9bbfbac4935993a2ca0b3958c5adad2)
1*9712c20fSFrederick Mayle #ifndef __CURL_EASY_H
2*9712c20fSFrederick Mayle #define __CURL_EASY_H
3*9712c20fSFrederick Mayle /***************************************************************************
4*9712c20fSFrederick Mayle  *                                  _   _ ____  _
5*9712c20fSFrederick Mayle  *  Project                     ___| | | |  _ \| |
6*9712c20fSFrederick Mayle  *                             / __| | | | |_) | |
7*9712c20fSFrederick Mayle  *                            | (__| |_| |  _ <| |___
8*9712c20fSFrederick Mayle  *                             \___|\___/|_| \_\_____|
9*9712c20fSFrederick Mayle  *
10*9712c20fSFrederick Mayle  * Copyright (C) 1998 - 2008, Daniel Stenberg, <[email protected]>, et al.
11*9712c20fSFrederick Mayle  *
12*9712c20fSFrederick Mayle  * This software is licensed as described in the file COPYING, which
13*9712c20fSFrederick Mayle  * you should have received as part of this distribution. The terms
14*9712c20fSFrederick Mayle  * are also available at http://curl.haxx.se/docs/copyright.html.
15*9712c20fSFrederick Mayle  *
16*9712c20fSFrederick Mayle  * You may opt to use, copy, modify, merge, publish, distribute and/or sell
17*9712c20fSFrederick Mayle  * copies of the Software, and permit persons to whom the Software is
18*9712c20fSFrederick Mayle  * furnished to do so, under the terms of the COPYING file.
19*9712c20fSFrederick Mayle  *
20*9712c20fSFrederick Mayle  * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
21*9712c20fSFrederick Mayle  * KIND, either express or implied.
22*9712c20fSFrederick Mayle  *
23*9712c20fSFrederick Mayle  * $Id: easy.h,v 1.14 2008-05-12 21:43:28 bagder Exp $
24*9712c20fSFrederick Mayle  ***************************************************************************/
25*9712c20fSFrederick Mayle #ifdef  __cplusplus
26*9712c20fSFrederick Mayle extern "C" {
27*9712c20fSFrederick Mayle #endif
28*9712c20fSFrederick Mayle 
29*9712c20fSFrederick Mayle CURL_EXTERN CURL *curl_easy_init(void);
30*9712c20fSFrederick Mayle CURL_EXTERN CURLcode curl_easy_setopt(CURL *curl, CURLoption option, ...);
31*9712c20fSFrederick Mayle CURL_EXTERN CURLcode curl_easy_perform(CURL *curl);
32*9712c20fSFrederick Mayle CURL_EXTERN void curl_easy_cleanup(CURL *curl);
33*9712c20fSFrederick Mayle 
34*9712c20fSFrederick Mayle /*
35*9712c20fSFrederick Mayle  * NAME curl_easy_getinfo()
36*9712c20fSFrederick Mayle  *
37*9712c20fSFrederick Mayle  * DESCRIPTION
38*9712c20fSFrederick Mayle  *
39*9712c20fSFrederick Mayle  * Request internal information from the curl session with this function.  The
40*9712c20fSFrederick Mayle  * third argument MUST be a pointer to a long, a pointer to a char * or a
41*9712c20fSFrederick Mayle  * pointer to a double (as the documentation describes elsewhere).  The data
42*9712c20fSFrederick Mayle  * pointed to will be filled in accordingly and can be relied upon only if the
43*9712c20fSFrederick Mayle  * function returns CURLE_OK.  This function is intended to get used *AFTER* a
44*9712c20fSFrederick Mayle  * performed transfer, all results from this function are undefined until the
45*9712c20fSFrederick Mayle  * transfer is completed.
46*9712c20fSFrederick Mayle  */
47*9712c20fSFrederick Mayle CURL_EXTERN CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ...);
48*9712c20fSFrederick Mayle 
49*9712c20fSFrederick Mayle 
50*9712c20fSFrederick Mayle /*
51*9712c20fSFrederick Mayle  * NAME curl_easy_duphandle()
52*9712c20fSFrederick Mayle  *
53*9712c20fSFrederick Mayle  * DESCRIPTION
54*9712c20fSFrederick Mayle  *
55*9712c20fSFrederick Mayle  * Creates a new curl session handle with the same options set for the handle
56*9712c20fSFrederick Mayle  * passed in. Duplicating a handle could only be a matter of cloning data and
57*9712c20fSFrederick Mayle  * options, internal state info and things like persistant connections cannot
58*9712c20fSFrederick Mayle  * be transfered. It is useful in multithreaded applications when you can run
59*9712c20fSFrederick Mayle  * curl_easy_duphandle() for each new thread to avoid a series of identical
60*9712c20fSFrederick Mayle  * curl_easy_setopt() invokes in every thread.
61*9712c20fSFrederick Mayle  */
62*9712c20fSFrederick Mayle CURL_EXTERN CURL* curl_easy_duphandle(CURL *curl);
63*9712c20fSFrederick Mayle 
64*9712c20fSFrederick Mayle /*
65*9712c20fSFrederick Mayle  * NAME curl_easy_reset()
66*9712c20fSFrederick Mayle  *
67*9712c20fSFrederick Mayle  * DESCRIPTION
68*9712c20fSFrederick Mayle  *
69*9712c20fSFrederick Mayle  * Re-initializes a CURL handle to the default values. This puts back the
70*9712c20fSFrederick Mayle  * handle to the same state as it was in when it was just created.
71*9712c20fSFrederick Mayle  *
72*9712c20fSFrederick Mayle  * It does keep: live connections, the Session ID cache, the DNS cache and the
73*9712c20fSFrederick Mayle  * cookies.
74*9712c20fSFrederick Mayle  */
75*9712c20fSFrederick Mayle CURL_EXTERN void curl_easy_reset(CURL *curl);
76*9712c20fSFrederick Mayle 
77*9712c20fSFrederick Mayle /*
78*9712c20fSFrederick Mayle  * NAME curl_easy_recv()
79*9712c20fSFrederick Mayle  *
80*9712c20fSFrederick Mayle  * DESCRIPTION
81*9712c20fSFrederick Mayle  *
82*9712c20fSFrederick Mayle  * Receives data from the connected socket. Use after successful
83*9712c20fSFrederick Mayle  * curl_easy_perform() with CURLOPT_CONNECT_ONLY option.
84*9712c20fSFrederick Mayle  */
85*9712c20fSFrederick Mayle CURL_EXTERN CURLcode curl_easy_recv(CURL *curl, void *buffer, size_t buflen,
86*9712c20fSFrederick Mayle                                     size_t *n);
87*9712c20fSFrederick Mayle 
88*9712c20fSFrederick Mayle /*
89*9712c20fSFrederick Mayle  * NAME curl_easy_send()
90*9712c20fSFrederick Mayle  *
91*9712c20fSFrederick Mayle  * DESCRIPTION
92*9712c20fSFrederick Mayle  *
93*9712c20fSFrederick Mayle  * Sends data over the connected socket. Use after successful
94*9712c20fSFrederick Mayle  * curl_easy_perform() with CURLOPT_CONNECT_ONLY option.
95*9712c20fSFrederick Mayle  */
96*9712c20fSFrederick Mayle CURL_EXTERN CURLcode curl_easy_send(CURL *curl, const void *buffer,
97*9712c20fSFrederick Mayle                                     size_t buflen, size_t *n);
98*9712c20fSFrederick Mayle 
99*9712c20fSFrederick Mayle #ifdef  __cplusplus
100*9712c20fSFrederick Mayle }
101*9712c20fSFrederick Mayle #endif
102*9712c20fSFrederick Mayle 
103*9712c20fSFrederick Mayle #endif
104