experimental-genesis 1
experimental-genesis 2
experimental-genesis 3
experimental-genesis 4
experimental-genesis 5
experimental-genesis 6
experimental-genesis 7
experimental-genesis 8
experimental-genesis 9
experimental-genesis 10
experimental-genesis 11
experimental-genesis 12
experimental-genesis 13
experimental-genesis 14
experimental-genesis 15
experimental-genesis 16
experimental-genesis 17
experimental-genesis 18
experimental-genesis 19
experimental-genesis 20
experimental-genesis 21
experimental-genesis 22
experimental-genesis 23
experimental-genesis 24
experimental-genesis 25
experimental-genesis 26
experimental-genesis 27
experimental-genesis 28
experimental-genesis 29
experimental-genesis 30
experimental-genesis 31
experimental-genesis 32 #ifndef JSON_SPIRIT_READ_STREAM
experimental-genesis 33 #define JSON_SPIRIT_READ_STREAM
experimental-genesis 34
experimental-genesis 35
experimental-genesis 36
experimental-genesis 37
experimental-genesis 38
experimental-genesis 39
experimental-genesis 40 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
experimental-genesis 41 # pragma once
experimental-genesis 42 #endif
experimental-genesis 43
experimental-genesis 44 #include "json_spirit_reader_template.h"
experimental-genesis 45
experimental-genesis 46 namespace json_spirit
experimental-genesis 47 {
experimental-genesis 48
experimental-genesis 49
experimental-genesis 50
experimental-genesis 51
experimental-genesis 52 template< class Istream_type, class Value_type >
experimental-genesis 53 class Stream_reader
experimental-genesis 54 {
experimental-genesis 55 public:
experimental-genesis 56
experimental-genesis 57 Stream_reader( Istream_type& is )
experimental-genesis 58 : iters_( is )
experimental-genesis 59 {
experimental-genesis 60 }
experimental-genesis 61
experimental-genesis 62 bool read_next( Value_type& value )
experimental-genesis 63 {
experimental-genesis 64 return read_range( iters_.begin_, iters_.end_, value );
experimental-genesis 65 }
experimental-genesis 66
experimental-genesis 67 private:
experimental-genesis 68
experimental-genesis 69 typedef Multi_pass_iters< Istream_type > Mp_iters;
experimental-genesis 70
experimental-genesis 71 Mp_iters iters_;
experimental-genesis 72 };
experimental-genesis 73
experimental-genesis 74 template< class Istream_type, class Value_type >
experimental-genesis 75 class Stream_reader_thrower
experimental-genesis 76 {
experimental-genesis 77 public:
experimental-genesis 78
experimental-genesis 79 Stream_reader_thrower( Istream_type& is )
experimental-genesis 80 : iters_( is )
experimental-genesis 81 , posn_begin_( iters_.begin_, iters_.end_ )
experimental-genesis 82 , posn_end_( iters_.end_, iters_.end_ )
experimental-genesis 83 {
experimental-genesis 84 }
experimental-genesis 85
experimental-genesis 86 void read_next( Value_type& value )
experimental-genesis 87 {
experimental-genesis 88 posn_begin_ = read_range_or_throw( posn_begin_, posn_end_, value );
experimental-genesis 89 }
experimental-genesis 90
experimental-genesis 91 private:
experimental-genesis 92
experimental-genesis 93 typedef Multi_pass_iters< Istream_type > Mp_iters;
experimental-genesis 94 typedef spirit_namespace::position_iterator< typename Mp_iters::Mp_iter > Posn_iter_t;
experimental-genesis 95
experimental-genesis 96 Mp_iters iters_;
experimental-genesis 97 Posn_iter_t posn_begin_, posn_end_;
experimental-genesis 98 };
experimental-genesis 99 }
experimental-genesis 100
experimental-genesis 101 #endif