text: /*
   *  JsonRpc-Cpp - JSON-RPC implementation.
   *  Copyright (C) 2008-2009 Sebastien Vincent <sebastien.vincent@cppextrem.com>
   *
   *  This program is free software: you can redistribute it and/or modify
   *  it under the terms of the GNU General Public License as published by
   *  the Free Software Foundation, either version 3 of the License, or
   *  (at your option) any later version.
   *
   *  This program is distributed in the hope that it will be useful,
   *  but WITHOUT ANY WARRANTY; without even the implied warranty of
   *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   *  GNU General Public License for more details.
   *
   *  You should have received a copy of the GNU General Public License
   *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
   */
  
  /**
   * \file test-rpc.cpp
   * \brief Test RPC example.
   * \author Sebastien Vincent
   */
  
  #include "test-rpc.h"
  
  bool TestRpc::Print(const Json::Value& root, Json::Value& response)
  {
    std::cout << "Receive query: " << root << std::endl;
    response["jsonrpc"] = "2.0";
    response["id"] = root["id"];
    response["result"] = "success";
    return true;
  }
  
  bool TestRpc::Notify(const Json::Value& root, Json::Value& response)
  {
    std::cout << "Notification: " << root << std::endl;
    response = Json::Value::null;
    return true;
  }
  
  Json::Value TestRpc::GetDescription()
  {
    Json::FastWriter writer;
    Json::Value root;
    Json::Value parameters;
    Json::Value param1;
  
    root["description"] = "Print";
  
    /* type of parameter named arg1 */
    param1["type"] = "integer";
    param1["description"] = "argument 1";
  
    /* push it into the parameters list */
    parameters["arg1"] = param1;
    root["parameters"] = parameters;
  
    /* no value returned */
    root["returns"] = Json::Value::null;
  
    return root;
  }
  
  