qdb_request::slice eatAndConvertBuffer(void)
        {
            auto buf = eatObject();

            qdb_request::slice res;

            if (buf.second)
            {
                res.begin = node::Buffer::Data(buf.first);
                res.size = node::Buffer::Length(buf.first);   
            }
            else
            {
                res.begin = nullptr;
                res.size = 0;
            }

            return res;
        }
Exemple #2
0
		static Value eatValue(std::istream& stream)
		{
			ltrim(stream);
			char token = stream.get();
			if (token == '{')
				return eatObject(stream);
			if (token == '[')
				return eatArray(stream);
			if ((token >= '0' && token <= '9') || token == '.' || token == '-')
				return eatNumeric(stream, token);
			if (token == '"')
				return eatString(stream);
			if (token == 't' || token == 'f')
				return eatBool(stream);
			if (token == 'n')
				return eatNull(stream);
			if (token == '/')
			{
				eatComment(stream);
				return eatValue(stream);
			}
			throw "Unable to parse json";
		};