summaryrefslogtreecommitdiffstats
path: root/staging_vespalib
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@broadpark.no>2019-03-16 19:44:11 +0100
committerTor Egge <Tor.Egge@broadpark.no>2019-03-16 19:59:53 +0100
commit93f367c4b65696dcfc721540aa01008f9f90dd31 (patch)
tree4b7a66a0ba9dc74b4a57e9813155a08ef86b7c44 /staging_vespalib
parentc27b4c34fc7b225e5b99629861fce5f5929af824 (diff)
Use fundamental integer types in vespalib::JsonStream.
Diffstat (limited to 'staging_vespalib')
-rw-r--r--staging_vespalib/src/tests/json/json.cpp20
-rw-r--r--staging_vespalib/src/vespa/vespalib/util/jsonstream.cpp8
-rw-r--r--staging_vespalib/src/vespa/vespalib/util/jsonstream.h16
3 files changed, 24 insertions, 20 deletions
diff --git a/staging_vespalib/src/tests/json/json.cpp b/staging_vespalib/src/tests/json/json.cpp
index d7d9d0ac332..79709c6f8b9 100644
--- a/staging_vespalib/src/tests/json/json.cpp
+++ b/staging_vespalib/src/tests/json/json.cpp
@@ -276,22 +276,22 @@ namespace {
struct Builder : public vespalib::JsonStreamTypes {
void build(JsonStream& s) {
s << Object() << "k1" << Object()
- << "k1.1" << 1l
+ << "k1.1" << 1
<< "k1.2" << Array()
- << 2l << 3l << End()
+ << 2l << 3ll << End()
<< End()
<< "k2" << Object()
<< "k2.1" << Object()
- << "k2.1.1" << 4l
+ << "k2.1.1" << 4u
<< "k2.1.2" << Array()
- << 5l << 6l << End()
+ << 5ul << 6ull << End()
<< End()
<< End()
<< "k3" << Array()
<< Object()
- << "k3.1" << 7l
+ << "k3.1" << -7
<< "k3.2" << Array()
- << 8l << 9l << End()
+ << -8l << -9ll << End()
<< End()
<< Object()
<< "k3.1" << 10l
@@ -312,7 +312,7 @@ JSONTest::testJsonStream()
Builder b;
b.build(stream);
stream.finalize();
- EXPECT_EQUAL(as.str(), "{\"k1\":{\"k1.1\":1,\"k1.2\":[2,3]},\"k2\":{\"k2.1\":{\"k2.1.1\":4,\"k2.1.2\":[5,6]}},\"k3\":[{\"k3.1\":7,\"k3.2\":[8,9]},{\"k3.1\":10,\"k3.2\":[11,12]}]}");
+ EXPECT_EQUAL(as.str(), "{\"k1\":{\"k1.1\":1,\"k1.2\":[2,3]},\"k2\":{\"k2.1\":{\"k2.1.1\":4,\"k2.1.2\":[5,6]}},\"k3\":[{\"k3.1\":-7,\"k3.2\":[-8,-9]},{\"k3.1\":10,\"k3.2\":[11,12]}]}");
}
void
@@ -397,14 +397,14 @@ JSONTest::testJsonStreamErrors()
vespalib::JsonStream stream(as);
stream << Object() << End() << 13;
} catch (vespalib::JsonStreamException& e) {
- EXPECT_EQUAL("Invalid state on call: Stream already finalized. Can't add an int64_t value. (Finalized)", e.getReason());
+ EXPECT_EQUAL("Invalid state on call: Stream already finalized. Can't add a long long value. (Finalized)", e.getReason());
}
try{
vespalib::asciistream as;
vespalib::JsonStream stream(as);
- stream << Object() << End() << uint64_t(13);
+ stream << Object() << End() << 13u;
} catch (vespalib::JsonStreamException& e) {
- EXPECT_EQUAL("Invalid state on call: Stream already finalized. Can't add a uint64_t value. (Finalized)", e.getReason());
+ EXPECT_EQUAL("Invalid state on call: Stream already finalized. Can't add an unsigned long long value. (Finalized)", e.getReason());
}
try{
vespalib::asciistream as;
diff --git a/staging_vespalib/src/vespa/vespalib/util/jsonstream.cpp b/staging_vespalib/src/vespa/vespalib/util/jsonstream.cpp
index d2fae8f62a7..1feeca489eb 100644
--- a/staging_vespalib/src/vespa/vespalib/util/jsonstream.cpp
+++ b/staging_vespalib/src/vespa/vespalib/util/jsonstream.cpp
@@ -150,10 +150,10 @@ JsonStream::operator<<(float value)
}
JsonStream&
-JsonStream::operator<<(int64_t value)
+JsonStream::operator<<(long long value)
{
if (_state.empty()) {
- fail("Stream already finalized. Can't add an int64_t value.");
+ fail("Stream already finalized. Can't add a long long value.");
}
switch (top().state) {
case State::OBJECT_EXPECTING_KEY: {
@@ -180,10 +180,10 @@ JsonStream::operator<<(int64_t value)
}
JsonStream&
-JsonStream::operator<<(uint64_t value)
+JsonStream::operator<<(unsigned long long value)
{
if (_state.empty()) {
- fail("Stream already finalized. Can't add a uint64_t value.");
+ fail("Stream already finalized. Can't add an unsigned long long value.");
}
switch (top().state) {
case State::OBJECT_EXPECTING_KEY: {
diff --git a/staging_vespalib/src/vespa/vespalib/util/jsonstream.h b/staging_vespalib/src/vespa/vespalib/util/jsonstream.h
index 8dfde992e4d..872e6f8ee0f 100644
--- a/staging_vespalib/src/vespa/vespalib/util/jsonstream.h
+++ b/staging_vespalib/src/vespa/vespalib/util/jsonstream.h
@@ -69,18 +69,22 @@ public:
JsonStream& operator<<(bool);
JsonStream& operator<<(double);
JsonStream& operator<<(float); // Less precision that double
- JsonStream& operator<<(int64_t);
- JsonStream& operator<<(uint64_t);
+ JsonStream& operator<<(long long);
+ JsonStream& operator<<(unsigned long long);
JsonStream& operator<<(const Object&);
JsonStream& operator<<(const Array&);
JsonStream& operator<<(const End&);
// Additional functions provided to let compiler work out correct
// function without requiring user to cast their value
- JsonStream& operator<<(uint32_t v)
- { return operator<<(static_cast<int64_t>(v)); }
- JsonStream& operator<<(int32_t v)
- { return operator<<(static_cast<int64_t>(v)); }
+ JsonStream& operator<<(unsigned long v)
+ { return operator<<(static_cast<unsigned long long>(v)); }
+ JsonStream& operator<<(unsigned int v)
+ { return operator<<(static_cast<unsigned long long>(v)); }
+ JsonStream& operator<<(long v)
+ { return operator<<(static_cast<long long>(v)); }
+ JsonStream& operator<<(int v)
+ { return operator<<(static_cast<long long>(v)); }
JsonStream& operator<<(const char* c)
{ return operator<<(stringref(c)); }