From adb1b586274b920a78ca9dc4d728a9086510c2dd Mon Sep 17 00:00:00 2001 From: Petri Lehtinen Date: Thu, 4 Feb 2010 21:07:02 +0200 Subject: [PATCH] C++: Add Value::dump_file(), load_file() and loads() that take an std::string --- src/jansson.hpp | 3 +++ src/jansson.ipp | 13 +++++++++++++ 2 files changed, 16 insertions(+) diff --git a/src/jansson.hpp b/src/jansson.hpp index de55b75..bf723bd 100644 --- a/src/jansson.hpp +++ b/src/jansson.hpp @@ -128,6 +128,7 @@ namespace json { // write the value to a file inline int dump_file(const char* path, int flags = 0) const; + inline int dump_file(const std::string& path, int flags = 0) const; // write the value to a string (caller must deallocate with free()!) inline char* dumps(int flags = 0) const; @@ -289,9 +290,11 @@ namespace json { // load a file as a JSON value inline Value load_file(const char* path, json_error_t* error = 0); + inline Value load_file(const std::string& path, json_error_t* error = 0); // load a string as a JSON value inline Value loads(const char* string, json_error_t* error = 0); + inline Value loads(const std::string& string, json_error_t* error = 0); } // namespace json diff --git a/src/jansson.ipp b/src/jansson.ipp index fcb4a0c..5938f0f 100644 --- a/src/jansson.ipp +++ b/src/jansson.ipp @@ -274,6 +274,11 @@ namespace json { return json_dump_file(_Base::as_json(), path, flags); } + template + int ValueBase<_Base>::dump_file(const std::string& path, int flags) const { + return dump_file(path.c_str(), flags); + } + // write the value to a string (caller must deallocate with free()!) template char* ValueBase<_Base>::dumps(int flags) const { @@ -439,11 +444,19 @@ namespace json { return Value::take_ownership(json_load_file(path, error)); } + Value load_file(const std::string& path, json_error_t* error) { + return load_file(path.c_str(), error); + } + // load a string as a JSON value Value loads(const char* string, json_error_t* error) { return Value::take_ownership(json_loads(string, error)); } + Value loads(const std::string& string, json_error_t* error) { + return loads(string.c_str(), error); + } + } // namespace json // stream JSON value out -- 2.1.4