Skip to content
Snippets Groups Projects
  • Kevin Harwell's avatar
    b31ac839
    mwi: Update the MWI core to use stasis_state API · b31ac839
    Kevin Harwell authored
    ** Note **
    
    This patch is meant to be the minimum needed in order for the MWI core to use
    the now underlying stasis_state module. As such it does not completely remove
    its reliance on the stasis_cache. Doing so has allowed current consumers to
    not have to change, and update those code paths for this patch. When time
    allows, subsequent patches can/will be made to those consumers to take advantage
    of some of the new MWI API included here. Thus, eventually and ultimately
    removing MWI dependency on the stasis_cache.
    
    ** End Note **
    
    This patch makes it so the MWI core now takes advantage of the new stasis_state
    API. Consumers of MWI should no longer need to depend upon stasis topic pooling,
    and the stasis cache directly. Similar functionality and implementation details
    have now been pushed into the stasis_state module. However, all MWI state should
    be accessed via the MWI API itself.
    
    As such a few new methods, and constructs have been added to the MWI core that
    facilitate consumer publishing, subscribing, and iterating over MWI state data.
    
    * ast_mwi_subscriber *
    
    Created via ast_mwi_add_subscriber, a subscriber subscribes to a given mailbox
    in order to receive updates about the given mailbox. Adding a subscriber will
    create the underlying topic, and associated state data if those do not already
    exist for it. The topic, and last known state data is guaranteed to exist for
    the lifetime of the subscriber.
    
    * ast_mwi_publisher *
    
    Before publishing to a particular topic a publisher should be created. This can
    be achieved by using ast_mwi_add_publisher. Publishing to a mailbox should then
    be done using one of the MWI publish functions. This ensures the message is
    published to the appropriate topic, and the last known state is maintained.
    
    * ast_mwi_observer *
    
    Add an observer in order to watch for particular MWI module related events. For
    instance if a submodule needs to know when a subscription is added to any
    mailbox an observer can be added to watch for that.
    
    * other *
    
    Urgent message count is now part of the published MWI state object. Also state
    can be iterated over using defined callbacks.
    
    ASTERISK-28442
    
    Change-Id: I93f935f9090cd5ddff6d4bc80ff90703c05cf776
    b31ac839
    History
    mwi: Update the MWI core to use stasis_state API
    Kevin Harwell authored
    ** Note **
    
    This patch is meant to be the minimum needed in order for the MWI core to use
    the now underlying stasis_state module. As such it does not completely remove
    its reliance on the stasis_cache. Doing so has allowed current consumers to
    not have to change, and update those code paths for this patch. When time
    allows, subsequent patches can/will be made to those consumers to take advantage
    of some of the new MWI API included here. Thus, eventually and ultimately
    removing MWI dependency on the stasis_cache.
    
    ** End Note **
    
    This patch makes it so the MWI core now takes advantage of the new stasis_state
    API. Consumers of MWI should no longer need to depend upon stasis topic pooling,
    and the stasis cache directly. Similar functionality and implementation details
    have now been pushed into the stasis_state module. However, all MWI state should
    be accessed via the MWI API itself.
    
    As such a few new methods, and constructs have been added to the MWI core that
    facilitate consumer publishing, subscribing, and iterating over MWI state data.
    
    * ast_mwi_subscriber *
    
    Created via ast_mwi_add_subscriber, a subscriber subscribes to a given mailbox
    in order to receive updates about the given mailbox. Adding a subscriber will
    create the underlying topic, and associated state data if those do not already
    exist for it. The topic, and last known state data is guaranteed to exist for
    the lifetime of the subscriber.
    
    * ast_mwi_publisher *
    
    Before publishing to a particular topic a publisher should be created. This can
    be achieved by using ast_mwi_add_publisher. Publishing to a mailbox should then
    be done using one of the MWI publish functions. This ensures the message is
    published to the appropriate topic, and the last known state is maintained.
    
    * ast_mwi_observer *
    
    Add an observer in order to watch for particular MWI module related events. For
    instance if a submodule needs to know when a subscription is added to any
    mailbox an observer can be added to watch for that.
    
    * other *
    
    Urgent message count is now part of the published MWI state object. Also state
    can be iterated over using defined callbacks.
    
    ASTERISK-28442
    
    Change-Id: I93f935f9090cd5ddff6d4bc80ff90703c05cf776