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