--- /dev/null
+/*
+ +--------------------------------------------------------------------+
+ | PECL :: http |
+ +--------------------------------------------------------------------+
+ | Redistribution and use in source and binary forms, with or without |
+ | modification, are permitted provided that the conditions mentioned |
+ | in the accompanying LICENSE file are met. |
+ +--------------------------------------------------------------------+
+ | Copyright (c) 2004-2014, Michael Wallner <mike@php.net> |
+ +--------------------------------------------------------------------+
+*/
+
+#ifndef PHP_HTTP_OPTIONS_H
+#define PHP_HTTP_OPTIONS_H
+
+typedef struct php_http_option php_http_option_t;
+typedef struct php_http_options php_http_options_t;
+
+typedef ZEND_RESULT_CODE (*php_http_option_set_callback_t)(php_http_option_t *opt, zval *val, void *userdata);
+typedef zval *(*php_http_option_get_callback_t)(php_http_option_t *opt, HashTable *options, void *userdata);
+
+struct php_http_options {
+ HashTable options;
+
+ php_http_option_get_callback_t getter;
+ php_http_option_set_callback_t setter;
+
+ unsigned persistent:1;
+};
+
+struct php_http_option {
+ php_http_options_t suboptions;
+
+ zend_string *name;
+ ulong option;
+ zend_uchar type;
+ unsigned flags;
+ zval defval;
+
+ php_http_option_set_callback_t setter;
+ unsigned persistent:1;
+};
+
+PHP_HTTP_API php_http_options_t *php_http_options_init(php_http_options_t *registry, zend_bool persistent);
+PHP_HTTP_API ZEND_RESULT_CODE php_http_options_apply(php_http_options_t *registry, HashTable *options, void *userdata);
+PHP_HTTP_API void php_http_options_dtor(php_http_options_t *registry);
+PHP_HTTP_API void php_http_options_free(php_http_options_t **registry);
+
+PHP_HTTP_API php_http_option_t *php_http_option_register(php_http_options_t *registry, const char *name_str, size_t name_len, ulong option, zend_uchar type);
+PHP_HTTP_API zval *php_http_option_get(php_http_option_t *opt, HashTable *options, void *userdata);
+
+#endif /* PHP_HTTP_OPTIONS_H */
+
+/*
+ * Local variables:
+ * tab-width: 4
+ * c-basic-offset: 4
+ * End:
+ * vim600: noet sw=4 ts=4 fdm=marker
+ * vim<600: noet sw=4 ts=4
+ */