static int unload_module(void) { ast_vm_unregister(vm_table.module_name); #if defined(MWI_DEBUG_CLI) ast_cli_unregister_multiple(mwi_cli, ARRAY_LEN(mwi_cli)); #endif /* defined(MWI_DEBUG_CLI) */ ast_sorcery_observer_remove(mwi_sorcery, MWI_MAILBOX_TYPE, &mwi_observers); ast_sorcery_unref(mwi_sorcery); mwi_sorcery = NULL; return 0; }
static struct ast_sorcery *alloc_and_initialize_sorcery(void) { struct ast_sorcery *sorcery; if (!(sorcery = ast_sorcery_open())) { return NULL; } if ((ast_sorcery_apply_default(sorcery, "test", "astdb", "test") != AST_SORCERY_APPLY_SUCCESS) || ast_sorcery_internal_object_register(sorcery, "test", test_sorcery_object_alloc, NULL, NULL)) { ast_sorcery_unref(sorcery); return NULL; } ast_sorcery_object_field_register_nodoc(sorcery, "test", "bob", "5", OPT_UINT_T, 0, FLDSET(struct test_sorcery_object, bob)); ast_sorcery_object_field_register_nodoc(sorcery, "test", "joe", "10", OPT_UINT_T, 0, FLDSET(struct test_sorcery_object, joe)); return sorcery; }
static struct ast_sorcery *alloc_and_initialize_sorcery(void) { struct ast_sorcery *sorcery; if (!(sorcery = ast_sorcery_open())) { return NULL; } if (ast_sorcery_apply_default(sorcery, "test", "realtime", "sorcery_realtime_test") || ast_sorcery_internal_object_register(sorcery, "test", test_sorcery_object_alloc, NULL, NULL) || !(realtime_objects = ast_config_new())) { ast_sorcery_unref(sorcery); return NULL; } ast_sorcery_object_field_register_nodoc(sorcery, "test", "bob", "5", OPT_UINT_T, 0, FLDSET(struct test_sorcery_object, bob)); ast_sorcery_object_field_register_nodoc(sorcery, "test", "joe", "10", OPT_UINT_T, 0, FLDSET(struct test_sorcery_object, joe)); return sorcery; }
static void deinitialize_sorcery(struct ast_sorcery *sorcery) { ast_config_destroy(realtime_objects); realtime_objects = NULL; ast_sorcery_unref(sorcery); }
static void deinitialize_sorcery(struct ast_sorcery *sorcery) { ast_db_deltree("test/test", NULL); ast_sorcery_unref(sorcery); }