stasis cache: Enhance to keep track of an item from different entities.
authorRichard Mudgett <rmudgett@digium.com>
Fri, 7 Mar 2014 20:41:13 +0000 (20:41 +0000)
committerRichard Mudgett <rmudgett@digium.com>
Fri, 7 Mar 2014 20:41:13 +0000 (20:41 +0000)
commit4ad1245cb5fd9ea0f54c866448ad5c18bcb84fa5
treecbf0d2bd6a65e63d1d9a37193754d6476770ad54
parentecbd0527417115936b06b57be1a07b3607e31a85
stasis cache: Enhance to keep track of an item from different entities.

A stasis cache entry now contains more than a single message/snapshot.  It
contains messages/snapshots for the local entity as well as any remote
entities that post to the cached item.  In addition callbacks can be
supplied when the cache is created to compute and post the aggregate
message/snapshot representing all entities stored in the cache entry.

* All stasis messages now have an eid to indicate what entity posted it.

* The stasis cache enhancements allow device state to cache and aggregate
the device states from local and remote entities in a single operation.
The cached aggregate device state is available immediately after it is
posted to the stasis bus.  This improves performance by eliminating a
cache dump and associated ao2 container traversals to calculate the
aggregate state.

(closes issue ASTERISK-23204)
Reported by: Mark Michelson

Review: https://reviewboard.asterisk.org/r/3281/
........

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

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@410185 65c4cc65-6c06-0410-ace0-fbb531ad65f3
include/asterisk/devicestate.h
include/asterisk/stasis.h
main/app.c
main/devicestate.c
main/stasis_cache.c
main/stasis_message.c
tests/test_devicestate.c
tests/test_stasis.c