Merge pull request #1889 from mwkroening/extract-jsoncpp
Remove custom functions from jsoncpp headers
This commit is contained in:
Vendored
-7
@@ -234,13 +234,6 @@ namespace Json {
|
|||||||
double asDouble() const;
|
double asDouble() const;
|
||||||
bool asBool() const;
|
bool asBool() const;
|
||||||
|
|
||||||
bool TryGet( std::string &out ) const { if(!isString()) return false; out=asString(); return true; }
|
|
||||||
bool TryGet( int &out ) const { if(!isInt()) return false; out=asInt(); return true; }
|
|
||||||
bool TryGet( UInt &out ) const { if(!isUInt()) return false; out=asUInt(); return true; }
|
|
||||||
bool TryGet( double &out ) const { if(!isDouble()) return false; out=asDouble(); return true; }
|
|
||||||
bool TryGet( float &out ) const { if(!isDouble()) return false; out=(float)asDouble(); return true; }
|
|
||||||
bool TryGet( bool &out ) const { if(!isBool()) return false; out=asBool(); return true; }
|
|
||||||
|
|
||||||
bool isNull() const;
|
bool isNull() const;
|
||||||
bool isBool() const;
|
bool isBool() const;
|
||||||
bool isInt() const;
|
bool isInt() const;
|
||||||
|
|||||||
+3
-4
@@ -1,5 +1,5 @@
|
|||||||
#include "json/reader.h"
|
#include <json/reader.h>
|
||||||
#include "json/value.h"
|
#include <json/value.h>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
#include <cstdio>
|
#include <cstdio>
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
@@ -877,8 +877,7 @@ std::istream& operator>>( std::istream &sin, Value &root )
|
|||||||
Json::Reader reader;
|
Json::Reader reader;
|
||||||
bool ok = reader.parse(sin, root, true);
|
bool ok = reader.parse(sin, root, true);
|
||||||
//JSON_ASSERT( ok );
|
//JSON_ASSERT( ok );
|
||||||
// if (!ok) throw std::runtime_error(reader.getFormatedErrorMessages());
|
if (!ok) throw std::runtime_error(reader.getFormatedErrorMessages());
|
||||||
assert(ok);
|
|
||||||
return sin;
|
return sin;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -1,6 +1,6 @@
|
|||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include "json/value.h"
|
#include <json/value.h>
|
||||||
#include "json/writer.h"
|
#include <json/writer.h>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
@@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
#define JSON_ASSERT_UNREACHABLE assert( false )
|
#define JSON_ASSERT_UNREACHABLE assert( false )
|
||||||
#define JSON_ASSERT( condition ) assert( condition ); // @todo <= change this into an exception throw
|
#define JSON_ASSERT( condition ) assert( condition ); // @todo <= change this into an exception throw
|
||||||
#define JSON_ASSERT_MESSAGE( condition, message ) if (!( condition )) assert(false); /* throw std::runtime_error( message ); */
|
#define JSON_ASSERT_MESSAGE( condition, message ) if (!( condition )) throw std::runtime_error( message );
|
||||||
|
|
||||||
namespace Json {
|
namespace Json {
|
||||||
|
|
||||||
|
|||||||
+4
-4
@@ -1,4 +1,4 @@
|
|||||||
#include "json/writer.h"
|
#include <json/writer.h>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
@@ -111,7 +111,7 @@ std::string valueToString( bool value )
|
|||||||
std::string valueToQuotedString( const char *value )
|
std::string valueToQuotedString( const char *value )
|
||||||
{
|
{
|
||||||
// Not sure how to handle unicode...
|
// Not sure how to handle unicode...
|
||||||
if (strpbrk(value, "\"\\\b\f\n\r\t") == nullptr && !containsControlCharacter( value ))
|
if (strpbrk(value, "\"\\\b\f\n\r\t") == NULL && !containsControlCharacter( value ))
|
||||||
return std::string("\"") + value + "\"";
|
return std::string("\"") + value + "\"";
|
||||||
// We have to walk value and escape any special characters.
|
// We have to walk value and escape any special characters.
|
||||||
// Appending to std::string is not efficient, but this should be rare.
|
// Appending to std::string is not efficient, but this should be rare.
|
||||||
@@ -542,7 +542,7 @@ StyledWriter::normalizeEOL( const std::string &text )
|
|||||||
// //////////////////////////////////////////////////////////////////
|
// //////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
StyledStreamWriter::StyledStreamWriter( std::string indentation )
|
StyledStreamWriter::StyledStreamWriter( std::string indentation )
|
||||||
: document_(nullptr)
|
: document_(NULL)
|
||||||
, rightMargin_( 74 )
|
, rightMargin_( 74 )
|
||||||
, indentation_( indentation )
|
, indentation_( indentation )
|
||||||
{
|
{
|
||||||
@@ -559,7 +559,7 @@ StyledStreamWriter::write( std::ostream &out, const Value &root )
|
|||||||
writeValue( root );
|
writeValue( root );
|
||||||
writeCommentAfterValueOnSameLine( root );
|
writeCommentAfterValueOnSameLine( root );
|
||||||
*document_ << "\n";
|
*document_ << "\n";
|
||||||
document_ = nullptr; // Forget the stream, for safety.
|
document_ = NULL; // Forget the stream, for safety.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -75,6 +75,19 @@ bool JsonUtil::WriteFile(const Json::Value &root, const RString &sFile, bool bMi
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::vector<RString> JsonUtil::DeserializeArrayStrings(const Json::Value &value)
|
||||||
|
{
|
||||||
|
std::vector<RString> values;
|
||||||
|
for(auto &&inner_value : value)
|
||||||
|
{
|
||||||
|
if(inner_value.isConvertibleTo(Json::stringValue))
|
||||||
|
{
|
||||||
|
values.push_back(inner_value.asString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return values;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* (c) 2001-2004 Chris Danford
|
* (c) 2001-2004 Chris Danford
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
|
|||||||
+2
-67
@@ -14,6 +14,8 @@ namespace JsonUtil
|
|||||||
|
|
||||||
bool WriteFile(const Json::Value &root, const RString &sFile, bool bMinified);
|
bool WriteFile(const Json::Value &root, const RString &sFile, bool bMinified);
|
||||||
|
|
||||||
|
std::vector<RString> DeserializeArrayStrings(const Json::Value &array);
|
||||||
|
|
||||||
template<class T>
|
template<class T>
|
||||||
static void SerializeVectorObjects(const vector<T> &v, void fn(const T &, Json::Value &), Json::Value &root)
|
static void SerializeVectorObjects(const vector<T> &v, void fn(const T &, Json::Value &), Json::Value &root)
|
||||||
{
|
{
|
||||||
@@ -195,57 +197,6 @@ namespace JsonUtil
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class T>
|
|
||||||
static void DeserializeArrayValues(vector<T> &v, const Json::Value &root)
|
|
||||||
{
|
|
||||||
v.clear();
|
|
||||||
for( unsigned i=0; i<root.size(); i++ )
|
|
||||||
{
|
|
||||||
T t;
|
|
||||||
if( root[i].TryGet( t ) )
|
|
||||||
v.push_back( t );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// don't pull in the set header here
|
|
||||||
template<typename S, typename T>
|
|
||||||
static void DeserializeArrayValuesIntoSet(S &s, const Json::Value &root)
|
|
||||||
{
|
|
||||||
s.clear();
|
|
||||||
for( unsigned i=0; i<root.size(); i++ )
|
|
||||||
{
|
|
||||||
T t;
|
|
||||||
if( root[i].TryGet( t ) )
|
|
||||||
s.insert( t );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename T>
|
|
||||||
static void DeserializeArrayValuesIntoVector(vector<T> &v, const Json::Value &root)
|
|
||||||
{
|
|
||||||
v.clear();
|
|
||||||
for( unsigned i=0; i<root.size(); i++ )
|
|
||||||
{
|
|
||||||
T t;
|
|
||||||
if( root[i].TryGet( t ) )
|
|
||||||
v.push_back( t );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename M>
|
|
||||||
static void DeserializeValueToValueMap(M &m, const Json::Value &root)
|
|
||||||
{
|
|
||||||
for( Json::Value::const_iterator iter = root.begin(); iter != root.end(); iter++ )
|
|
||||||
(*iter).TryGet( m[ iter.memberName() ] );
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename M, typename E, typename F>
|
|
||||||
static void DeserializeStringToValueMap(M &m, F fnToValue(E e), const Json::Value &root)
|
|
||||||
{
|
|
||||||
for( Json::Value::const_iterator iter = root.begin(); iter != root.end(); iter++ )
|
|
||||||
(*iter).TryGet( m[ fnToValue(iter.memberName()) ] );
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename M, typename E, typename F>
|
template <typename M, typename E, typename F>
|
||||||
static void DeserializeStringToObjectMap(M &m, F fnToValue(E e), const Json::Value &root)
|
static void DeserializeStringToObjectMap(M &m, F fnToValue(E e), const Json::Value &root)
|
||||||
{
|
{
|
||||||
@@ -272,22 +223,6 @@ namespace JsonUtil
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename K, typename V>
|
|
||||||
static void DeserializeObjectToValueMapAsArray(map<K,V> &m, const RString &sKeyName, const RString &sValueName, const Json::Value &root)
|
|
||||||
{
|
|
||||||
for( unsigned i=0; i<root.size(); i++ )
|
|
||||||
{
|
|
||||||
const Json::Value &root2 = root[i];
|
|
||||||
K k;
|
|
||||||
if( !k.Deserialize( root2[sKeyName] ) )
|
|
||||||
continue;
|
|
||||||
V v;
|
|
||||||
if( !root2[sValueName].TryGet(v) )
|
|
||||||
continue;
|
|
||||||
m[k] = v;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
template<class T>
|
template<class T>
|
||||||
static void DeserializeVectorValues(vector<T> &v, const Json::Value &root)
|
static void DeserializeVectorValues(vector<T> &v, const Json::Value &root)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -214,7 +214,7 @@ static void Deserialize( Song &out, const Json::Value &root )
|
|||||||
JsonUtil::DeserializeVectorObjects( vBgc, Deserialize, root["ForegroundChanges"] );
|
JsonUtil::DeserializeVectorObjects( vBgc, Deserialize, root["ForegroundChanges"] );
|
||||||
}
|
}
|
||||||
|
|
||||||
JsonUtil::DeserializeArrayValuesIntoVector( out.m_vsKeysoundFile, root["KeySounds"] );
|
out.m_vsKeysoundFile = JsonUtil::DeserializeArrayStrings(root["KeySounds"]);
|
||||||
|
|
||||||
{
|
{
|
||||||
vector<Steps*> vpSteps;
|
vector<Steps*> vpSteps;
|
||||||
|
|||||||
Reference in New Issue
Block a user