bucket: Add clone/staleness operations for ast_bucket/ast_bucket_file
authorMatt Jordan <mjordan@digium.com>
Sat, 20 Jun 2015 18:54:17 +0000 (13:54 -0500)
committerMatt Jordan <mjordan@digium.com>
Sun, 5 Jul 2015 01:32:09 +0000 (20:32 -0500)
commitef8d3f6506dbb63a0d54ae0ca25b8646ef009001
tree83ab3c128a5e6de28de5c72553a06e1df705c20b
parentb178f8701bee0b56b3648a3c63bff1cd8ee0bc6d
bucket: Add clone/staleness operations for ast_bucket/ast_bucket_file

This patch enhances the bucket API in two ways.

First, since ast_bucket and ast_bucket_file instances are immutable, a 'clone'
operation has been added that provides a 'clone' of an existing
ast_bucket/ast_bucket_file object. Note that this makes use of the
ast_sorcery_copy operation, along with the copy callback handler on the
"bucket" and "file" object types for the bucket sorcery instance.

Second, there is a need for the bucket API to ask a wizard if an object
is stale. This is particularly useful with the upcoming media cache
enhancements, where we want to ask the backing data storage if the
object we are currently operating on has known updates. This patch adds
API calls for ast_bucket and ast_bucket_file objects, which callback
into their respective sorcery wizards via the sorcery API.

Unit tests have also been added to cover the respective
ast_bucket/ast_bucket_file clone and staleness operations.

Change-Id: Ib0240ba915ece313f1678a085a716021d75d6b4a
include/asterisk/bucket.h
main/bucket.c
tests/test_bucket.c