Adaptive Framework  0.9.0
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
Todo List
Global afw_adaptor_get_object_type (const afw_utf8_t *adaptor_id, const afw_utf8_t *object_type_id, const afw_object_t *journal_entry, afw_xctx_t *xctx)
FIXME: This may change so that object types are reused unless changed.
Global afw_adaptor_impl_create_cede_p (const afw_adaptor_inf_t *inf, afw_size_t instance_size, const afw_object_t *properties, const afw_pool_t *p, afw_xctx_t *xctx)

FIXME: Reuse if already exists or reuse correct pool.

FIXME: have way for extension to add these. If isPolicyLocation is true, provide appropriate object types. b = afw_object_old_get_property_as_boolean_deprecated(properties, &afw_s_isPolicyLocation, xctx); if (b) { impl->policy_location = afw_authorization_policy_internal_location_create( adaptor, p, xctx); afw_adaptor_impl_set_supported_core_object_type(adaptor, &afw_s__AdaptiveAuthorizationAdviceExpression_, false, true, xctx); afw_adaptor_impl_set_supported_core_object_type(adaptor, &afw_s__AdaptiveAuthorizationCombinerParameter_, false, true, xctx); afw_adaptor_impl_set_supported_core_object_type(adaptor, &afw_s__AdaptiveAuthorizationObligationExpression_, false, true, xctx); afw_adaptor_impl_set_supported_core_object_type(adaptor, &afw_s__AdaptiveAuthorizationPolicy_, true, true, xctx); afw_adaptor_impl_set_supported_core_object_type(adaptor, &afw_s__AdaptiveAuthorizationPolicyIssuer_, false, true, xctx); afw_adaptor_impl_set_supported_core_object_type(adaptor, &afw_s__AdaptiveAuthorizationPolicySet_, true, true, xctx); afw_adaptor_impl_set_supported_core_object_type(adaptor, &afw_s__AdaptiveAuthorizationRule_, false, true, xctx); afw_adaptor_impl_set_supported_core_object_type(adaptor, &afw_s__AdaptiveHybridProperties_, false, true, xctx); }

Global afw_adaptor_impl_generic_object_type_object_get (const afw_adaptor_t *adaptor, const afw_utf8_t *object_type_id, const afw_pool_t *p, afw_xctx_t *xctx)
FIXME: These can be cached off of impl.
Global afw_adaptor_impl_index_cursor_list (const afw_adaptor_impl_index_t *instance, const afw_utf8_t *object_type_id, const afw_query_criteria_filter_entry_t *entry, afw_xctx_t *xctx)

FIXME: this may not help us with date or integer comparisons

FIXME: we need to register open cursors to be released, because we may not know exactly when to discard them

Global afw_adaptor_impl_index_filter_applicable (const afw_object_t *object, const afw_object_t *indexDefinition, afw_xctx_t *xctx)
FIXME: throw/log error here?
Global afw_adaptor_impl_set_supported_core_object_type (const afw_adaptor_t *adaptor, const afw_utf8_t *object_type_id, afw_boolean_t allow_entity, afw_boolean_t allow_write, afw_xctx_t *xctx)
FIXME: This is where object wrapper would be good to just hold deltas.
Global afw_adaptor_internal_journal_epilogue (const afw_adaptor_session_t *session, const afw_object_t *journal_entry, afw_boolean_t modification, afw_xctx_t *xctx)
FIXME: Might want to record failures too????
Global afw_adaptor_internal_journal_get_entry (const afw_adaptor_session_t *session, const afw_utf8_t *object_id, const afw_object_t *journal_entry, afw_xctx_t *xctx)

FIXME: Should this be error?

FIXME: Should this be configurable and where? By adaptor?

FIXME: Might want to url_decode consumer_id and entry_cursor.

Global afw_adaptor_internal_process_object_from_adaptor (const afw_object_t **adapted_object, const afw_object_t **view, afw_adaptor_internal_object_cb_context_t *ctx, const afw_object_t *object, const afw_pool_t *p, afw_xctx_t *xctx)

FIXME: Need to add releases at correct place by caller.

FIXME: Do assess control here that might add meta and remove properties. Might be in view???

Global afw_adaptor_journal_advance_cursor_for_consumer (const afw_utf8_t *adaptor_id, const afw_utf8_t *consumer_id, afw_size_t limit, const afw_pool_t *p, afw_xctx_t *xctx)
FIXME: Add authorization check before and after call.
Global afw_adaptor_journal_get_by_cursor (const afw_utf8_t *adaptor_id, const afw_utf8_t *cursor, const afw_pool_t *p, afw_xctx_t *xctx)
FIXME: Add authorization check before and after call.
Global afw_adaptor_journal_get_first (const afw_utf8_t *adaptor_id, const afw_pool_t *p, afw_xctx_t *xctx)
FIXME: Add authorization check before and after call.
Global afw_adaptor_journal_get_next_after_cursor (const afw_utf8_t *adaptor_id, const afw_utf8_t *cursor, const afw_pool_t *p, afw_xctx_t *xctx)
FIXME: Add authorization check before and after call.
Global afw_adaptor_journal_get_next_for_consumer (const afw_utf8_t *adaptor_id, const afw_utf8_t *consumer_id, afw_size_t limit, const afw_pool_t *p, afw_xctx_t *xctx)
FIXME: Add authorization check before and after call.
Global afw_adaptor_journal_get_next_for_consumer_after_cursor (const afw_utf8_t *adaptor_id, const afw_utf8_t *consumer_id, const afw_utf8_t *cursor, afw_size_t limit, const afw_pool_t *p, afw_xctx_t *xctx)
FIXME: Add authorization check before and after call.
Global afw_adaptor_journal_mark_consumed (const afw_utf8_t *adaptor_id, const afw_utf8_t *consumer_id, const afw_utf8_t *cursor, const afw_pool_t *p, afw_xctx_t *xctx)
FIXME: Add authorization check before and after call.
Global afw_adaptor_modify_entries_apply_to_unnormalized_object (const afw_adaptor_modify_entry_t *const *entries, const afw_object_t *object, afw_xctx_t *xctx)
FIXME: is this supposed to be use
Global afw_adaptor_modify_using_update_object (const afw_utf8_t *adaptor_id, const afw_utf8_t *object_type_id, const afw_utf8_t *object_id, const afw_object_t *update_object, const afw_object_t *journal_entry, const afw_object_t *adaptor_type_specific, afw_xctx_t *xctx)
FIXME: move this out of update
Global AFW_ASSERT (e)
FIXME: Remove this as soon as no source contains it.
Global afw_authorization_check (afw_boolean_t enforce, const afw_value_t *request_id_value, const afw_value_t *resource_id_value, const afw_value_t *object_value, const afw_value_t *action_id_value, const afw_pool_t *p, afw_xctx_t *xctx)
FIXME: What to do about indeterminate?
File afw_command_local_request.c

Search this file and its header for

and make appropriate changes.

Global afw_command_local_server_create (afw_command_self_t *command_self)
these should be able to be changed.
Global afw_compile_and_evaluate (const afw_utf8_t *string, const afw_utf8_t *source_location, afw_compile_type_t compile_type, const afw_pool_t *p, afw_xctx_t *xctx)
more needs to be thought about for memory usage. Only result needs to be saved, but anything "done" in the script needs to remain "done". For instance, if a service is started, its pool should be available. This might solve itself with new memory management.
Global afw_compile_expressions_templates_and_hybrids (const afw_object_t *object, const afw_utf8_t *source_location, afw_boolean_t recursive, const afw_compile_shared_t *shared, afw_xctx_t *xctx)
FIXME: Support bags and lists?
Global afw_compile_parse_OptionalType (afw_compile_parser_t *parser, afw_boolean_t is_return)
use defined constant
Global AFW_COMPILE_THROW_ERROR_Z (message_z)

FIXME: parser->contextual.value_source.s = parser->c;

FIXME: parser->contextual.value_source.len = 0;

Global afw_content_type_x_to_object_value_with_ids (const afw_content_type_t *instance, const afw_utf8_t *string, const afw_utf8_t *adaptor_id, const afw_utf8_t *object_type_id, const afw_utf8_t *object_id, afw_xctx_t *xctx)
FIXME: Decide what to do in dynamo_db code.
Global afw_content_type_x_to_utf8_with_options (const afw_content_type_t *instance, const afw_value_t *value, const afw_object_options_t *options, afw_xctx_t *xctx)
FIXME: Decide what to do in dynamo_db code.
Global afw_context_variable_definitions_add_based_on_object (const afw_object_t *variable_definitions, const afw_object_t *object, afw_xctx_t *xctx)

FIXME: Should be way to get one that is already composite.

FIXME: How should this be handled?

FIXME: NOW relatedPropertyType no longer exists. Use dataTypeParameter.

FIXME: NOW relatedPropertyType no longer exists. pt = afw_object_old_get_property_as_object(pt, &afw_s_relatedPropertyType, xctx);

FIXME: Think about dataType override more.

Global afw_context_variable_definitions_add_based_on_object_type_id (const afw_object_t *variable_definitions, const afw_utf8_t *object_type_id, afw_boolean_t include_evaluated, afw_xctx_t *xctx)

FIXME: Should be way to get one that is already composite.

FIXME: NOW relatedPropertyType no longer exists. Use dataTypeParameter.

FIXME: NOW relatedPropertyType no longer exists. related_pt = afw_object_old_get_property_as_object( pt, &afw_s_relatedPropertyType, xctx);

Global afw_create_log_deprecated (apr_pool_t *temp_pool, apr_pool_t *module_pool, apr_file_t *log_file, const char *encoding)
FIXME: Need to add convert to log code page.
Global AFW_DEFINE (const afw_object_t *)

FIXME: is pool correct?

FIXME: should this be session->p, pool, or xctx->p?

FIXME: already indexed, rebuild?

FIXME: xctx->p, session->p, or pool?

Global afw_environment_create (unsigned int version, int argc, const char *const *argv, const afw_error_t **environment_create_error)
FIXME: Commented out apr_terminate() since it free's error memory.
Global afw_environment_create_registry_type (const afw_utf8_t *registry_type_id, const afw_utf8_t *property_name, const afw_utf8_t *object_type_id, const afw_utf8_t *description, afw_boolean_t allow_reregister, afw_environment_auto_register_cb_t auto_register, afw_environment_register_additional_cb_t register_additional, void *register_additional_param, afw_xctx_t *xctx)
FIXME: Need to lock/protect this update.
Global afw_environment_internal_register_core (afw_xctx_t *xctx)
FIXME: Not implemented yet Register factory for log_type=file. log_factory = afw_log_file_factory_get(); afw_environment_register_log_type( &log_factory->log_type, log_factory, xctx);
Global afw_environment_register_function (const afw_utf8_t *function_id, const afw_value_function_definition_t *function, afw_xctx_t *xctx)

FIXME: Add support for extensions to add data type methods.

resolve parameters.

Global afw_environment_registry_register (int type_number, const afw_utf8_t *key, const void *value, afw_xctx_t *xctx)
FIXME: Small leak if deleting key and then adding again.
Global afw_environment_release (afw_xctx_t *xctx)

FIXME: apr_terminate();

FIXME: afw_pool_destroy(xctx->env->p, xctx);

FIXME: Causing exception because some things not cleaned up properly

Global AFW_ERROR_CLEAR_PARTIAL (__ERROR_)
FIXME: AFW_MARK_UNHANDLED doesn't restore evaluation_stack.
Global afw_error_to_utf8 (const afw_error_t *error, const afw_pool_t *p, afw_xctx_t *xctx)
FIXME: "%.0" AFW_SIZE_T_FMT should cause 0 not to be printed, but it does.
Global afw_error_write_log (afw_log_priority_t priority, const afw_error_t *error, afw_xctx_t *xctx)
FIXME:
Global afw_flag_set_default (const afw_utf8_t *flag_id, afw_boolean_t set_to, afw_xctx_t *xctx)
FIXME: Add authorization to set flag
Global afw_function_evaluate_parameter_with_type (const afw_value_t *value, afw_size_t parameter_number, const afw_value_type_t *type, const afw_pool_t *p, afw_xctx_t *xctx)
FIXME: add support for dataTypeParameter.
Global afw_function_execute_abs_double (afw_function_execute_t *x)
FIXME: A lot of the argument check may be able to be replaced by signals.
Global afw_function_execute_close (afw_function_execute_t *x)
FIXME: Haven't decided what to do about bad number.
Global afw_function_execute_compile (afw_function_execute_t *x)
FIXME: Need a way to get source location
Global afw_function_execute_evaluate_xpathExpression (afw_function_execute_t *x)
FIXME: Add code.
Global afw_function_execute_flush (afw_function_execute_t *x)
FIXME: Haven't decided what to do about bad number.
Global afw_function_execute_in_range_time (afw_function_execute_t *x)
FIXME: This still doesn't feel right. Check + time zone, etc.
Global afw_function_execute_log (afw_function_execute_t *x)
FIXME: Add code.
Global afw_function_execute_match_rfc822Name (afw_function_execute_t *x)
FIXME: Add code.
Global afw_function_execute_match_x500Name (afw_function_execute_t *x)
FIXME: Add code.
Global afw_function_execute_model_default_modify_object_action (afw_function_execute_t *x)
This next line was missing so do a complete review of this.
Global afw_function_execute_model_default_replace_object_action (afw_function_execute_t *x)
This next line was missing so do a complete review of this.
Global afw_function_execute_open_uri (afw_function_execute_t *x)
FIXME: Add code.
Global afw_function_execute_read (afw_function_execute_t *x)
FIXME: Add code.
Global afw_function_execute_read_to_base64Binary (afw_function_execute_t *x)
FIXME: Add code.
Global afw_function_execute_read_to_hexBinary (afw_function_execute_t *x)
FIXME: Add code.
Global afw_function_execute_readln (afw_function_execute_t *x)
FIXME: Add code.
Global afw_function_execute_reconcile_object (afw_function_execute_t *x)
FIXME: Make part of journal object.
Global afw_function_execute_regexp_index_of (afw_function_execute_t *x)
FIXME: Add code.
Global afw_function_execute_regexp_replace (afw_function_execute_t *x)
FIXME: Add code.
Global afw_function_execute_repeat (afw_function_execute_t *x)
FIXME: How should this limit be handled? 1000 was arbitrary.
Global afw_function_execute_stringify (afw_function_execute_t *x)
FIXME: add support for replacer
Global afw_function_execute_url_decode (afw_function_execute_t *x)
should this be here or in anyURI?.
Global afw_function_execute_write (afw_function_execute_t *x)
FIXME: Haven't decided what to do about bad number.
Global afw_function_execute_write_internal (afw_function_execute_t *x)
FIXME: Add code.
Global afw_function_execute_writeln (afw_function_execute_t *x)
FIXME: Haven't decided what to do about bad number.
Global afw_function_execute_xpath_node_count (afw_function_execute_t *x)
FIXME: Add code.
Global afw_function_execute_xpath_node_eq (afw_function_execute_t *x)
FIXME: Add code.
Global afw_function_execute_xpath_node_match (afw_function_execute_t *x)
FIXME: Add code.
Global AFW_IMPLEMENTATION_ID
FIXME: Add include for headers and anything else you want in this part of code.
Global afw_ldap_internal_adaptor_create_cede_p (const afw_object_t *properties, const afw_pool_t *p, afw_xctx_t *xctx)
FIXME: add parameter.
Global afw_ldap_internal_syntax_handler_assign (afw_ldap_metadata_t *metadata, afw_ldap_metadata_attribute_type_t *attribute_type, afw_xctx_t *xctx)
FIXME: Add support for normal LDAP, probably using oid lookup.
Global afw_ldap_metadata_load (afw_ldap_internal_adaptor_t *adaptor, afw_xctx_t *xctx)

FIXME: add code

FIXME: use use count based release.

Class afw_ldap_metadata_s
FIXME: metadata_adaptor needs usecount are something for release.
Global afw_lmdb_adaptor_open_databases (afw_lmdb_adaptor_t *self, const afw_pool_t *pool, afw_xctx_t *xctx)

FIXME:: set compare routines?

FIXME:

Global AFW_LMDB_BEGIN_TRANSACTION (adaptor, session, flags, exclusive, xctx)
FIXME: LMDB transactions may also be nested (second param). However, I don't believe LMDB allows for write transactions to be nested under read transactions, so this macro needs to contain logic to handle both scenarios.
Global afw_lmdb_journal_advance_cursor_for_consumer (afw_lmdb_journal_t *self, afw_lmdb_adaptor_session_t *session, afw_lmdb_adaptor_t *adaptor, MDB_dbi dbiJournal, MDB_txn *txn, const afw_utf8_t *consumer_id, afw_size_t limit, const afw_object_t *response, afw_xctx_t *xctx)

FIXME:: is the cursor further along than our existing advanceCursor?

FIXME:: we'll have to consider the scenario where we get a consume_cursor (re-issue) and now it's removed from the journal

Global afw_lmdb_journal_get_next_for_consumer_after_cursor (afw_lmdb_journal_t *self, afw_lmdb_adaptor_session_t *session, afw_lmdb_adaptor_t *adaptor, MDB_dbi dbiJournal, MDB_txn *txn, const afw_utf8_t *consumer_id, const afw_utf8_t *entry_cursor, afw_size_t limit, const afw_object_t *response, afw_xctx_t *xctx)
FIXME:: is the cursor further along than our existing advanceCursor?
Global afw_log_add_to_environment (const afw_log_t *instance, afw_xctx_t *xctx)

FIXME: runtime object might be accessing on another thread. afw_log_destroy(e->log, xctx);

FIXME: Need to use a "log anchor" with id in it.

Global afw_log_deprecated_trace_options_t::debug
FIXME: Figure this out with Jeremy.
Global afw_log_release
FIXME: In middle of implementation.
Global afw_model_adaptor_create_cede_p (const afw_object_t *properties, const afw_pool_t *p, afw_xctx_t *xctx)
FIXME: Load modelId
Global afw_model_internal_complete_ctx_default_modify_object (afw_model_internal_context_t *ctx, afw_xctx_t *xctx)
FIXME: Might should call to_mapped_value with single values from bag or list.
Global afw_model_internal_create_basic_to_adaptor_mapped_object (afw_model_internal_context_t *ctx, afw_xctx_t *xctx)

FIXME: chance loop to check required etc.

FIXME: add code

Global afw_model_internal_property_type_s::custom_variables
FIXME:
Global afw_object_get_property_extended (const afw_object_t *instance, const afw_utf8_t *property_name, afw_xctx_t *xctx)

FIXME: Correct? Return NULL if instance or property_name is missing.

FIXME: make a list. else if (afw_utf8_equal_utf8_z(&meta_pn, "parentPaths")) { meta_value = afw_object_get_parent_paths(instance, xctx); };

FIXME: Property names like "xyz." and "xyz..x get through.

Global afw_object_meta_add_thrown_property_error (const afw_object_t *instance, const afw_utf8_t *property_name, afw_integer_t index, const afw_error_t *error, afw_xctx_t *xctx)
FIXME: Is the desired??? Log error. afw_error_write_log(afw_log_priority_debug, error, xctx);
Global afw_object_meta_get_object_id_value (const afw_object_t *instance, afw_xctx_t *xctx)
FIXME: Check meta first?? Store in meta???
Global afw_object_meta_get_path (const afw_object_t *instance, afw_xctx_t *xctx)
FIXME: prune to just path.
Global afw_object_meta_set_meta_object (const afw_object_t *instance, const afw_object_t *meta, afw_xctx_t *xctx)
FIXME: Decide if meta object is validated at this point or later. Probably now or with a different call.
Global afw_object_options_set_from_object (const afw_object_options_t *initial_options, const afw_object_t *options_object, const afw_pool_t *p, afw_xctx_t *xctx)

FIXME: May put in at some point ... options property already handled. if (afw_utf8_equal(name, &afw_s_options)) continue;

FIXME: May put in at some point ... Process options property first. v = afw_object_get_property(options_object, &afw_s_options, xctx); if (v) {

Global afw_object_path_make_property_name_expression (const afw_object_path_property_name_entry_t *first, const afw_pool_t *p, afw_xctx_t *xctx)
FIXME: Improve to generate ['name'] when needed.
Global afw_object_type_property_type_get_next (const afw_object_type_t *object_type, const afw_iterator_t **iterator, const afw_utf8_t **property_name, afw_xctx_t *xctx)
FIXME: change after compile. This wastes a lot of time and space.
Global afw_object_type_property_type_normalize (const afw_object_type_property_type_t *pt, const afw_value_t *value, const afw_pool_t *p, afw_xctx_t *xctx)
FIXME: normalize list entries.
Global afw_object_type_property_type_s::context_type_id
FIXME: add constraint things.
Global afw_object_view_create (const afw_object_t *instance, const afw_utf8_t *entity_path, const afw_object_options_t *options, const afw_pool_t *p, afw_xctx_t *xctx)
FIXME: Should probably come in as parameter.
Global afw_request_body_to_utf8 (const afw_request_t *instance, const afw_pool_t *p, afw_xctx_t *xctx)
FIXME: Put in support of chunked encoding.
Global afw_request_body_to_value (const afw_request_t *instance, const afw_pool_t *p, afw_xctx_t *xctx)
FIXME: should decode content type parameter (stuff after ;).
Global afw_runtime_object_add_reference (const afw_object_t *instance, afw_xctx_t *xctx)
FIXME: Think about this.
Global afw_runtime_object_get_count (const afw_object_t *instance, afw_xctx_t *xctx)
Add code to implement method.
Global afw_runtime_object_release (const afw_object_t *instance, afw_xctx_t *xctx)
FIXME: Think about this.
Global afw_server_fcgi_internal_create (const char *path, afw_integer_t thread_count, afw_xctx_t *xctx)
FIXME: Removed for now because not working fully apr_signal(SIGTERM, impl_handle_sigterm);
Module afw_service
FIXME: Can be afw_minimal.h instead if not part of it's #includes. Keep simple.
Global afw_service_s::data
FIXME: Might go away.
Global afw_stack_internal_set_qualifier_stack (afw_xctx_t *xctx)
FIXME:
Global afw_stream_fd_open_and_create (const afw_utf8_t *streamId, const afw_utf8_t *path, const afw_utf8_t *mode, afw_boolean_t auto_flush, const afw_pool_t *p, afw_xctx_t *xctx)
FIXME: use application rootPaths
Class afw_ubjson_parser_s
FIXME:: UTF-8 encoding/decoding. When converting JSON to UBJSON, back to JSON, we lose special characters.
Global afw_uri_parse (const afw_utf8_t *uri, afw_boolean_t is_value_path, const afw_utf8_t *current_path, const afw_pool_t *p, afw_xctx_t *xctx)

FIXME: Should syntax check v4 address.

FIXME: Should syntax check v6 address.

FIXME: Needs further parsing.

FIXME: Needs further parsing.

Global afw_uri_parsed_are_equivalent (const afw_uri_parsed_t *parsed1, const afw_uri_parsed_t *parsed2, afw_xctx_t *xctx)

FIXME: compare query and fragment part.

FIXME: compare decoded tokens instead.

Global afw_utf8_line_column_of_offset (afw_size_t *line_number, afw_size_t *column_number, const afw_utf8_t *s, afw_size_t offset, int tab_size, afw_xctx_t *xctx)
change this to also return code point offset.
Global afw_utf8_line_count_and_max_column (afw_size_t *number_of_lines, afw_size_t *max_column_number, const afw_utf8_t *s, int tab_size, afw_xctx_t *xctx)
change this to also return octet offset.
Global afw_utf8_z_equal (const afw_utf8_z_t *s1, const afw_utf8_z_t *s2)
FIXME: Need to fix comments below and polish comments above.
Global afw_utf8_z_equal_ignore_case (const afw_utf8_z_t *s1, const afw_utf8_z_t *s2)
FIXME: FIXME This needs to change to be like afw_utf8_z_compare_ignore_case() when XACML is chanced not to use this. New version has xctx so error can be thrown if string is not UTF8 or too large.
Global afw_value_as_casted_utf8 (const afw_value_t *value, const afw_pool_t *p, afw_xctx_t *xctx)
FIXME: change from bag to list when tests are modified.
Global afw_value_block_allocated_and_link (const afw_compile_value_contextual_t *contextual, afw_value_compiled_value_t *compiled_value, afw_size_t *block_count, const afw_pool_t *p, afw_xctx_t *xctx)
FIXME: Remove this code. Saving for now in case error is wrong. block = compiled_value->top_block; compiled_value->current_block = block; return (const afw_value_block_t *)block;
Global afw_value_block_evaluate_statement (afw_function_execute_t *x, afw_value_block_statement_type_t *type, afw_boolean_t allow_return, afw_boolean_t is_loop, const afw_value_t *block, const afw_pool_t *p, afw_xctx_t *xctx)

this is temporary.

FIXME: process type.

Global afw_value_compiler_listing_to_string_instance (const afw_value_t *value, afw_value_compiler_listing_t *parent, const afw_utf8_t *tab, const afw_pool_t *p, afw_xctx_t *xctx)
make these an option
Global afw_value_convert (const afw_value_t *value, const afw_data_type_t *to_data_type, afw_boolean_t required, const afw_pool_t *p, afw_xctx_t *xctx)
FIXME: make parameter
Global afw_value_create_list_expression (const afw_compile_value_contextual_t *contextual, const afw_value_t *internal, const afw_pool_t *p, afw_xctx_t *xctx)
Add contextual to decompile, etc.
Global afw_value_create_object_expression (const afw_compile_value_contextual_t *contextual, const afw_object_t *internal, const afw_pool_t *p, afw_xctx_t *xctx)
Add contextual to decompile, etc.
Global afw_value_reference_by_key_create (const afw_compile_value_contextual_t *contextual, const afw_value_t *aggregate_value, const afw_value_t *key, const afw_pool_t *p, afw_xctx_t *xctx)
FIXME: Should have list entry by index too.
Global afw_value_script_function_definition_create (const afw_compile_value_contextual_t *contextual, const afw_value_type_t *returns, afw_size_t count, const afw_value_script_function_parameter_t **parameters, const afw_value_t *body, const afw_pool_t *p, afw_xctx_t *xctx)
FIXME: Work about in all creates if copy needed.
Global afw_xctx_internal_create_initialize (afw_try_t *unhandled_error, afw_error_t *error, afw_environment_internal_t *env, const afw_pool_t *p)
FIXME: stream_anchor may be too early???
Global afw_xctx_push_qualifier (const afw_utf8_t *qualifier, const afw_object_t *qualifier_object, afw_boolean_t secure, afw_xctx_get_variable_t get, void *data, const afw_pool_t *p, afw_xctx_t *xctx)
FIXME: add support for qualifier object.
Page Autocomplete
-library/jest.
Page Box
-library/jest.
Page Breadcrumb
-library/jest.
Page Button
-library/jest.
Page Callout
-library/jest.
Page Chart
-library/jest.
Page Checkbox
-library/jest.
Page ChoiceGroup
-library/jest.
Page CodeEditor
-library/jest.
Page Collapsible
-library/jest.
Page DatePicker
-library/jest.
Page DateTimePicker
-library/jest.
Page Dialog
-library/jest.
Page DiffEditor
-library/jest.
Page Divider
-library/jest.
Page Drawer
-library/jest.
Page Dropdown
-library/jest.
Page DropdownEditor
-library/jest.
Page EditableCallout
-library/jest.
Page EditableLabel
-library/jest.
Page Hidden
-library/jest.
Page Icon
-library/jest.
Page Image
-library/jest.
Global impl_afw_adaptor_create_adaptor_session (const afw_adaptor_t *instance, afw_xctx_t *xctx)

FIXME: Add common prologue code.

FIXME: Add common epilogue code.

Global impl_afw_adaptor_destroy (const afw_adaptor_t *instance, afw_xctx_t *xctx)

FIXME: Add common prologue code.

FIXME: Add common epilogue code.

Global impl_afw_adaptor_get_additional_metrics (const afw_adaptor_t *instance, const afw_pool_t *p, afw_xctx_t *xctx)

Add code to implement method.

FIXME: Add common prologue code.

FIXME: Add common epilogue code.

FIXME: Jeremy

Global impl_afw_adaptor_impl_index_add (const afw_adaptor_impl_index_t *instance, const afw_utf8_t *object_type_id, const afw_utf8_t *object_id, const afw_utf8_t *key, const afw_utf8_t *value, afw_boolean_t unique, const afw_pool_t *pool, afw_xctx_t *xctx)
FIXME: this basically avoids indexing an empty string, so we should determine if this is an error condition or not
Global impl_afw_adaptor_impl_index_cursor_contains_object (const afw_adaptor_impl_index_cursor_t *instance, const afw_object_t *object, afw_xctx_t *xctx)
FIXME:: This routine only works for afw_query_criteria_filter_op_id_eq. In order to support other operators, we need to scan sequentially instead of letting LMDB try to find a specific key/data.
Global impl_afw_adaptor_impl_index_cursor_inner_join (const afw_adaptor_impl_index_cursor_t *instance, const afw_adaptor_impl_index_cursor_t *cursor, afw_xctx_t *xctx)
FIXME: Jeremy
Global impl_afw_adaptor_impl_index_delete (const afw_adaptor_impl_index_t *instance, const afw_utf8_t *object_type_id, const afw_utf8_t *object_id, const afw_utf8_t *key, const afw_utf8_t *value, const afw_pool_t *pool, afw_xctx_t *xctx)
FIXME: this basically avoids indexing an empty string, so we should determine if this is an error condition or not
Global impl_afw_adaptor_journal_add_entry (const afw_adaptor_journal_t *instance, const afw_adaptor_impl_request_t *impl_request, const afw_object_t *entry, afw_xctx_t *xctx)

FIXME: authorization check

FIXME: add in registers for cleanup.

FIXME: is this the right options to use? Probably not.

Global impl_afw_adaptor_journal_get_entry (const afw_adaptor_journal_t *instance, const afw_adaptor_impl_request_t *impl_request, afw_adaptor_journal_option_t option, const afw_utf8_t *consumer_id, const afw_utf8_t *entry_cursor, afw_size_t limit, const afw_object_t *response, afw_xctx_t *xctx)

FIXME: authorization check

FIXME: Is this an error?

Global impl_afw_adaptor_journal_get_next_for_consumer (afw_lmdb_journal_t *self, afw_lmdb_adaptor_session_t *session, afw_lmdb_adaptor_t *adaptor, MDB_dbi dbiJournal, MDB_txn *txn, const afw_utf8_t *consumer_id, afw_size_t limit, const afw_object_t *response, afw_xctx_t *xctx)

FIXME:: is the cursor further along than our existing advanceCursor?

FIXME:: we'll have to consider the scenario where we get a consume_cursor (re-issue) and now it's removed from the journal

Global impl_afw_adaptor_journal_mark_entry_consumed (const afw_adaptor_journal_t *instance, const afw_adaptor_impl_request_t *impl_request, const afw_utf8_t *consumer_id, const afw_utf8_t *entry_cursor, afw_xctx_t *xctx)
FIXME: authorization check
Global impl_afw_adaptor_key_value_add (const afw_adaptor_key_value_t *instance, const afw_utf8_t *namespace, const afw_memory_t *key, const afw_memory_t *value, afw_xctx_t *xctx)
FIXME: determine if we need to keep these databases open or not
Global impl_afw_adaptor_key_value_get (const afw_adaptor_key_value_t *instance, const afw_utf8_t *namespace, const afw_memory_t *key, afw_xctx_t *xctx)
FIXME:
Global impl_afw_adaptor_session_add_object (const afw_adaptor_session_t *instance, const afw_adaptor_impl_request_t *impl_request, const afw_utf8_t *object_type_id, const afw_utf8_t *suggested_object_id, const afw_object_t *object, const afw_object_t *adaptor_type_specific, afw_xctx_t *xctx)

FIXME: Add common epilogue code.

FIXME: Should this be an error???

FIXME: Add common prologue code.

Global impl_afw_adaptor_session_begin_transaction (const afw_adaptor_session_t *instance, afw_xctx_t *xctx)

FIXME: Add common epilogue code.

FIXME: Add common prologue code.

Global impl_afw_adaptor_session_delete_object (const afw_adaptor_session_t *instance, const afw_adaptor_impl_request_t *impl_request, const afw_utf8_t *object_type_id, const afw_utf8_t *object_id, const afw_object_t *adaptor_type_specific, afw_xctx_t *xctx)

FIXME: This is ok, but we may want to log an internal message.

FIXME: Add common prologue code.

FIXME: we should not let the original error make it back to the client.

FIXME: Add common epilogue code.

Global impl_afw_adaptor_session_destroy (const afw_adaptor_session_t *instance, afw_xctx_t *xctx)

FIXME: Add common prologue code.

FIXME: Add common epilogue code.

Global impl_afw_adaptor_session_get_index_interface (const afw_adaptor_session_t *instance, afw_xctx_t *xctx)

FIXME: Add common epilogue code.

FIXME: Add common prologue code.

Global impl_afw_adaptor_session_get_key_value_interface (const afw_adaptor_session_t *instance, afw_xctx_t *xctx)

FIXME: Add common prologue code.

FIXME: Add common epilogue code.

Global impl_afw_adaptor_session_get_object (const afw_adaptor_session_t *instance, const afw_adaptor_impl_request_t *impl_request, const afw_utf8_t *object_type_id, const afw_utf8_t *object_id, void *context, afw_object_cb_t callback, const afw_object_t *adaptor_type_specific, const afw_pool_t *p, afw_xctx_t *xctx)

FIXME: Add timeout config parameter.

FIXME: Add common epilogue code.

FIXME: Add common prologue code.

Global impl_afw_adaptor_session_modify_object (const afw_adaptor_session_t *instance, const afw_adaptor_impl_request_t *impl_request, const afw_utf8_t *object_type_id, const afw_utf8_t *object_id, const afw_adaptor_modify_entry_t *const *entry, const afw_object_t *adaptor_type_specific, afw_xctx_t *xctx)

FIXME: Add common epilogue code.

FIXME: Deal with results in journal entry.

FIXME: Add common prologue code.

Global impl_afw_adaptor_session_replace_object (const afw_adaptor_session_t *instance, const afw_adaptor_impl_request_t *impl_request, const afw_utf8_t *object_type_id, const afw_utf8_t *object_id, const afw_object_t *replacement_object, const afw_object_t *adaptor_type_specific, afw_xctx_t *xctx)

FIXME: Add common prologue code.

FIXME: Add common epilogue code.

FIXME: Deal with results in journal entry.

Global impl_afw_adaptor_session_retrieve_objects (const afw_adaptor_session_t *instance, const afw_adaptor_impl_request_t *impl_request, const afw_utf8_t *object_type_id, const afw_query_criteria_t *criteria, void *context, afw_object_cb_t callback, const afw_object_t *adaptor_type_specific, const afw_pool_t *p, afw_xctx_t *xctx)

FIXME: Add query info as object.

FIXME: seems to be this on windows

FIXME: Add common epilogue code.

FIXME: discuss this defensive check, it's null when indexing

make sure (apr_ssize_t *) doesn't cause loss of bits.

FIXME: Add common prologue code.

Global impl_afw_list_const_array_of_values_self_t
FIXME:
Global impl_afw_list_get_count (const afw_list_t *instance, afw_xctx_t *xctx)

Add code to implement method.

Add code to implement method.

Global impl_afw_list_get_data_type (const afw_list_t *instance, afw_xctx_t *xctx)

Add code to implement method.

Add code to implement method.

Global impl_afw_list_get_entry_internal (const afw_list_t *instance, afw_integer_t index, const afw_data_type_t **data_type, const void **internal, afw_xctx_t *xctx)

Add code to implement method.

Add code to implement method.

Global impl_afw_list_get_entry_value (const afw_list_t *instance, afw_integer_t index, const afw_pool_t *p, afw_xctx_t *xctx)

Add code to implement method.

Add code to implement method.

Global impl_afw_list_get_next_internal (const afw_list_t *instance, const afw_iterator_t **iterator, const afw_data_type_t **data_type, const void **internal, afw_xctx_t *xctx)

Add code to implement method.

Add code to implement method.

Global impl_afw_list_get_next_value (const afw_list_t *instance, const afw_iterator_t **iterator, const afw_pool_t *p, afw_xctx_t *xctx)

Add code to implement method.

Add code to implement method.

Global impl_afw_list_get_setter (const afw_list_t *instance, afw_xctx_t *xctx)

Add code to implement method.

Add code to implement method.

Global impl_afw_list_release (const afw_list_t *instance, afw_xctx_t *xctx)

Add code to implement method.

Add code to implement method.

Global impl_afw_list_setter_set_value_by_index (const afw_list_setter_t *instance, afw_size_t index, const afw_value_t *value, afw_xctx_t *xctx)
FIXME: Consider reducing reference count.
Global impl_afw_log_write (const afw_log_t *instance, afw_log_priority_t priority, const afw_utf8_z_t *source_z, const afw_utf8_t *message, afw_xctx_t *xctx)

FIXME: Write to event log.

FIXME: Throwing error is a bad idea, so indicate some other way.

FIXME: Maybe abort?

Global impl_afw_object_add_reference (const afw_object_t *instance, afw_xctx_t *xctx)

Add code to implement method.

Add code to implement method.

Add code to implement method.

Add code to implement method.

Global impl_afw_object_associative_array_for_each (const afw_object_associative_array_t *instance, void *context, afw_object_cb_t cb, afw_xctx_t *xctx)
Add code to implement method.
Global impl_afw_object_get_count (const afw_object_t *instance, afw_xctx_t *xctx)

Add code to implement method.

Add code to implement method.

Add code to implement method.

Add code to implement method.

Add code to implement method.

Add code to implement method.

Add code to implement method.

Add code to implement method.

Add code to implement method.

Add code to implement method.

Add code to implement method.

Add code to implement method.

Add code to implement method.

Add code to implement method.

Add code to implement method.

Add code to implement method.

Add code to implement method.

Add code to implement method.

Global impl_afw_object_get_meta (const afw_object_t *instance, const afw_pool_t *p, afw_xctx_t *xctx)
Add code to implement method.
Global impl_afw_object_get_next_property (const afw_object_t *instance, const afw_iterator_t **iterator, const afw_utf8_t **property_name, afw_xctx_t *xctx)

Add code to implement method.

Add code to implement method.

Add code to implement method.

Add code to implement method.

Add code to implement method.

Global impl_afw_object_get_next_property_meta (const afw_object_t *instance, const afw_iterator_t **iterator, const afw_utf8_t **property_name, const afw_pool_t *p, afw_xctx_t *xctx)
Add code to implement method.
Global impl_afw_object_get_property (const afw_object_t *instance, const afw_utf8_t *property_name, afw_xctx_t *xctx)

Add code to implement method.

FIXME: Add parent support.

Add code to implement method.

Add code to implement method.

Add code to implement method.

Global impl_afw_object_get_property_meta (const afw_object_t *instance, const afw_utf8_t *property_name, const afw_pool_t *p, afw_xctx_t *xctx)
Add code to implement method.
Global impl_afw_object_get_setter (const afw_object_t *instance, afw_xctx_t *xctx)

Add code to implement method.

Add code to implement method.

Add code to implement method.

Add code to implement method.

Global impl_afw_object_has_property (const afw_object_t *instance, const afw_utf8_t *property_name, afw_xctx_t *xctx)

Add code to implement method.

Add code to implement method.

Add code to implement method.

Add code to implement method.

Global impl_afw_object_release (const afw_object_t *instance, afw_xctx_t *xctx)

Add code to implement method.

Add code to implement method.

Add code to implement method.

Add code to implement method.

Add code to implement method.

Add code to implement method.

Global impl_afw_object_setter_set_immutable (const afw_object_setter_t *instance, afw_xctx_t *xctx)
Add code to implement method.
Global impl_afw_object_setter_set_property (const afw_object_setter_t *instance, const afw_utf8_t *property_name, const afw_value_t *value, afw_xctx_t *xctx)
FIXME: Need to think about setting a property that is an object. Embedding object and property name needs to be correct, plus path and related meta needs to be clear. Might involve clone, but afw_object_create_embedded() also calls this, so if embedded object is this instance, no clone needed. Also consider that clone might not should be used since the one setting property might want to add properties after doing the set.
Global impl_afw_pool_free (const afw_pool_t *instance, void *address, afw_size_t size, afw_xctx_t *xctx)

Add code to implement method.

Add code to implement method.

Global impl_afw_pool_get_apr_pool (const afw_pool_t *instance)

FIXME: do something.

FIXME: do something.

Global impl_afw_pool_release (const afw_pool_t *instance, afw_xctx_t *xctx)

FIXME: This should probably go away.

FIXME: This should probably go away.

Global impl_afw_request_handler_process (const afw_request_handler_t *instance, const afw_request_t *request, afw_xctx_t *xctx)

FIXME: Remove.

FIXME: Remove

FIXME: Make user error.

FIXME: Put recurse support in AFW_TRY.

Global impl_afw_server_release (const afw_server_t *instance, afw_xctx_t *xctx)
Add code to implement method.
Global impl_afw_server_run (const afw_server_t *instance, const afw_request_handler_t *handler, afw_xctx_t *xctx)
FIXME: Put in signal handling
Global impl_afw_service_type_stop (const afw_service_type_t *instance, const afw_utf8_t *id, afw_xctx_t *xctx)
FIXME: Need to be able to destroy, but runtime object might be using.
Global impl_afw_stream_read (const afw_stream_t *instance, const void *buffer, afw_size_t size, afw_xctx_t *xctx)

Add code to implement method.

Add code to implement method.

Add code to implement method.

Add code to implement method.

Global impl_afw_stream_write (const afw_stream_t *instance, const void *buffer, afw_size_t size, afw_xctx_t *xctx)
loop if everything is not returned???
Global impl_afw_value_get_evaluated_meta (const afw_value_t *instance, const afw_pool_t *p, afw_xctx_t *xctx)
Add code to implement method.
Global impl_afw_value_managed_optional_release (const afw_value_t *instance, afw_xctx_t *xctx)

this needs to release reference of value or free it.

this needs to release reference of value or free it.

this needs to release reference of value or free it.

this needs to release reference of value or free it.

this needs to release reference of value or free it.

this needs to release reference of value or free it.

this needs to release reference of value or free it.

this needs to release reference of value or free it.

this needs to release reference of value or free it.

this needs to release reference of value or free it.

this needs to release reference of value or free it.

this needs to release reference of value or free it.

this needs to release reference of value or free it.

this needs to release reference of value or free it.

this needs to release reference of value or free it.

this needs to release reference of value or free it.

this needs to release reference of value or free it.

this needs to release reference of value or free it.

this needs to release reference of value or free it.

this needs to release reference of value or free it.

this needs to release reference of value or free it.

this needs to release reference of value or free it.

this needs to release reference of value or free it.

this needs to release reference of value or free it.

this needs to release reference of value or free it.

this needs to release reference of value or free it.

this needs to release reference of value or free it.

this needs to release reference of value or free it.

this needs to release reference of value or free it.

this needs to release reference of value or free it.

this needs to release reference of value or free it.

this needs to release reference of value or free it.

this needs to release reference of value or free it.

Global impl_afw_value_optional_evaluate (const afw_value_t *instance, const afw_pool_t *p, afw_xctx_t *xctx)

FIXME: Add code to adjust based on annotation.

temporary

Global impl_afw_value_unmanaged_get_reference (const afw_value_t *instance, const afw_pool_t *p, afw_xctx_t *xctx)

this needs to addref or return a copy.

this needs to addref or return a copy.

this needs to addref or return a copy.

this needs to addref or return a copy.

this needs to addref or return a copy.

this needs to addref or return a copy.

this needs to addref or return a copy.

this needs to addref or return a copy.

this needs to addref or return a copy.

this needs to addref or return a copy.

this needs to addref or return a copy.

this needs to addref or return a copy.

this needs to addref or return a copy.

this needs to addref or return a copy.

this needs to addref or return a copy.

this needs to addref or return a copy.

this needs to addref or return a copy.

this needs to addref or return a copy.

this needs to addref or return a copy.

this needs to addref or return a copy.

this needs to addref or return a copy.

this needs to addref or return a copy.

this needs to addref or return a copy.

this needs to addref or return a copy.

this needs to addref or return a copy.

this needs to addref or return a copy.

this needs to addref or return a copy.

this needs to addref or return a copy.

this needs to addref or return a copy.

this needs to addref or return a copy.

this needs to addref or return a copy.

this needs to addref or return a copy.

this needs to addref or return a copy.

Global impl_afw_writer_write (const afw_writer_t *instance, const void *buffer, afw_size_t size, afw_xctx_t *xctx)
loop if everything is not returned???
Global impl_afw_writer_write_eol (const afw_writer_t *instance, afw_xctx_t *xctx)
loop if everything is not returned???
Global IMPL_DEBUG_LEVEL_detail

FIXME: If pool is multithread, use a lock when changing memory.

FIXME: If pool is multithread, use a lock when changing memory.

Global impl_execute_mapBackObject_thunk (const afw_value_function_thunk_t *thunk, afw_size_t argc, const afw_value_t *const *argv, const afw_pool_t *p, afw_xctx_t *xctx)
FIXME: Temporary, remove
Global impl_execute_returnObject_thunk (const afw_value_function_thunk_t *thunk, afw_size_t argc, const afw_value_t *const *argv, const afw_pool_t *p, afw_xctx_t *xctx)
FIXME: Temporary, remove
Global impl_get_converted_entry (impl_convert_entry_wa_t *wa, const afw_query_criteria_filter_entry_t *old_entry)

FIXME: include conf?

FIXME: include conf?

Global impl_set_date_no_time_zone (afw_date_no_time_zone_t *date, int year, int month, int day, afw_xctx_t *xctx)
FIXME: check for leapyear.
Class impl_set_init_wa_t
FIXME: should flag be condition or indicator and allow level?
Page Link
-library/jest.
Page List
-library/jest.
Page ListEditor
-library/jest.
Page Menu
-library/jest.
Page Message
-library/jest.
Page Modal
-library/jest.
Page Native
-library/jest.
Page Nav
-library/jest.
Global offsetof (type, member)
FIXME:
Page Paper
-library/jest.
Page Picker
-library/jest.
Page Responsive
-library/jest.
Page Skeleton
-library/jest.
Page Slider
-library/jest.
Page Snackbar
-library/jest.
Page SpinButton
-library/jest.
Page Spinner
-library/jest.
Page Stepper
-library/jest.
Page Table
-library/jest.
Page Tabs
-library/jest.
Page TextField
-library/jest.
Page TimeDuration
-library/jest.
Page TimePicker
-library/jest.
Page TimezonePicker
-library/jest.
Page Toggle
-library/jest.
Page ToggleButtons
-library/jest.
Page Toolbar
-library/jest.
Page Tooltip
-library/jest.
Page Tree
-library/jest.
Page Typography
-library/jest.