From: Yehuda Sadeh Date: Thu, 19 Nov 2015 18:59:30 +0000 (-0800) Subject: ceph_json: add deque encode/decode X-Git-Tag: v10.1.0~354^2~188 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=5aa81b9755c2dbed3da2159393058005a5730b3d;p=ceph.git ceph_json: add deque encode/decode Signed-off-by: Yehuda Sadeh --- diff --git a/src/common/ceph_json.h b/src/common/ceph_json.h index 35b6dae40504..a812d7af1a26 100644 --- a/src/common/ceph_json.h +++ b/src/common/ceph_json.h @@ -164,6 +164,21 @@ void decode_json_obj(list& l, JSONObj *obj) } } +template +void decode_json_obj(deque& l, JSONObj *obj) +{ + l.clear(); + + JSONObjIter iter = obj->find_first(); + + for (; !iter.end(); ++iter) { + T val; + JSONObj *o = *iter; + decode_json_obj(val, o); + l.push_back(val); + } +} + template void decode_json_obj(set& l, JSONObj *obj) { @@ -342,6 +357,14 @@ static void encode_json(const char *name, const std::list& l, ceph::Formatter f->close_section(); } template +static void encode_json(const char *name, const std::deque& l, ceph::Formatter *f) +{ + f->open_array_section(name); + for (typename std::deque::const_iterator iter = l.begin(); iter != l.end(); ++iter) { + encode_json("obj", *iter, f); + } + f->close_section(); +}template static void encode_json(const char *name, const std::set& l, ceph::Formatter *f) { f->open_array_section(name);