-
+ A90E207B33E0F891B5453C1C2E186B25898DAF0DB18B2E4F097189D8304A42518BFABA8760C2112FF8CC8BE2840C5A58BAEFC79A76550272EA73C505E67D2FB6
bitcoin/src/json/json_spirit_utils.h
(0 . 0)(1 . 92)
8293 // /****************************\
8294 // * EXPERIMENTAL BRANCH. *
8295 // * FOR LABORATORY USE ONLY. *
8296 // ********************************
8297 // ************
8298 // **************
8299 // ****************
8300 // **** **** ****
8301 // *** *** ***
8302 // *** *** ***
8303 // *** * * **
8304 // ******** ********
8305 // ******* ******
8306 // *** **
8307 // * ******* **
8308 // ** * * * * *
8309 // ** * * ***
8310 // **** * * * * ****
8311 // **** *** * * ** ***
8312 // **** ********* ******
8313 // ******* ***** *******
8314 // ********* ****** **
8315 // ** ****** ******
8316 // ** ******* **
8317 // ** ******* ***
8318 // **** ******** ************
8319 // ************ ************
8320 // ******** *******
8321 // ****** ****
8322 // *** ***
8323 // ********************************
8324 #ifndef JSON_SPIRIT_UTILS
8325 #define JSON_SPIRIT_UTILS
8326
8327 // Copyright John W. Wilkinson 2007 - 2009.
8328 // Distributed under the MIT License, see accompanying file LICENSE.txt
8329
8330 // json spirit version 4.03
8331
8332 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
8333 # pragma once
8334 #endif
8335
8336 #include "json_spirit_value.h"
8337 #include <map>
8338
8339 namespace json_spirit
8340 {
8341 template< class Obj_t, class Map_t >
8342 void obj_to_map( const Obj_t& obj, Map_t& mp_obj )
8343 {
8344 mp_obj.clear();
8345
8346 for( typename Obj_t::const_iterator i = obj.begin(); i != obj.end(); ++i )
8347 {
8348 mp_obj[ i->name_ ] = i->value_;
8349 }
8350 }
8351
8352 template< class Obj_t, class Map_t >
8353 void map_to_obj( const Map_t& mp_obj, Obj_t& obj )
8354 {
8355 obj.clear();
8356
8357 for( typename Map_t::const_iterator i = mp_obj.begin(); i != mp_obj.end(); ++i )
8358 {
8359 obj.push_back( typename Obj_t::value_type( i->first, i->second ) );
8360 }
8361 }
8362
8363 typedef std::map< std::string, Value > Mapped_obj;
8364
8365 #ifndef BOOST_NO_STD_WSTRING
8366 typedef std::map< std::wstring, wValue > wMapped_obj;
8367 #endif
8368
8369 template< class Object_type, class String_type >
8370 const typename Object_type::value_type::Value_type& find_value( const Object_type& obj, const String_type& name )
8371 {
8372 for( typename Object_type::const_iterator i = obj.begin(); i != obj.end(); ++i )
8373 {
8374 if( i->name_ == name )
8375 {
8376 return i->value_;
8377 }
8378 }
8379
8380 return Object_type::value_type::Value_type::null;
8381 }
8382 }
8383
8384 #endif