#ifndef CEPH_JSON_H
#define CEPH_JSON_H
-#include <iosfwd>
#include <include/types.h>
-#include <list>
#ifdef _ASSERT_H
#define NEED_ASSERT_H
#include "Formatter.h"
-
using namespace json_spirit;
}
}
-template<class K, class V>
-void decode_json_obj(map<K, V>& m, JSONObj *obj)
+template<class K, class V, class C = std::less<K> >
+void decode_json_obj(map<K, V, C>& m, JSONObj *obj)
{
m.clear();
f->close_section();
}
-template<class K, class V>
-static void encode_json(const char *name, const std::map<K, V>& m, ceph::Formatter *f)
+template<class K, class V, class C = std::less<K> >
+static void encode_json(const char *name, const std::map<K, V, C>& m, ceph::Formatter *f)
{
f->open_array_section(name);
- for (typename std::map<K, V>::const_iterator i = m.begin(); i != m.end(); ++i) {
+ for (typename std::map<K, V, C>::const_iterator i = m.begin(); i != m.end(); ++i) {
f->open_object_section("entry");
encode_json("key", i->first, f);
encode_json("val", i->second, f);