aboutsummaryrefslogtreecommitdiffstats
path: root/json.h
diff options
context:
space:
mode:
authoripknHama <ipknhama@gmail.com>2014-04-20 05:41:53 +0900
committeripknHama <ipknhama@gmail.com>2014-04-20 17:45:59 +0900
commit5cdffdf9f75997bfa821203123305b9f8c24b463 (patch)
treeb09e33d3888cebadda2e33d4c3b7813a2165b1d5 /json.h
parentc6656ab314e0cef54f47c4fa3af342bd6564535a (diff)
downloadcrow-5cdffdf9f75997bfa821203123305b9f8c24b463.tar.gz
crow-5cdffdf9f75997bfa821203123305b9f8c24b463.zip
update json interface
Diffstat (limited to 'json.h')
-rw-r--r--json.h36
1 files changed, 12 insertions, 24 deletions
diff --git a/json.h b/json.h
index f6ea2d3..b46bf8a 100644
--- a/json.h
+++ b/json.h
@@ -53,7 +53,7 @@ namespace flask
};
class rvalue;
- rvalue load_copy(const char* data, size_t size);
+ rvalue load(const char* data, size_t size);
namespace detail
{
@@ -135,7 +135,7 @@ namespace flask
length_ = length;
owned_ = 1;
}
- friend rvalue flask::json::load_copy(const char* data, size_t size);
+ friend rvalue flask::json::load(const char* data, size_t size);
};
bool operator < (const r_string& l, const r_string& r)
@@ -470,8 +470,8 @@ namespace flask
type t_;
mutable uint8_t option_{0};
- friend rvalue load_nocopy(const char* data, size_t size);
- friend rvalue load_copy(const char* data, size_t size);
+ friend rvalue load_nocopy_internal(const char* data, size_t size);
+ friend rvalue load(const char* data, size_t size);
friend std::ostream& operator <<(std::ostream& os, const rvalue& r)
{
switch(r.t_)
@@ -560,7 +560,7 @@ namespace flask
//inline rvalue decode(const std::string& s)
//{
//}
- inline rvalue load_nocopy(const char* data, size_t size)
+ inline rvalue load_nocopy_internal(const char* data, size_t size)
{
//static const char* escaped = "\"\\/\b\f\n\r\t";
struct Parser
@@ -905,9 +905,8 @@ namespace flask
rvalue parse()
{
- //auto ret = decode_object();
ws_skip();
- auto ret = decode_value();
+ auto ret = decode_object(); // or decode value?
ws_skip();
if (*data != '\0')
ret.set_error();
@@ -918,11 +917,11 @@ namespace flask
};
return Parser(data, size).parse();
}
- inline rvalue load_copy(const char* data, size_t size)
+ inline rvalue load(const char* data, size_t size)
{
char* s = new char[size+1];
memcpy(s, data, size+1);
- auto ret = load_nocopy(s, size);
+ auto ret = load_nocopy_internal(s, size);
if (ret)
ret.key_.force(s, size);
else
@@ -930,27 +929,16 @@ namespace flask
return ret;
}
- inline rvalue load_copy(const char* data)
+ inline rvalue load(const char* data)
{
- return load_copy(data, strlen(data));
+ return load(data, strlen(data));
}
- inline rvalue load_copy(const std::string& str)
+ inline rvalue load(const std::string& str)
{
- return load_copy(str.data(), str.size());
+ return load(str.data(), str.size());
}
- inline rvalue load_nocopy(const char* data)
- {
- return load_nocopy(data, strlen(data));
- }
-
- inline rvalue load_nocopy(const std::string& str)
- {
- return load_nocopy(str.data(), str.size());
- }
-
-
class wvalue
{
public: