ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitCommon/JSONSpirit/src/json_spirit_utils.h
Revision: 1.1
Committed: Tue Jun 29 15:47:51 2010 UTC (14 years, 10 months ago) by bendavid
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_032, Mit_031, Mit_025c_branch2, Mit_025c_branch1, Mit_030, Mit_029c, Mit_030_pre1, Mit_029a, Mit_029, Mit_029_pre1, Mit_028a, Mit_025c_branch0, Mit_028, Mit_027a, Mit_027, Mit_026, Mit_025e, Mit_025d, Mit_025c, Mit_025b, Mit_025a, Mit_025, Mit_025pre2, Mit_024b, Mit_025pre1, Mit_024a, Mit_024, Mit_023, Mit_022a, Mit_022, Mit_020d, TMit_020d, Mit_020c, Mit_021, Mit_021pre2, Mit_021pre1, Mit_020b, Mit_020a, Mit_020, Mit_020pre1, Mit_018, Mit_017, Mit_017pre3, Mit_017pre2, Mit_017pre1, V07-05-00, Mit_016, Mit_015b, Mit_015a, Mit_015, Mit_014e, Mit_014d, Mit_014c, HEAD
Branch point for: Mit_025c_branch
Log Message:
Add JSONSpirit library

File Contents

# User Rev Content
1 bendavid 1.1 #ifndef JSON_SPIRIT_UTILS
2     #define JSON_SPIRIT_UTILS
3    
4     // Copyright John W. Wilkinson 2007 - 2009.
5     // Distributed under the MIT License, see accompanying file LICENSE.txt
6    
7     // json spirit version 4.03
8    
9     #if defined(_MSC_VER) && (_MSC_VER >= 1020)
10     # pragma once
11     #endif
12    
13     #include "json_spirit_value.h"
14     #include <map>
15    
16     namespace json_spirit
17     {
18     template< class Obj_t, class Map_t >
19     void obj_to_map( const Obj_t& obj, Map_t& mp_obj )
20     {
21     mp_obj.clear();
22    
23     for( typename Obj_t::const_iterator i = obj.begin(); i != obj.end(); ++i )
24     {
25     mp_obj[ i->name_ ] = i->value_;
26     }
27     }
28    
29     template< class Obj_t, class Map_t >
30     void map_to_obj( const Map_t& mp_obj, Obj_t& obj )
31     {
32     obj.clear();
33    
34     for( typename Map_t::const_iterator i = mp_obj.begin(); i != mp_obj.end(); ++i )
35     {
36     obj.push_back( typename Obj_t::value_type( i->first, i->second ) );
37     }
38     }
39    
40     typedef std::map< std::string, Value > Mapped_obj;
41    
42     #ifndef BOOST_NO_STD_WSTRING
43     typedef std::map< std::wstring, wValue > wMapped_obj;
44     #endif
45    
46     template< class Object_type, class String_type >
47     const typename Object_type::value_type::Value_type& find_value( const Object_type& obj, const String_type& name )
48     {
49     for( typename Object_type::const_iterator i = obj.begin(); i != obj.end(); ++i )
50     {
51     if( i->name_ == name )
52     {
53     return i->value_;
54     }
55     }
56    
57     return Object_type::value_type::Value_type::null;
58     }
59     }
60    
61     #endif