diff options
author | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2013-03-15 10:58:36 +0200 |
---|---|---|
committer | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2013-03-15 10:58:36 +0200 |
commit | c72a57b99c93a14cdf924771455a74aa358227c6 (patch) | |
tree | 25407e84c18cdddc05ec7b3d9ce0b0c3541ce6a9 /acf/util.lua | |
parent | fe648009635c8b744c51303020fd0b3b9cfe83c9 (diff) | |
download | aconf-c72a57b99c93a14cdf924771455a74aa358227c6.tar.bz2 aconf-c72a57b99c93a14cdf924771455a74aa358227c6.tar.xz |
improved handling of nested transactions
add nested transaction support to protocol
allow deferring validation to parent transaction
process each update request within a nested transaction
Diffstat (limited to 'acf/util.lua')
-rw-r--r-- | acf/util.lua | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/acf/util.lua b/acf/util.lua index 9788c81..9ca287c 100644 --- a/acf/util.lua +++ b/acf/util.lua @@ -10,11 +10,15 @@ function setdefault(t, k, v) return t[k] end -function setdefaults(dst, src) - for k, v in pairs(src) do if dst[k] == nil then dst[k] = v end end +function update(dst, src, preserve) + for k, v in pairs(src) do + if not preserve or dst[k] == nil then dst[k] = v end + end return dst end +function setdefaults(dst, src) return update(dst, src, true) end + function copy(var) return type(var) == 'table' and setdefaults({}, var) or var end |