2121#include < memory>
2222#include < utility>
2323#include < bitcoin/network/define.hpp>
24+ #include < bitcoin/network/messages/json/json.hpp>
25+ #include < bitcoin/network/rpc/rpc.hpp>
2426
2527namespace libbitcoin {
2628namespace network {
@@ -36,7 +38,8 @@ BC_PUSH_WARNING(NO_POINTER_ARITHMETIC)
3638// rpc::body::reader
3739// ----------------------------------------------------------------------------
3840
39- size_t body::reader::put (const buffer_type& buffer, boost_code& ec) NOEXCEPT
41+ size_t body<rpc::request_t >::reader::
42+ put (const buffer_type& buffer, boost_code& ec) NOEXCEPT
4043{
4144 const auto size = buffer.size ();
4245 if (is_zero (size))
@@ -51,7 +54,7 @@ size_t body::reader::put(const buffer_type& buffer, boost_code& ec) NOEXCEPT
5154 return {};
5255 }
5356
54- const auto parsed = json::body ::reader::put (buffer, ec);
57+ const auto parsed = base ::reader::put (buffer, ec);
5558 if (ec || !parser_.done ())
5659 return parsed;
5760
@@ -87,9 +90,10 @@ size_t body::reader::put(const buffer_type& buffer, boost_code& ec) NOEXCEPT
8790 return parsed;
8891}
8992
90- void body::reader::finish (boost_code& ec) NOEXCEPT
93+ void body<rpc::request_t >::reader::
94+ finish (boost_code& ec) NOEXCEPT
9195{
92- json::body ::reader::finish (ec);
96+ base ::reader::finish (ec);
9397 if (ec) return ;
9498
9599 if (terminated_ && !has_terminator_)
@@ -98,11 +102,10 @@ void body::reader::finish(boost_code& ec) NOEXCEPT
98102 return ;
99103 }
100104
101- auto & derived = static_cast <body::value_type&>(value_);
102105 try
103106 {
104- derived. request = value_to<rpc::request_t >(derived .model );
105- derived .model .emplace_null ();
107+ value_. message = value_to<rpc::request_t >(value_ .model );
108+ value_ .model .emplace_null ();
106109 }
107110 catch (const boost::system::system_error& e)
108111 {
@@ -116,23 +119,31 @@ void body::reader::finish(boost_code& ec) NOEXCEPT
116119 }
117120}
118121
119- bool body::reader::is_done () const NOEXCEPT
122+ size_t body<rpc::response_t >::reader::
123+ put (const buffer_type&, boost_code&) NOEXCEPT
120124{
121- return parser_.done () && has_terminator_;
125+ BC_ASSERT (false );
126+ return {};
127+ }
128+
129+ void body<rpc::response_t >::reader::
130+ finish (boost_code&) NOEXCEPT
131+ {
132+ BC_ASSERT (false );
122133}
123134
124135// rpc::body::writer
125136// ----------------------------------------------------------------------------
126137
127- void body::writer::init (boost_code& ec) NOEXCEPT
138+ void body<rpc::response_t >::writer::
139+ init (boost_code& ec) NOEXCEPT
128140{
129- json::body ::writer::init (ec);
141+ base ::writer::init (ec);
130142 if (ec) return ;
131143
132- auto & derived = static_cast <body::value_type&>(value_);
133144 try
134145 {
135- boost::json::value_from (derived. response , value_.model );
146+ boost::json::value_from (value_. message , value_.model );
136147 }
137148 catch (const boost::system::system_error& e)
138149 {
@@ -150,9 +161,11 @@ void body::writer::init(boost_code& ec) NOEXCEPT
150161 serializer_.reset (&value_.model );
151162}
152163
153- body::writer::out_buffer body::writer::get (boost_code& ec) NOEXCEPT
164+ body<rpc::response_t >::writer::out_buffer
165+ body<rpc::response_t >::writer::
166+ get (boost_code& ec) NOEXCEPT
154167{
155- auto out = json::body ::writer::get (ec);
168+ auto out = base ::writer::get (ec);
156169 if (ec || !terminate_) return out;
157170
158171 constexpr char more = true ;
@@ -167,6 +180,20 @@ body::writer::out_buffer body::writer::get(boost_code& ec) NOEXCEPT
167180 return out_buffer{ std::make_pair (buffer (&line, sizeof (line)), !more) };
168181}
169182
183+ void body<rpc::request_t >::writer::
184+ init (boost_code&) NOEXCEPT
185+ {
186+ BC_ASSERT (false );
187+ }
188+
189+ body<rpc::request_t >::writer::out_buffer
190+ body<rpc::request_t >::writer::
191+ get (boost_code&) NOEXCEPT
192+ {
193+ BC_ASSERT (false );
194+ return {};
195+ }
196+
170197BC_POP_WARNING ()
171198BC_POP_WARNING ()
172199BC_POP_WARNING ()
0 commit comments