Adaptive Framework
0.9.0
|
Adaptive Framework Common Header. More...
#include "afw_doxygen.h"
#include <apr_general.h>
#include <apr_tables.h>
#include <apr_strings.h>
#include <apr_time.h>
#include <apr_hash.h>
#include <apr_buckets.h>
#include <apr_atomic.h>
#include <apr_thread_proc.h>
#include <apr_thread_rwlock.h>
#include <assert.h>
#include <limits.h>
#include <setjmp.h>
#include <string.h>
#include <stdint.h>
#include <stdarg.h>
#include <ctype.h>
#include <math.h>
#include <stdbool.h>
#include <stdlib.h>
#include <inttypes.h>
#include "afw_common_opaques.h"
#include "afw_interface_opaques.h"
#include "afw_declare_helpers.h"
#include "afw_associative_array_template.h"
Go to the source code of this file.
Data Structures | |
struct | afw_memory_s |
Struct for memory pointer and size. More... | |
struct | afw_utf8_s |
NFC normalized UTF-8 string. More... | |
union | afw_utf8_utf8_z_s |
NFC normalized UTF-8 string accessible as afw_utf8_t or afw_utf8_z_t. More... | |
struct | afw_utf8_array_s |
Array of strings. More... | |
struct | afw_stack_s |
Struct for afw_stack_t typedef. More... | |
struct | afw_name_value_s |
Typedef for name/value pair. More... | |
struct | afw_key_string_s |
Typedef for key/string pair. More... | |
struct | afw_key_z_string_z_s |
Typedef for key/string pair that have both utf8 and utf8_z. More... | |
struct | afw_object_meta_s |
Typedef for meta variable in afw_object interface. More... | |
struct | afw_environment_s |
Struct for typedef afw_environment_t defined in afw_common.h. More... | |
union | afw_c_types_u |
Typedef for union of all cType. More... | |
struct | afw_time_with_offset_s |
Time with offset (old) More... | |
struct | afw_yearMonthDuration_s |
yearMonth duration More... | |
struct | afw_dayTimeDuration_s |
dayTime duration More... | |
struct | afw_time_duration_s |
Time duration. More... | |
struct | afw_time_zone_s |
time zone More... | |
struct | afw_date_no_time_zone_s |
date with no time zone. More... | |
struct | afw_date_s |
date with time zone. More... | |
struct | afw_time_no_time_zone_s |
time with no time zone. More... | |
struct | afw_time_s |
time with time zone. More... | |
struct | afw_dateTime_s |
date, time, and time zone. More... | |
Macros | |
#define | AFW_POSSIBLY_UNUSED_VARIABLE |
Macro to avoid unused variable warning. More... | |
#define | AFW_ASSERT(e) assert(e) |
#define | offsetof(type, member) __builtin_offsetof (type, member) |
#define | AFW_ADAPTOR_ID "afw" |
#define | AFW_STRINGIFY(x) AFW_STRINGIFY_x(x) |
Evaluate x and quote the results. | |
#define | AFW_STRINGIFY_x(x) #x |
#define | AFW__FILE_LINE__ __FILE__ ":" AFW_STRINGIFY(__LINE__) |
file:line | |
#define | AFW_INT32_MIN -2147483647 - 1 |
Min int32. | |
#define | AFW_INT32_MAX 2147483647 |
Max int32. | |
#define | AFW_UINT16_MAX 65536 |
Max uint32. | |
#define | AFW_UINT32_MAX 4294967296 |
Max uint32. | |
#define | AFW_UTF8_Z_LEN -1 |
String is NUL (0) terminate. More... | |
#define | AFW_INTEGER_MAX_BUFFER 21 |
this is the maximum number of digits that can be produced by afw_integer_t plus negative sign plus null terminator. Largest negative 64 bit int is -9223372036854775808 Largest positive 64 bit int is 9223372036854775807 | |
#define | AFW_INTEGER_MAX APR_INT64_MAX |
largest afw_integer_t | |
#define | AFW_INTEGER_Q_MAX "9223372036854775807" |
largest afw_integer_t quoted | |
#define | AFW_INTEGER_MIN APR_INT64_MIN |
smallest afw_integer_t | |
#define | AFW_INTEGER_Q_MIN "-9223372036854775808" |
smallest afw_integer_t quoted | |
#define | AFW_INTEGER_MAX_SAFE_DOUBLE 9007199254740991 |
largest afw_integer_t value that a double can hold. | |
#define | AFW_INTEGER_MIN_SAFE_DOUBLE -9007199254740991 |
smallest afw_integer_t value that a double can hold. | |
#define | AFW_INTEGER_IS_SAFE_DOUBLE(integer) |
Tests integer to be safely held in a double. More... | |
#define | AFW_INTEGER_FMT APR_INT64_T_FMT |
Format string specifier used for afw_integer_t. | |
#define | AFW_INTEGER_MAX_DIGITS 19 |
afw_integer_t max digits. | |
#define | AFW_Q_INTEGER_MAX_DIGITS "19" |
afw_integer_t max digits in quotes. | |
#define | AFW_SIZE_T_FMT APR_SIZE_T_FMT |
Format string specifier used for afw_size_t. | |
#define | AFW_SIZE_T_MAX APR_SIZE_MAX |
afw_size_t max. | |
#define | AFW_SIZE_T_MAX_DIGITS 19 |
afw_size_t max digits. | |
#define | AFW_Q_SIZE_T_MAX_DIGITS "19" |
afw_size_t max digits in quotes. | |
#define | AFW_SIZE_T_MAX_BUFFER AFW_SIZE_T_MAX_DIGITS + 1 |
this is the maximum number of digits that can be produced by afw_size_t plus null terminator. | |
#define | AFW_TRUE true |
#define | AFW_FALSE false |
#define | AFW_CRLF "\x0d\x0a" |
#define | AFW_CRLF_STRLEN 2 |
#define | AFW_COMPILE_TYPE_MAP(XX) |
Compile Type Map. More... | |
#define | XX(name, data_type, compile_function, description) afw_compile_type_ ## name, |
#define | AFW_UTF8_LITERAL(A_STRING) {A_STRING, sizeof(A_STRING) - 1} |
String literal initializer. More... | |
#define | AFW_UTF8_FMT ".*s" |
Format string specifier used for afw_utf8_t. | |
#define | AFW_UTF8_CONTEXTUAL_LABEL_FMT_SEP "> " |
Format string used for source location separator. | |
#define | AFW_UTF8_CONTEXTUAL_LABEL_FMT AFW_UTF8_FMT AFW_UTF8_CONTEXTUAL_LABEL_FMT_SEP |
Format string used for source location. | |
#define | AFW_UTF8_FMT_ARG(A_STRING) (int)(A_STRING)->len, (const char *)(A_STRING)->s |
Convenience Macro for use with AFW_UTF8_FMT to specify arg. More... | |
#define | AFW_UTF8_FMT_OPTIONAL_ARG(A_STRING) |
Convenience Macro for use with AFW_UTF8_FMT to specify optional arg. More... | |
#define | AFW_UTF8_FMT_OPTIONAL_UNDEFINED_ARG(A_STRING) |
Convenience Macro for use with AFW_UTF8_FMT to specify optional arg. More... | |
#define | AFW_MESSAGE_PREFIX __FILE__ ":" AFW_STRINGIFY(__LINE__) " " |
Macro to produce prefix for AFW messages. | |
#define | AFW_UTF8_ENCODING "UTF-8" |
UTF-8 encoding. | |
#define | AFW_STACK_STRUCT(struct_name, entry_type) |
Define a struct for a stack with the specified entry type. More... | |
#define | AFW_ERROR_CODE_MAP(XX) |
Error code map. IMPORTANT>>> Do not change the order of these entries. The order must match the order of the error codes in afw_error_code_t as originally released since the internal number will be externally compile in. More... | |
#define | XX(id, error_allow_in_response, http_response_code, description) afw_error_code_ ## id, |
#define | AFW_SERVICE_STARTUP_MAP(XX) |
Map used for afw_service_startup_t enum. More... | |
#define | XX(id, desc) afw_service_startup_ ## id, |
#define | AFW_SERVICE_STATUS_MAP(XX) |
Map used for afw_service_status_t enum. More... | |
#define | XX(id, desc) afw_service_status_ ## id, |
#define | afw_thread_mutex_t apr_thread_mutex_t |
Uses apr_thread_mutex_t asis. See afw_thread.h. | |
#define | afw_thread_mutex_create apr_thread_mutex_create |
Uses apr_thread_mutex_t asis. | |
#define | afw_thread_mutex_lock apr_thread_mutex_lock |
Uses apr_thread_mutex_t asis. | |
#define | afw_thread_mutex_trylock apr_thread_mutex_trylock |
Uses apr_thread_mutex_trylock asis. | |
#define | afw_thread_mutex_unlock apr_thread_mutex_unlock |
Uses apr_thread_mutex_unlock asis. | |
#define | afw_thread_mutex_destroy apr_thread_mutex_destroy |
Uses apr_thread_mutex_destroy asis. | |
#define | AFW_THREAD_FUNCTION APR_THREAD_FUNC |
Uses APR_THREAD_FUNC as AFW_THREAD_FUNCTION. | |
#define | AFW_ENVIRONMENT_DEFAULT_EVALUATION_STACK_INITIAL_COUNT 100 |
Default for afw_environment_t evaluation_stack_initial_count. | |
#define | AFW_ENVIRONMENT_DEFAULT_EVALUATION_STACK_MAXIMUM_COUNT 200 |
Default for afw_environment_t evaluation_stack_maximum_count. | |
Typedefs | |
typedef apr_size_t | afw_size_t |
size_t. | |
typedef apr_off_t | afw_off_t |
off_t. | |
typedef int8_t | afw_int8_t |
8-bit signed integer. | |
typedef apr_int16_t | afw_int16_t |
16-bit signed integer. | |
typedef apr_int32_t | afw_int32_t |
32-bit signed integer. | |
typedef apr_int64_t | afw_int64_t |
64-bit signed integer. | |
typedef uint8_t | afw_uint8_t |
8-bit unsigned integer. | |
typedef apr_uint16_t | afw_uint16_t |
16-bit unsigned integer. | |
typedef apr_uint32_t | afw_uint32_t |
32-bit unsigned integer. | |
typedef apr_uint64_t | afw_uint64_t |
64-bit unsigned integer. | |
typedef float | afw_float32_t |
32-bit float. | |
typedef double | afw_float64_t |
64-bit float. | |
typedef double | afw_float_t |
Normal float. | |
typedef double | afw_double_t |
Normal AFW number is double. | |
typedef afw_int32_t | afw_code_point_t |
Unicode code point. | |
typedef unsigned char | afw_byte_t |
A byte of memory (unsigned). More... | |
typedef unsigned char | afw_octet_t |
8 bits (unsigned). More... | |
typedef char | afw_utf8_octet_t |
8 bits of utf-8 codepoint. More... | |
typedef afw_code_point_t(* | afw_code_point_get_cb_t) (void *data, afw_xctx_t *xctx) |
Get Unicode code point callback. More... | |
typedef int(* | afw_utf8_octet_get_cb_t) (afw_utf8_octet_t *octet, void *data, afw_xctx_t *xctx) |
Get an utf-8 octet (8 bits). More... | |
typedef apr_int64_t | afw_integer_t |
typedef for big signed int. | |
typedef apr_uint64_t | afw_unsigned_integer_t |
typedef for big unsigned int. | |
typedef _Bool | afw_boolean_t |
typedef enum afw_compile_type_e | afw_compile_type_t |
Compile type enum. | |
typedef struct afw_memory_s | afw_memory_t |
Struct for memory pointer and size. More... | |
typedef afw_utf8_octet_t | afw_utf8_z_t |
NFC normalized UTF-8 null terminated string. More... | |
typedef struct afw_utf8_s | afw_utf8_t |
NFC normalized UTF-8 string. More... | |
typedef union afw_utf8_utf8_z_s | afw_utf8_utf8_z_t |
NFC normalized UTF-8 string accessible as afw_utf8_t or afw_utf8_z_t. | |
typedef struct afw_utf8_array_s | afw_utf8_array_t |
Array of strings. | |
typedef uint32_t | afw_u_cp_t |
A Unicode codepoint. Range is 0 to 0x10ffff. Other values are illegal Unicode codepoints. | |
typedef char * | afw_uri_t |
this implementation uses UTF-8. | |
typedef int | afw_log_priority_mask_t |
typedef int | afw_rc_t |
typedef struct afw_name_value_s | afw_name_value_t |
Typedef for name/value pair. | |
typedef struct afw_key_string_s | afw_key_string_t |
Typedef for key/string pair. | |
typedef struct afw_key_z_string_z_s | afw_key_z_string_z_t |
Typedef for key/string pair that have both utf8 and utf8_z. | |
typedef struct afw_object_meta_s | afw_object_meta_t |
Typedef for meta variable in afw_object interface. More... | |
typedef enum afw_error_code_e | afw_error_code_t |
typedef void(* | afw_pool_cleanup_function_p_t) (void *data, void *data2, const afw_pool_t *p, afw_xctx_t *xctx) |
Typedef for pool cleanup functions. More... | |
typedef const afw_value_t *(* | afw_xctx_get_variable_t) (const afw_xctx_qualifier_stack_entry_t *entry, const afw_utf8_t *name, afw_xctx_t *xctx) |
Typedef for function to get a qualified variable. More... | |
typedef enum afw_log_priority_e | afw_log_priority_t |
Log levels. See afw_log.h for more information. | |
typedef enum afw_adaptor_journal_option_e | afw_adaptor_journal_option_t |
Typedef for afw_adaptor_journal get_entry options enum. More... | |
typedef afw_boolean_t(* | afw_object_cb_t) (const afw_object_t *object, void *context, afw_xctx_t *xctx) |
Typedef for afw_adaptor_session_object callback. More... | |
typedef afw_boolean_t(* | afw_value_cb_t) (const void *value, void *context, afw_xctx_t *xctx) |
Typedef for value callback. More... | |
typedef afw_size_t(* | afw_read_cb_t) (void *context, const void *buffer, afw_size_t size, afw_boolean_t *more_to_read, const afw_pool_t *p, afw_xctx_t *xctx) |
Typedef for read callback function. More... | |
typedef afw_size_t(* | afw_write_cb_t) (void *context, const void *buffer, afw_size_t size, const afw_pool_t *p, afw_xctx_t *xctx) |
Typedef for write callback function. More... | |
typedef const afw_value_t *(* | afw_runtime_value_accessor_t) (const afw_runtime_object_map_property_t *property, const void *internal, const afw_pool_t *p, afw_xctx_t *xctx) |
typedef const afw_value_t *(* | afw_function_execute_cb_t) (afw_function_execute_t *x) |
Typedef for function execute functions. More... | |
typedef const afw_value_t *(* | afw_function_thunk_execute_t) (const afw_value_function_thunk_t *function, afw_size_t argc, const afw_value_t *const *argv, const afw_pool_t *p, afw_xctx_t *xctx) |
Typedef for function thunk execute functions. More... | |
typedef const afw_utf8_t *(* | afw_function_arg_check_t) (afw_function_execute_t *x, afw_size_t argc, const afw_value_t *argv[], const afw_pool_t *p, afw_xctx_t *xctx) |
Typedef for function arg check functions. More... | |
typedef enum afw_service_startup_e | afw_service_startup_t |
Typedef for service startup type enum. More... | |
typedef enum afw_service_status_e | afw_service_status_t |
Typedef for service status enum. More... | |
typedef void *(AFW_THREAD_FUNCTION * | afw_thread_function_t) (const afw_thread_t *thread, void *arg) |
Typedef for thread start function. | |
typedef struct afw_thread_attr_s | afw_thread_attr_t |
Typedef for afw_thread_attr. | |
typedef union afw_c_types_u | afw_c_types_t |
Typedef for union of all cType. | |
typedef struct afw_time_with_offset_s | afw_time_with_offset_t |
Time with offset (old) More... | |
typedef struct afw_yearMonthDuration_s | afw_yearMonthDuration_t |
yearMonth duration More... | |
typedef struct afw_dayTimeDuration_s | afw_dayTimeDuration_t |
dayTime duration More... | |
typedef struct afw_time_duration_s | afw_time_duration_t |
Time duration. | |
typedef struct afw_time_zone_s | afw_time_zone_t |
time zone | |
typedef struct afw_date_no_time_zone_s | afw_date_no_time_zone_t |
date with no time zone. | |
typedef struct afw_date_s | afw_date_t |
date with time zone. | |
typedef struct afw_time_no_time_zone_s | afw_time_no_time_zone_t |
time with no time zone. | |
typedef struct afw_time_s | afw_time_t |
time with time zone. | |
typedef struct afw_dateTime_s | afw_dateTime_t |
date, time, and time zone. | |
typedef void(* | afw_service_wrapper_start_cb) (void *data, afw_xctx_t *xctx) |
Typedef for service wrapper start call back. More... | |
typedef void(* | afw_service_wrapper_stop_cb) (void *data, afw_xctx_t *xctx) |
Typedef for service wrapper stop call back. More... | |
Functions | |
AFW_STACK_STRUCT (afw_utf8_stack_s, afw_utf8_t) | |
afw_utf8_t stack struct. | |
AFW_STACK_STRUCT (afw_const_utf8_a_stack_s, const afw_utf8_t *) | |
const afw_utf8_t * stack struct. | |
AFW_STACK_STRUCT (afw_name_value_stack_s, afw_name_value_t) | |
const afw_utf8_t * stack struct. | |
Adaptive Framework Common Header.
This header contains #include
s for common headers that do not have other Adaptive Framework dependencies, typedefs required by afw_interface.h, as well as other #define
s and typedefs that are common to all Adaptive Framework applications.
This header is included by afw_interface.h, afw_minimal.h, and afw.h, there is no need to include it directly.
The major Adaptive Framework headers are arranged as follows:
Major AFW header | description |
---|---|
afw_common.h | This header. Included by afw_interface.h, afw_minimal.h, and afw.h. |
afw_common_opaques.h | Contains common opaque typedefs. Included by afw_common.h. |
afw_interface.h | Generated AFW interface header. Can be included in all headers other than opaque only ones. |
afw_interface_opaques.h | Generated AFW interface opaques. Included by afw_common.h. |
afw_minimal.h | Contains #include s for some core headers that only #include afw_interface.h. Can be included in headers that are not included by afw_minimal.h. |
afw.h | Contains #include s for most core headers and will generally be included in all Adaptive Framework .c files. |
Definition in file afw_common.h.