Asterisk - The Open Source Telephony Project GIT-master-f36a736
|
Call Parking Resource. More...
#include "asterisk.h"
#include "parking/res_parking.h"
#include "asterisk/config.h"
#include "asterisk/config_options.h"
#include "asterisk/utils.h"
#include "asterisk/module.h"
#include "asterisk/cli.h"
#include "asterisk/astobj2.h"
#include "asterisk/features.h"
#include "asterisk/manager.h"
#include "asterisk/pbx.h"
Go to the source code of this file.
Data Structures | |
struct | parking_config |
struct | parking_global_config |
Functions | |
static void | __reg_module (void) |
static void | __unreg_module (void) |
static struct parking_lot * | alloc_new_parking_lot (struct parking_lot_cfg *lot_cfg) |
static | AO2_GLOBAL_OBJ_STATIC (globals) |
struct ast_module * | AST_MODULE_SELF_SYM (void) |
static struct parking_lot_cfg * | clone_parkinglot_cfg (struct parking_lot_cfg *source, const char *name) |
CONFIG_INFO_STANDARD (cfg_info, globals, parking_config_alloc,.files=ACO_FILES(&parking_lot_conf),.pre_apply_config=config_parking_preapply,.post_apply_config=link_configured_disable_marked_lots,) | |
static int | config_parking_preapply (void) |
static int | configure_parking_extensions (void) |
static struct parking_lot * | create_dynamic_lot_full (const char *name, struct ast_channel *chan, int forced) |
static void | disable_marked_lots (void) |
static int | extension_is_compatible (struct parking_lot_cfg *lot_cfg, const char *app_type, struct ast_exten *extension) |
const char * | find_channel_parking_lot_name (struct ast_channel *chan) |
Find parking lot name from channel. More... | |
static void | generate_or_link_lots_to_configs (void) |
struct ao2_container * | get_parking_lot_container (void) |
Get a pointer to the parking lot container for purposes such as iteration. More... | |
static void | link_configured_disable_marked_lots (void) |
static int | load_module (void) |
static void | mark_lots_as_disabled (void) |
static void * | named_item_find (struct ao2_container *container, const char *name) |
find an item in a container by its name More... | |
static int | option_handler_findslot (const struct aco_option *opt, struct ast_variable *var, void *obj) |
Custom field handler for the findslot option. More... | |
static int | option_handler_parkedfeature (const struct aco_option *opt, struct ast_variable *var, void *obj) |
Custom field handler for feature mapping on parked call pickup options. More... | |
static int | option_handler_parkpos (const struct aco_option *opt, struct ast_variable *var, void *obj) |
Custom field handler for parking positions. More... | |
static int | parked_user_cmp_fn (void *obj, void *arg, int flags) |
static int | parked_user_sort_fn (const void *obj_left, const void *obj_right, int flags) |
static int | parking_add_extension (struct ast_context *context, int replace, const char *extension, int priority, const char *application, const char *data, const char *registrar) |
static void * | parking_config_alloc (void) |
allocator callback for parking_config. Notice it returns void * since it is only used by the backend config code More... | |
static void | parking_config_destructor (void *obj) |
destructor for parking_config More... | |
struct parking_lot * | parking_create_dynamic_lot (const char *name, struct ast_channel *chan) |
Create a dynamic parking lot. More... | |
int | parking_dynamic_lots_enabled (void) |
Check global configuration to see if dynamic parking is enabled. More... | |
static int | parking_feature_flag_cfg (int *param, const char *var) |
Maps string values for option_handler_parkedfeature to their ENUM values. More... | |
static void | parking_global_config_destructor (void *obj) |
destructor for parking_global_config More... | |
struct parking_lot * | parking_lot_build_or_update (struct parking_lot_cfg *lot_cfg, int dynamic) |
If a parking lot exists in the parking lot list already, update its status to match the provided configuration and return a reference return a reference to it. Otherwise, create a parking lot struct based on a parking lot configuration and return a reference to the new one. More... | |
static void * | parking_lot_cfg_alloc (const char *cat) |
create a parking lot structure More... | |
static int | parking_lot_cfg_cmp_fn (void *obj, void *arg, const int flags) |
int | parking_lot_cfg_create_extensions (struct parking_lot_cfg *lot_cfg) |
Add extensions for a parking lot configuration. More... | |
static void | parking_lot_cfg_destructor (void *obj) |
Destroy a parking lot cfg object. More... | |
static int | parking_lot_cfg_hash_fn (const void *obj, const int flags) |
void | parking_lot_cfg_remove_extensions (struct parking_lot_cfg *lot_cfg) |
Remove extensions belonging to a parking lot configuration. More... | |
static void | parking_lot_destructor (void *obj) |
static void | parking_lot_disable (struct parking_lot *lot) |
struct parking_lot * | parking_lot_find_by_name (const char *lot_name) |
Find a parking lot based on its name. More... | |
int | parking_lot_remove_if_unused (struct parking_lot *lot) |
Remove a parking lot from the usable lists if it is no longer involved in any calls and no configuration currently claims it. More... | |
static int | parking_lot_sort_fn (const void *obj_left, const void *obj_right, int flags) |
static int | reload_module (void) |
static void | remove_all_configured_parking_lot_extensions (void) |
static void | remove_pending_parking_lot_extensions (struct parking_config *cfg_pending) |
static int | unload_module (void) |
static int | verify_default_parking_lot (void) |
Variables | |
static struct ast_module_info | __mod_info = { .name = AST_MODULE, .flags = AST_MODFLAG_LOAD_ORDER , .description = "Call Parking Resource" , .key = "This paragraph is copyright (c) 2006 by Digium, Inc. \In order for your module to load, it must return this \key via a function called \"key\". Any code which \includes this paragraph must be licensed under the GNU \General Public License version 2 or later (at your \option). In addition to Digium's general reservations \of rights, Digium expressly reserves the right to \allow other parties to license this paragraph under \different terms. Any use of Digium, Inc. trademarks or \logos (including \"Asterisk\" or \"Digium\") without \express written permission of Digium, Inc. is prohibited.\n" , .buildopt_sum = AST_BUILDOPT_SUM, .support_level = AST_MODULE_SUPPORT_CORE, .load = load_module, .unload = unload_module, .reload = reload_module, .load_pri = AST_MODPRI_DEVSTATE_PROVIDER, } |
static const struct ast_module_info * | ast_module_info = &__mod_info |
static struct aco_type | global_option |
struct aco_type * | global_options [] = ACO_TYPES(&global_option) |
struct aco_file | parking_lot_conf |
static struct ao2_container * | parking_lot_container |
static struct aco_type | parking_lot_type |
struct aco_type * | parking_lot_types [] = ACO_TYPES(&parking_lot_type) |
Call Parking Resource.
Definition in file res_parking.c.
|
static |
Definition at line 1296 of file res_parking.c.
|
static |
Definition at line 1296 of file res_parking.c.
|
static |
Definition at line 638 of file res_parking.c.
References ao2_alloc, AO2_ALLOC_OPT_LOCK_RWLOCK, ao2_cleanup, ao2_container_alloc_list, AO2_CONTAINER_ALLOC_OPT_DUPS_REJECT, ast_string_field_init, ast_string_field_set, name, parking_lot_cfg::name, NULL, parked_user_cmp_fn(), parked_user_sort_fn(), parking_lot::parked_users, and parking_lot_destructor().
Referenced by parking_lot_build_or_update().
|
static |
struct ast_module * AST_MODULE_SELF_SYM | ( | void | ) |
Definition at line 1296 of file res_parking.c.
|
static |
Definition at line 940 of file res_parking.c.
References ast_string_field_set, ast_string_fields_copy, parking_lot_cfg::comebackdialtime, parking_lot_cfg::comebacktoorigin, name, NULL, parking_lot_cfg::parkaddhints, parking_lot_cfg::parkedcallhangup, parking_lot_cfg::parkedcallrecording, parking_lot_cfg::parkedcallreparking, parking_lot_cfg::parkedcalltransfers, parking_lot_cfg::parkedplay, parking_lot_cfg::parkext_exclusive, parking_lot_cfg::parkfindnext, parking_lot_cfg_alloc(), parking_lot_cfg::parking_start, parking_lot_cfg::parking_stop, and parking_lot_cfg::parkingtime.
Referenced by create_dynamic_lot_full().
CONFIG_INFO_STANDARD | ( | cfg_info | , |
globals | , | ||
parking_config_alloc | , | ||
. | files = ACO_FILES(&parking_lot_conf) , |
||
. | pre_apply_config = config_parking_preapply , |
||
. | post_apply_config = link_configured_disable_marked_lots |
||
) |
|
static |
Definition at line 1156 of file res_parking.c.
References configure_parking_extensions(), mark_lots_as_disabled(), and verify_default_parking_lot().
|
static |
Definition at line 1111 of file res_parking.c.
References aco_pending_config(), ao2_cleanup, ao2_iterator_destroy(), ao2_iterator_init(), ao2_iterator_next, ao2_ref, ast_log, LOG_ERROR, NULL, parking_lot_cfg_create_extensions(), parking_config::parking_lots, RAII_VAR, remove_all_configured_parking_lot_extensions(), and remove_pending_parking_lot_extensions().
Referenced by config_parking_preapply().
|
static |
Definition at line 971 of file res_parking.c.
References ao2_cleanup, ao2_lock, ao2_ref, ao2_unlock, ast_channel_lock, ast_channel_unlock, ast_log, ast_strdupa, ast_string_field_set, ast_strlen_zero(), parking_lot::cfg, clone_parkinglot_cfg(), DEFAULT_PARKING_LOT, LOG_ERROR, LOG_NOTICE, name, NULL, parking_dynamic_lots_enabled(), parking_lot_build_or_update(), parking_lot_cfg_create_extensions(), parking_lot_container, parking_lot_find_by_name(), parking_lot_cfg::parking_start, parking_lot_cfg::parking_stop, pbx_builtin_getvar_helper(), RAII_VAR, and S_OR.
Referenced by parking_create_dynamic_lot().
|
static |
Definition at line 1171 of file res_parking.c.
References ao2_iterator_destroy(), ao2_iterator_init(), ao2_iterator_next, ao2_ref, parking_lot::disable_mark, parking_lot_container, and parking_lot_disable().
Referenced by link_configured_disable_marked_lots().
|
static |
Definition at line 731 of file res_parking.c.
References ast_assert, ast_debug, ast_get_context_name(), ast_get_extension_app(), ast_get_extension_context(), ast_get_extension_name(), ast_get_extension_registrar(), ast_log, BASE_REGISTRAR, LOG_ERROR, and parking_lot_cfg::name.
Referenced by parking_lot_cfg_create_extensions().
const char * find_channel_parking_lot_name | ( | struct ast_channel * | chan | ) |
Find parking lot name from channel.
chan | The channel we want the parking lot name for |
Definition at line 608 of file res_parking.c.
References ast_channel_parkinglot(), ast_strlen_zero(), DEFAULT_PARKING_LOT, name, and pbx_builtin_getvar_helper().
Referenced by park_common_setup2(), parked_call_app_exec(), and parking_park_call().
|
static |
Definition at line 916 of file res_parking.c.
References ao2_cleanup, ao2_global_obj_ref, ao2_iterator_destroy(), ao2_iterator_init(), ao2_iterator_next, ao2_ref, globals, parking_lot_build_or_update(), and RAII_VAR.
Referenced by link_configured_disable_marked_lots().
struct ao2_container * get_parking_lot_container | ( | void | ) |
Get a pointer to the parking lot container for purposes such as iteration.
Definition at line 597 of file res_parking.c.
References parking_lot_container.
Referenced by cli_display_parking_lot_list(), complete_parking_lot(), manager_parking_lot_list(), manager_parking_status_all_lots(), and metermaidstate().
|
static |
Definition at line 1185 of file res_parking.c.
References disable_marked_lots(), and generate_or_link_lots_to_configs().
|
static |
Definition at line 1208 of file res_parking.c.
References ACO_EXACT, aco_info_init(), aco_option_register, aco_option_register_custom, aco_process_config(), ACO_PROCESS_ERROR, AO2_ALLOC_OPT_LOCK_MUTEX, ao2_container_alloc_list, AO2_CONTAINER_ALLOC_OPT_DUPS_REJECT, AST_MODULE_LOAD_DECLINE, AST_MODULE_LOAD_SUCCESS, error(), FLDSET, global_options, load_parking_applications(), load_parking_bridge_features(), load_parking_devstate(), load_parking_manager(), load_parking_tests(), load_parking_ui(), NULL, OPT_BOOL_T, OPT_PARKEDHANGUP, OPT_PARKEDPLAY, OPT_PARKEDRECORDING, OPT_PARKEDREPARKING, OPT_PARKEDTRANSFERS, OPT_STRINGFIELD_T, OPT_UINT_T, option_handler_findslot(), option_handler_parkedfeature(), option_handler_parkpos(), parking_lot_container, parking_lot_sort_fn(), parking_lot_types, STRFLDSET, and unload_module().
|
static |
Definition at line 1144 of file res_parking.c.
References ao2_iterator_destroy(), ao2_iterator_init(), ao2_iterator_next, ao2_ref, parking_lot::disable_mark, and parking_lot_container.
Referenced by config_parking_preapply().
|
static |
find an item in a container by its name
XXX This is actually incredibly generic and might be better placed in something like astobj2 if there isn't already an equivalent
container | ao2container where we want the item from |
name | name of the item wanted to be found |
NULL | if not found. |
Definition at line 497 of file res_parking.c.
References ao2_find, container, name, and OBJ_KEY.
Referenced by parking_lot_build_or_update(), and parking_lot_find_by_name().
|
static |
Custom field handler for the findslot option.
Definition at line 526 of file res_parking.c.
References ast_log, LOG_WARNING, parking_lot_cfg::parkfindnext, and var.
Referenced by load_module().
|
static |
Custom field handler for feature mapping on parked call pickup options.
Definition at line 565 of file res_parking.c.
References aco_option_get_flags(), ast_assert, NULL, OPT_PARKEDHANGUP, OPT_PARKEDPLAY, OPT_PARKEDRECORDING, OPT_PARKEDREPARKING, OPT_PARKEDTRANSFERS, parking_lot_cfg::parkedcallhangup, parking_lot_cfg::parkedcallrecording, parking_lot_cfg::parkedcallreparking, parking_lot_cfg::parkedcalltransfers, parking_lot_cfg::parkedplay, parking_feature_flag_cfg(), and var.
Referenced by load_module().
|
static |
Custom field handler for parking positions.
Definition at line 505 of file res_parking.c.
References ast_log, LOG_WARNING, parking_lot_cfg::parking_start, parking_lot_cfg::parking_stop, and var.
Referenced by load_module().
|
static |
Definition at line 435 of file res_parking.c.
References CMP_MATCH.
Referenced by alloc_new_parking_lot().
|
static |
Definition at line 447 of file res_parking.c.
References parked_user::parking_space.
Referenced by alloc_new_parking_lot().
|
static |
Definition at line 714 of file res_parking.c.
References ast_add_extension2_nolock(), ast_free_ptr(), ast_strdup, voicemailpwcheck::context, NULL, priority, registrar, and replace().
Referenced by parking_lot_cfg_create_extensions().
|
static |
allocator callback for parking_config. Notice it returns void * since it is only used by the backend config code
Definition at line 377 of file res_parking.c.
References ao2_alloc, AO2_ALLOC_OPT_LOCK_MUTEX, ao2_cleanup, ao2_container_alloc_hash, ao2_ref, NULL, parking_config_destructor(), parking_global_config_destructor(), parking_lot_cfg_cmp_fn(), parking_lot_cfg_hash_fn(), and RAII_VAR.
|
static |
destructor for parking_config
Definition at line 363 of file res_parking.c.
References ao2_cleanup, parking_config::global, and parking_config::parking_lots.
Referenced by parking_config_alloc().
struct parking_lot * parking_create_dynamic_lot | ( | const char * | name, |
struct ast_channel * | chan | ||
) |
Create a dynamic parking lot.
name | Dynamic parking lot name to create |
chan | Channel parkee to get dynamic parking lot parameters from |
NULL | on error |
Definition at line 1060 of file res_parking.c.
References create_dynamic_lot_full(), and name.
Referenced by park_common_setup2(), and parking_park_call().
int parking_dynamic_lots_enabled | ( | void | ) |
Check global configuration to see if dynamic parking is enabled.
1 | if dynamic parking is enabled |
0 | if dynamic parking is disabled |
Definition at line 929 of file res_parking.c.
References ao2_cleanup, ao2_global_obj_ref, globals, and RAII_VAR.
Referenced by cli_display_parking_global(), and create_dynamic_lot_full().
|
static |
Maps string values for option_handler_parkedfeature to their ENUM values.
Definition at line 545 of file res_parking.c.
References ast_false(), AST_FEATURE_FLAG_BYBOTH, AST_FEATURE_FLAG_BYCALLEE, AST_FEATURE_FLAG_BYCALLER, and var.
Referenced by option_handler_parkedfeature().
|
static |
destructor for parking_global_config
Definition at line 371 of file res_parking.c.
Referenced by parking_config_alloc().
struct parking_lot * parking_lot_build_or_update | ( | struct parking_lot_cfg * | cfg, |
int | dynamic | ||
) |
If a parking lot exists in the parking lot list already, update its status to match the provided configuration and return a reference return a reference to it. Otherwise, create a parking lot struct based on a parking lot configuration and return a reference to the new one.
cfg | The configuration being used as a reference to build the parking lot from. |
dynamic | non-zero if creating a dynamic parking lot with this. Don't replace existing parking lots. Ever. |
NULL | if it was not found and could not be allocated |
Definition at line 869 of file res_parking.c.
References alloc_new_parking_lot(), ao2_cleanup, ao2_link, ao2_ref, ast_log, parking_lot::cfg, parking_lot::disable_mark, LOG_ERROR, parking_lot::mode, parking_lot_cfg::name, named_item_find(), NULL, parking_lot_container, PARKINGLOT_DYNAMIC, and PARKINGLOT_NORMAL.
Referenced by create_dynamic_lot_full(), and generate_or_link_lots_to_configs().
|
static |
create a parking lot structure
cat | name given to the parking lot |
NULL | failure |
non-NULL | successfully allocated parking lot |
Definition at line 461 of file res_parking.c.
References ao2_alloc, ao2_cleanup, ast_string_field_init, ast_string_field_set, name, NULL, and parking_lot_cfg_destructor().
Referenced by clone_parkinglot_cfg(), and verify_default_parking_lot().
|
static |
Definition at line 338 of file res_parking.c.
References CMP_MATCH, CMP_STOP, parking_lot_cfg::name, OBJ_KEY, OBJ_PARTIAL_KEY, and OBJ_POINTER.
Referenced by parking_config_alloc().
int parking_lot_cfg_create_extensions | ( | struct parking_lot_cfg * | lot_cfg | ) |
Add extensions for a parking lot configuration.
lot_cfg | parking lot configuration to generate extensions for |
0 | on success |
non-zero | on failure |
Definition at line 759 of file res_parking.c.
References ast_context_find_or_create(), ast_free, ast_get_extension_registrar(), ast_log, AST_MAX_EXTENSION, ast_str_buffer(), ast_str_create, ast_str_set(), ast_string_field_build, ast_strlen_zero(), ast_unlock_context(), ast_unlock_contexts(), ast_wrlock_context(), ast_wrlock_contexts(), BASE_REGISTRAR, E_MATCH, extension_is_compatible(), LOG_ERROR, parking_lot_cfg::name, NULL, PARK_APPLICATION, parking_lot_cfg::parkaddhints, PARKED_CALL_APPLICATION, parking_lot_cfg::parkext, parking_lot_cfg::parkext_exclusive, parking_add_extension(), parking_lot_cfg::parking_con, parking_lot_cfg::parking_start, pbx_find_extension(), PRIORITY_HINT, RAII_VAR, registrar, parking_lot_cfg::registrar, and pbx_find_info::stacklen.
Referenced by configure_parking_extensions(), and create_dynamic_lot_full().
|
static |
Destroy a parking lot cfg object.
Definition at line 427 of file res_parking.c.
References ast_string_field_free_memory, and parking_lot_cfg_remove_extensions().
Referenced by parking_lot_cfg_alloc().
|
static |
Definition at line 320 of file res_parking.c.
References ast_assert, ast_str_hash(), OBJ_KEY, OBJ_PARTIAL_KEY, and OBJ_POINTER.
Referenced by parking_config_alloc().
void parking_lot_cfg_remove_extensions | ( | struct parking_lot_cfg * | lot_cfg | ) |
Remove extensions belonging to a parking lot configuration.
lot_cfg | parking lot configuratin to remove extensions from |
Definition at line 664 of file res_parking.c.
References ast_context_destroy(), ast_string_field_set, ast_strlen_zero(), NULL, registrar, and parking_lot_cfg::registrar.
Referenced by parking_lot_cfg_destructor(), remove_all_configured_parking_lot_extensions(), and remove_pending_parking_lot_extensions().
|
static |
Definition at line 626 of file res_parking.c.
References ao2_cleanup, ast_bridge_destroy(), ast_string_field_free_memory, parking_lot::cfg, parking_lot::parked_users, and parking_lot::parking_bridge.
Referenced by alloc_new_parking_lot().
|
static |
Definition at line 414 of file res_parking.c.
References parking_lot::disable_mark, parking_lot::mode, parking_lot_remove_if_unused(), PARKINGLOT_DISABLED, and PARKINGLOT_DYNAMIC.
Referenced by disable_marked_lots().
struct parking_lot * parking_lot_find_by_name | ( | const char * | lot_name | ) |
Find a parking lot based on its name.
lot_name | Name of the parking lot sought |
NULL | if no parking lot with the name specified exists |
Definition at line 602 of file res_parking.c.
References named_item_find(), and parking_lot_container.
Referenced by cli_display_parking_lot(), create_dynamic_lot_full(), func_get_parkingslot_channel(), manager_parking_status_single_lot(), park_common_setup2(), parked_call_app_exec(), and parking_park_call().
int parking_lot_remove_if_unused | ( | struct parking_lot * | lot | ) |
Remove a parking lot from the usable lists if it is no longer involved in any calls and no configuration currently claims it.
lot | Which parking lot is being checked for elimination |
0 | if the parking lot was removed |
-1 | if the parking lot wasn't removed. |
Definition at line 400 of file res_parking.c.
References ao2_container_count(), ao2_unlink, parking_lot::mode, parking_lot::parked_users, parking_lot_container, and PARKINGLOT_DISABLED.
Referenced by parking_lot_disable(), parking_lot_retrieve_parked_user(), and unpark_parked_user().
|
static |
Definition at line 244 of file res_parking.c.
References parking_lot::name, OBJ_KEY, OBJ_PARTIAL_KEY, and OBJ_POINTER.
Referenced by load_module().
|
static |
Definition at line 1281 of file res_parking.c.
References aco_process_config(), ACO_PROCESS_ERROR, and AST_MODULE_LOAD_DECLINE.
|
static |
Definition at line 679 of file res_parking.c.
References ao2_cleanup, ao2_global_obj_ref, ao2_iterator_destroy(), ao2_iterator_init(), ao2_iterator_next, ao2_ref, ast_context_destroy(), BASE_REGISTRAR, parking_lot::cfg, globals, NULL, parking_lot_cfg_remove_extensions(), and RAII_VAR.
Referenced by configure_parking_extensions(), and unload_module().
|
static |
Definition at line 1096 of file res_parking.c.
References ao2_iterator_destroy(), ao2_iterator_init(), ao2_iterator_next, ao2_ref, ast_context_destroy(), BASE_REGISTRAR, NULL, parking_lot_cfg_remove_extensions(), and parking_config::parking_lots.
Referenced by configure_parking_extensions().
|
static |
Definition at line 1191 of file res_parking.c.
References aco_info_destroy(), ao2_cleanup, ao2_global_obj_release, globals, NULL, parking_lot_container, remove_all_configured_parking_lot_extensions(), unload_parking_applications(), unload_parking_bridge_features(), unload_parking_devstate(), unload_parking_manager(), unload_parking_tests(), and unload_parking_ui().
Referenced by load_module().
|
static |
Definition at line 1072 of file res_parking.c.
References aco_pending_config(), aco_set_defaults(), ao2_cleanup, ao2_find, ao2_link, ast_log, AST_LOG_NOTICE, ast_string_field_set, DEFAULT_PARKING_EXTEN, DEFAULT_PARKING_LOT, NULL, OBJ_KEY, parking_lot_cfg_alloc(), parking_lot_type, parking_config::parking_lots, and RAII_VAR.
Referenced by config_parking_preapply().
|
static |
Definition at line 1296 of file res_parking.c.
|
static |
Definition at line 1296 of file res_parking.c.
|
static |
Definition at line 285 of file res_parking.c.
struct aco_type* global_options[] = ACO_TYPES(&global_option) |
Definition at line 293 of file res_parking.c.
Referenced by load_module().
struct aco_file parking_lot_conf |
Definition at line 307 of file res_parking.c.
|
static |
All parking lots that are currently alive in some fashion can be obtained from here
Definition at line 266 of file res_parking.c.
Referenced by create_dynamic_lot_full(), disable_marked_lots(), get_parking_lot_container(), load_module(), mark_lots_as_disabled(), parking_lot_build_or_update(), parking_lot_find_by_name(), parking_lot_remove_if_unused(), and unload_module().
|
static |
Definition at line 295 of file res_parking.c.
Referenced by verify_default_parking_lot().
struct aco_type* parking_lot_types[] = ACO_TYPES(&parking_lot_type) |
Definition at line 305 of file res_parking.c.
Referenced by load_module().