/home/tititou36/Dev/svn_httpd_apreq-2/include/apreq.h

The public APEQ functions using variable arguments are declared with APEQ_DECLARE_NONSTD(), as they must follow the C language calling convention.

See also
APEQ_DECLARE
APEQ_DECLARE_DATA
Remarks
Both the declaration and implementations must use the same macro.
/*
** Licensed to the Apache Software Foundation (ASF) under one or more
** contributor license agreements. See the NOTICE file distributed with
** this work for additional information regarding copyright ownership.
** The ASF licenses this file to You under the Apache License, Version 2.0
** (the "License"); you may not use this file except in compliance with
** the License. You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
#ifndef APREQ_H
#define APREQ_H
#ifdef APREQ_DEBUG
#include <assert.h>
#endif
#include "apr_tables.h"
#include <stddef.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifndef WIN32
#define APREQ_DECLARE(d) APR_DECLARE(d)
#define APREQ_DECLARE_NONSTD(d) APR_DECLARE_NONSTD(d)
#define APREQ_DECLARE_DATA
#elif defined (APREQ_DECLARE_STATIC)
#define APREQ_DECLARE(type) type __stdcall
#define APREQ_DECLARE_NONSTD(type) type
#define APREQ_DECLARE_DATA
#elif defined (APREQ_DECLARE_EXPORT)
#define APREQ_DECLARE(type) __declspec(dllexport) type __stdcall
#define APREQ_DECLARE_NONSTD(type) __declspec(dllexport) type
#define APREQ_DECLARE_DATA __declspec(dllexport)
#else
#define APREQ_DECLARE(type) __declspec(dllimport) type __stdcall
#define APREQ_DECLARE_NONSTD(type) __declspec(dllimport) type
#define APREQ_DECLARE_DATA __declspec(dllimport)
#endif
#define APREQ_DEFAULT_READ_BLOCK_SIZE (64 * 1024)
#define APREQ_DEFAULT_READ_LIMIT (64 * 1024 * 1024)
#define APREQ_DEFAULT_BRIGADE_LIMIT (256 * 1024)
#define APREQ_DEFAULT_NELTS 8
#define APREQ_FLAGS_OFF(f, name) ((f) &= ~(name##_MASK << name##_BIT))
#define APREQ_FLAGS_ON(f, name) ((f) |= (name##_MASK << name##_BIT))
#define APREQ_FLAGS_GET(f, name) (((f) >> name##_BIT) & name##_MASK)
#define APREQ_FLAGS_SET(f, name, value) \
((f) = (((f) & ~(name##_MASK << name##_BIT)) \
| ((name##_MASK & (value)) << name##_BIT)))
#define APREQ_CHARSET_BIT 0
#define APREQ_CHARSET_MASK 255
#define APREQ_TAINTED_BIT 8
#define APREQ_TAINTED_MASK 1
#define APREQ_COOKIE_VERSION_BIT 11
#define APREQ_COOKIE_VERSION_MASK 3
#define APREQ_COOKIE_SECURE_BIT 13
#define APREQ_COOKIE_SECURE_MASK 1
#define APREQ_COOKIE_HTTPONLY_BIT 14
#define APREQ_COOKIE_HTTPONLY_MASK 1
typedef enum {
APREQ_CHARSET_ASCII =0,
APREQ_CHARSET_LATIN1 =1, /* ISO-8859-1 */
APREQ_CHARSET_CP1252 =2, /* Windows-1252 */
APREQ_CHARSET_UTF8 =8
typedef enum {
typedef enum {
typedef enum {
typedef struct apreq_value_t {
char *name;
apr_size_t nlen;
apr_size_t dlen;
char data[1];
static APR_INLINE
apr_table_addn(t, v->name, v->data);
}
#define apreq_attr_to_type(T,A,P) ( (T*) ((char*)(P)-offsetof(T,A)) )
#ifdef __cplusplus
}
#endif
#endif /* APREQ_H */
#define APREQ_DECLARE(d)
Definition: apreq.h:50
static APR_INLINE void apreq_value_table_add(const apreq_value_t *v, apr_table_t *t)
Definition: apreq.h:254
apr_status_t apreq_initialize(apr_pool_t *pool)
apreq_match_t
Definition: apreq.h:222
@ APREQ_MATCH_PARTIAL
Definition: apreq.h:224
@ APREQ_MATCH_FULL
Definition: apreq.h:223
apreq_charset_t
Definition: apreq.h:205
apreq_join_t
Definition: apreq.h:214
@ APREQ_JOIN_ENCODE
Definition: apreq.h:216
@ APREQ_JOIN_AS_IS
Definition: apreq.h:215
@ APREQ_JOIN_DECODE
Definition: apreq.h:217
@ APREQ_JOIN_QUOTE
Definition: apreq.h:218
apr_status_t apreq_post_initialize(apr_pool_t *pool)
struct apreq_value_t apreq_value_t
libapreq's pre-extensible string type
apreq_expires_t
Definition: apreq.h:228
@ APREQ_EXPIRES_NSCOOKIE
Definition: apreq.h:230
@ APREQ_EXPIRES_HTTP
Definition: apreq.h:229
apr_status_t apreq_pre_initialize(apr_pool_t *pool)
int apr_status_t
struct apr_pool_t apr_pool_t
struct apr_table_t apr_table_t
void apr_table_addn(apr_table_t *t, const char *key, const char *val)
libapreq's pre-extensible string type
Definition: apreq.h:235
char * name
Definition: apreq.h:236
char data[1]
Definition: apreq.h:239
apr_size_t dlen
Definition: apreq.h:238
apr_size_t nlen
Definition: apreq.h:237