send I2PControl response without write_json

This commit is contained in:
orignal 2015-03-20 14:45:22 -04:00
parent 41ad5d12a3
commit 1cc3dd5ee4
2 changed files with 92 additions and 84 deletions

View file

@ -6,6 +6,7 @@
#include <memory>
#include <array>
#include <string>
#include <sstream>
#include <map>
#include <set>
#include <boost/asio.hpp>
@ -80,49 +81,49 @@ namespace client
void HandleRequestReceived (const boost::system::error_code& ecode, size_t bytes_transferred,
std::shared_ptr<boost::asio::ip::tcp::socket> socket, std::shared_ptr<I2PControlBuffer> buf);
void SendResponse (std::shared_ptr<boost::asio::ip::tcp::socket> socket,
std::shared_ptr<I2PControlBuffer> buf, const std::string& id,
boost::property_tree::ptree& results, bool isHtml);
std::shared_ptr<I2PControlBuffer> buf, std::ostringstream& response, bool isHtml);
void HandleResponseSent (const boost::system::error_code& ecode, std::size_t bytes_transferred,
std::shared_ptr<boost::asio::ip::tcp::socket> socket, std::shared_ptr<I2PControlBuffer> buf);
private:
template<typename T>
void InsertParam (boost::property_tree::ptree& pt, const std::string& name, T value) const;
void InsertParam (std::ostringstream& ss, const std::string& name, int value) const;
void InsertParam (std::ostringstream& ss, const std::string& name, double value) const;
void InsertParam (std::ostringstream& ss, const std::string& name, const std::string& value) const;
// methods
typedef void (I2PControlService::*MethodHandler)(const boost::property_tree::ptree& params, boost::property_tree::ptree& results);
typedef void (I2PControlService::*MethodHandler)(const boost::property_tree::ptree& params, std::ostringstream& results);
void AuthenticateHandler (const boost::property_tree::ptree& params, boost::property_tree::ptree& results);
void EchoHandler (const boost::property_tree::ptree& params, boost::property_tree::ptree& results);
void I2PControlHandler (const boost::property_tree::ptree& params, boost::property_tree::ptree& results);
void RouterInfoHandler (const boost::property_tree::ptree& params, boost::property_tree::ptree& results);
void RouterManagerHandler (const boost::property_tree::ptree& params, boost::property_tree::ptree& results);
void NetworkSettingHandler (const boost::property_tree::ptree& params, boost::property_tree::ptree& results);
void AuthenticateHandler (const boost::property_tree::ptree& params, std::ostringstream& results);
void EchoHandler (const boost::property_tree::ptree& params, std::ostringstream& results);
void I2PControlHandler (const boost::property_tree::ptree& params, std::ostringstream& results);
void RouterInfoHandler (const boost::property_tree::ptree& params, std::ostringstream& results);
void RouterManagerHandler (const boost::property_tree::ptree& params, std::ostringstream& results);
void NetworkSettingHandler (const boost::property_tree::ptree& params, std::ostringstream& results);
// I2PControl
typedef void (I2PControlService::*I2PControlRequestHandler)(const std::string& value);
// RouterInfo
typedef void (I2PControlService::*RouterInfoRequestHandler)(boost::property_tree::ptree& results);
void UptimeHandler (boost::property_tree::ptree& results);
void VersionHandler (boost::property_tree::ptree& results);
void StatusHandler (boost::property_tree::ptree& results);
void NetDbKnownPeersHandler (boost::property_tree::ptree& results);
void NetDbActivePeersHandler (boost::property_tree::ptree& results);
void NetStatusHandler (boost::property_tree::ptree& results);
void TunnelsParticipatingHandler (boost::property_tree::ptree& results);
void InboundBandwidth1S (boost::property_tree::ptree& results);
void OutboundBandwidth1S (boost::property_tree::ptree& results);
typedef void (I2PControlService::*RouterInfoRequestHandler)(std::ostringstream& results);
void UptimeHandler (std::ostringstream& results);
void VersionHandler (std::ostringstream& results);
void StatusHandler (std::ostringstream& results);
void NetDbKnownPeersHandler (std::ostringstream& results);
void NetDbActivePeersHandler (std::ostringstream& results);
void NetStatusHandler (std::ostringstream& results);
void TunnelsParticipatingHandler (std::ostringstream& results);
void InboundBandwidth1S (std::ostringstream& results);
void OutboundBandwidth1S (std::ostringstream& results);
// RouterManager
typedef void (I2PControlService::*RouterManagerRequestHandler)(boost::property_tree::ptree& results);
void ShutdownHandler (boost::property_tree::ptree& results);
void ShutdownGracefulHandler (boost::property_tree::ptree& results);
void ReseedHandler (boost::property_tree::ptree& results);
typedef void (I2PControlService::*RouterManagerRequestHandler)(std::ostringstream& results);
void ShutdownHandler (std::ostringstream& results);
void ShutdownGracefulHandler (std::ostringstream& results);
void ReseedHandler (std::ostringstream& results);
// NetworkSetting
typedef void (I2PControlService::*NetworkSettingRequestHandler)(const std::string& value, boost::property_tree::ptree& results);
typedef void (I2PControlService::*NetworkSettingRequestHandler)(const std::string& value, std::ostringstream& results);
private: