Log Message: |
Some refactoring. Provide a generic container implementation that
allows for the implementation of thread-safe, reference counting
containers for objects like configurations, authz and repositories.
Update the configuration pool to use that new internal API.
* subversion/include/private/svn_object_pool.h
(): new file
(svn_object_pool__t,
svn_object_pool__getter_t,
svn_object_pool__setter_t): declare API data types
(svn_object_pool__create,
svn_object_pool__pool,
svn_object_pool__mutex,
svn_object_pool__count,
svn_object_pool__lookup,
svn_object_pool__insert): declare API functions
* subversion/libsvn_subr/object_pool.c
(): new file
(object_ref_t): internal data type
(svn_object_pool__t): define API data type
(destroy_object_pool,
object_pool_cleanup,
remove_unused_objects,
object_ref_cleanup,
add_object_ref,
lookup,
insert,
default_getter,
default_setter): various utility functions
(svn_object_pool__create,
svn_object_pool__pool,
svn_object_pool__mutex,
svn_object_pool__count,
svn_object_pool__lookup,
svn_object_pool__insert): implement API functions
* subversion/include/private/svn_repos_private.h
(svn_repos__config_pool_create): add THREAD_SAFE flag
(svn_repos__config_pool_get): add optional KEY return parameter
* subversion/libsvn_repos/config_pool.c
(config_ref_t): rename to ...
(config_object_t): ... this; remove bits already covered by object pool
(in_repo_config_t): update commentary
(svn_repos__config_pool_t): base upon an object pool
(destroy_config_pool,
config_pool_cleanup,
config_ref_cleanup,
config_by_checksum,
remove_unused_configs): drop functionality now covered by object pool
(return_config_ref,
config_add): superseded by ...
(getter,
setter): ... these much simpler callbacks
(checksum_as_key): new utility function
(auto_parse,
add_checksum,
find_repos_config,
config_by_url,
svn_repos__config_pool_create,
svn_repos__config_pool_get): update and simplify implementation
* subversion/tests/libsvn_repos/repos-test.c
(test_config_pool): update API caller
|