jpayne@69: #ifndef CURLINC_OPTIONS_H jpayne@69: #define CURLINC_OPTIONS_H jpayne@69: /*************************************************************************** jpayne@69: * _ _ ____ _ jpayne@69: * Project ___| | | | _ \| | jpayne@69: * / __| | | | |_) | | jpayne@69: * | (__| |_| | _ <| |___ jpayne@69: * \___|\___/|_| \_\_____| jpayne@69: * jpayne@69: * Copyright (C) 2018 - 2022, Daniel Stenberg, , et al. jpayne@69: * jpayne@69: * This software is licensed as described in the file COPYING, which jpayne@69: * you should have received as part of this distribution. The terms jpayne@69: * are also available at https://curl.se/docs/copyright.html. jpayne@69: * jpayne@69: * You may opt to use, copy, modify, merge, publish, distribute and/or sell jpayne@69: * copies of the Software, and permit persons to whom the Software is jpayne@69: * furnished to do so, under the terms of the COPYING file. jpayne@69: * jpayne@69: * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY jpayne@69: * KIND, either express or implied. jpayne@69: * jpayne@69: * SPDX-License-Identifier: curl jpayne@69: * jpayne@69: ***************************************************************************/ jpayne@69: jpayne@69: #ifdef __cplusplus jpayne@69: extern "C" { jpayne@69: #endif jpayne@69: jpayne@69: typedef enum { jpayne@69: CURLOT_LONG, /* long (a range of values) */ jpayne@69: CURLOT_VALUES, /* (a defined set or bitmask) */ jpayne@69: CURLOT_OFF_T, /* curl_off_t (a range of values) */ jpayne@69: CURLOT_OBJECT, /* pointer (void *) */ jpayne@69: CURLOT_STRING, /* (char * to null-terminated buffer) */ jpayne@69: CURLOT_SLIST, /* (struct curl_slist *) */ jpayne@69: CURLOT_CBPTR, /* (void * passed as-is to a callback) */ jpayne@69: CURLOT_BLOB, /* blob (struct curl_blob *) */ jpayne@69: CURLOT_FUNCTION /* function pointer */ jpayne@69: } curl_easytype; jpayne@69: jpayne@69: /* Flag bits */ jpayne@69: jpayne@69: /* "alias" means it is provided for old programs to remain functional, jpayne@69: we prefer another name */ jpayne@69: #define CURLOT_FLAG_ALIAS (1<<0) jpayne@69: jpayne@69: /* The CURLOPTTYPE_* id ranges can still be used to figure out what type/size jpayne@69: to use for curl_easy_setopt() for the given id */ jpayne@69: struct curl_easyoption { jpayne@69: const char *name; jpayne@69: CURLoption id; jpayne@69: curl_easytype type; jpayne@69: unsigned int flags; jpayne@69: }; jpayne@69: jpayne@69: CURL_EXTERN const struct curl_easyoption * jpayne@69: curl_easy_option_by_name(const char *name); jpayne@69: jpayne@69: CURL_EXTERN const struct curl_easyoption * jpayne@69: curl_easy_option_by_id(CURLoption id); jpayne@69: jpayne@69: CURL_EXTERN const struct curl_easyoption * jpayne@69: curl_easy_option_next(const struct curl_easyoption *prev); jpayne@69: jpayne@69: #ifdef __cplusplus jpayne@69: } /* end of extern "C" */ jpayne@69: #endif jpayne@69: #endif /* CURLINC_OPTIONS_H */