From: Greg Farnum Date: Mon, 1 Jul 2013 19:33:18 +0000 (-0700) Subject: ceph_json: add a utime_t decoder X-Git-Tag: v0.67-rc1~128^2~18^2~7 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=7db133ddaf08256bbfc7c5c68111ec3ebd9c8866;p=ceph.git ceph_json: add a utime_t decoder This needs to be cleaned up a bit as we don't actually want to import rgw_common into ceph_json (we'll need to pull the parse_date out of that and into somewhere more accessible/appropriate). Signed-off-by: Greg Farnum --- diff --git a/src/common/ceph_json.cc b/src/common/ceph_json.cc index 04b21206ce8b..516d263b6e1d 100644 --- a/src/common/ceph_json.cc +++ b/src/common/ceph_json.cc @@ -440,6 +440,18 @@ void decode_json_obj(bufferlist& val, JSONObj *obj) } } +void decode_json_obj(utime_t& val, JSONObj *obj) +{ + string s = obj->get_data(); + uint64_t epoch; + int r = utime_t::parse_date(s, &epoch); + if (r == 0) { + val.set_from_double(epoch); + } else { + throw JSONDecoder::err("failed to decode utime_t"); + } +} + void encode_json(const char *name, const string& val, Formatter *f) { f->dump_string(name, val); diff --git a/src/common/ceph_json.h b/src/common/ceph_json.h index e11834a3371e..67efeae0e2a1 100644 --- a/src/common/ceph_json.h +++ b/src/common/ceph_json.h @@ -135,6 +135,8 @@ void decode_json_obj(unsigned& val, JSONObj *obj); void decode_json_obj(int& val, JSONObj *obj); void decode_json_obj(bool& val, JSONObj *obj); void decode_json_obj(bufferlist& val, JSONObj *obj); +class utime_t; +void decode_json_obj(utime_t& val, JSONObj *obj); template void decode_json_obj(list& l, JSONObj *obj)