sorcery: Create sorcery instance registry.
authorGeorge Joseph <george.joseph@fairview5.com>
Thu, 20 Feb 2014 20:45:30 +0000 (20:45 +0000)
committerGeorge Joseph <george.joseph@fairview5.com>
Thu, 20 Feb 2014 20:45:30 +0000 (20:45 +0000)
commita94c8562fd70bc5b317a434db36f19fd34c70f8c
tree33079e3ce84fd9b653bbaf2e448d28b2fed06a4d
parent8e1c5b62be1a4e33d4ec0167fdba9596f213baaa
sorcery: Create sorcery instance registry.

In order to retrieve an arbitrary sorcery instance from a dialplan function
(or any place else) there needs to be a registry of sorcery instances.

ast_sorcery_init now creates a hashtab as a registry.

ast_sorcery_open now checks the hashtab for an existing sorcery instance
matching the caller's module name.  If it finds one, it bumps the
refcount and returns it.  If not, it creates a new sorcery instance,
adds it to the hashtab, then returns it.

ast_sorcery_retrieve_by_module_name is a new function that does a hashtab
lookup by module name.  It can be called by the future dialplan function.

res_pjsip/config_system needed a small change to share the main res_pjsip
sorcery instance.

tests/test_sorcery was updated to include a test for the registry.

(closes issue ASTERISK-22537)
Review: http://reviewboard.asterisk.org/r/3184/
........

Merged revisions 408518 from http://svn.asterisk.org/svn/asterisk/branches/12

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@408519 65c4cc65-6c06-0410-ace0-fbb531ad65f3
include/asterisk/sorcery.h
main/sorcery.c
res/res_pjsip.c
res/res_pjsip/config_system.c
res/res_pjsip/include/res_pjsip_private.h
tests/test_sorcery.c