gnunet-android

GNUnet for Android
Log | Files | Refs | README

easy.h (4012B)


      1 #ifndef CURLINC_EASY_H
      2 #define CURLINC_EASY_H
      3 /***************************************************************************
      4  *                                  _   _ ____  _
      5  *  Project                     ___| | | |  _ \| |
      6  *                             / __| | | | |_) | |
      7  *                            | (__| |_| |  _ <| |___
      8  *                             \___|\___/|_| \_\_____|
      9  *
     10  * Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
     11  *
     12  * This software is licensed as described in the file COPYING, which
     13  * you should have received as part of this distribution. The terms
     14  * are also available at https://curl.se/docs/copyright.html.
     15  *
     16  * You may opt to use, copy, modify, merge, publish, distribute and/or sell
     17  * copies of the Software, and permit persons to whom the Software is
     18  * furnished to do so, under the terms of the COPYING file.
     19  *
     20  * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
     21  * KIND, either express or implied.
     22  *
     23  * SPDX-License-Identifier: curl
     24  *
     25  ***************************************************************************/
     26 #ifdef  __cplusplus
     27 extern "C" {
     28 #endif
     29 
     30 /* Flag bits in the curl_blob struct: */
     31 #define CURL_BLOB_COPY   1 /* tell libcurl to copy the data */
     32 #define CURL_BLOB_NOCOPY 0 /* tell libcurl to NOT copy the data */
     33 
     34 struct curl_blob {
     35   void *data;
     36   size_t len;
     37   unsigned int flags; /* bit 0 is defined, the rest are reserved and should be
     38                          left zeroes */
     39 };
     40 
     41 CURL_EXTERN CURL *curl_easy_init(void);
     42 CURL_EXTERN CURLcode curl_easy_setopt(CURL *curl, CURLoption option, ...);
     43 CURL_EXTERN CURLcode curl_easy_perform(CURL *curl);
     44 CURL_EXTERN void curl_easy_cleanup(CURL *curl);
     45 
     46 /*
     47  * NAME curl_easy_getinfo()
     48  *
     49  * DESCRIPTION
     50  *
     51  * Request internal information from the curl session with this function.
     52  * The third argument MUST be pointing to the specific type of the used option
     53  * which is documented in each manpage of the option. The data pointed to
     54  * will be filled in accordingly and can be relied upon only if the function
     55  * returns CURLE_OK. This function is intended to get used *AFTER* a performed
     56  * transfer, all results from this function are undefined until the transfer
     57  * is completed.
     58  */
     59 CURL_EXTERN CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ...);
     60 
     61 
     62 /*
     63  * NAME curl_easy_duphandle()
     64  *
     65  * DESCRIPTION
     66  *
     67  * Creates a new curl session handle with the same options set for the handle
     68  * passed in. Duplicating a handle could only be a matter of cloning data and
     69  * options, internal state info and things like persistent connections cannot
     70  * be transferred. It is useful in multithreaded applications when you can run
     71  * curl_easy_duphandle() for each new thread to avoid a series of identical
     72  * curl_easy_setopt() invokes in every thread.
     73  */
     74 CURL_EXTERN CURL *curl_easy_duphandle(CURL *curl);
     75 
     76 /*
     77  * NAME curl_easy_reset()
     78  *
     79  * DESCRIPTION
     80  *
     81  * Re-initializes a curl handle to the default values. This puts back the
     82  * handle to the same state as it was in when it was just created.
     83  *
     84  * It does keep: live connections, the Session ID cache, the DNS cache and the
     85  * cookies.
     86  */
     87 CURL_EXTERN void curl_easy_reset(CURL *curl);
     88 
     89 /*
     90  * NAME curl_easy_recv()
     91  *
     92  * DESCRIPTION
     93  *
     94  * Receives data from the connected socket. Use after successful
     95  * curl_easy_perform() with CURLOPT_CONNECT_ONLY option.
     96  */
     97 CURL_EXTERN CURLcode curl_easy_recv(CURL *curl, void *buffer, size_t buflen,
     98                                     size_t *n);
     99 
    100 /*
    101  * NAME curl_easy_send()
    102  *
    103  * DESCRIPTION
    104  *
    105  * Sends data over the connected socket. Use after successful
    106  * curl_easy_perform() with CURLOPT_CONNECT_ONLY option.
    107  */
    108 CURL_EXTERN CURLcode curl_easy_send(CURL *curl, const void *buffer,
    109                                     size_t buflen, size_t *n);
    110 
    111 
    112 /*
    113  * NAME curl_easy_upkeep()
    114  *
    115  * DESCRIPTION
    116  *
    117  * Performs connection upkeep for the given session handle.
    118  */
    119 CURL_EXTERN CURLcode curl_easy_upkeep(CURL *curl);
    120 
    121 #ifdef  __cplusplus
    122 } /* end of extern "C" */
    123 #endif
    124 
    125 #endif