#include "RpcTest.h" RpcTestHelp::RpcTestHelp() { CtrlLayoutOK(*this, "XML-RPC Help"); } RpcTestAddParam::RpcTestAddParam() { CtrlLayoutOKCancel(*this, "XmlRpc Client"); } Value RpcTestAddParam::getVal() { LOG((~str).GetType()); if(str.GetLength()) return ~str; if(i.GetLength()) return ~i; if(dou.GetLength()) return ~dou; if(dat.GetLength()) return ~dat; if(tim.GetLength()) return ~tim; } RpcTest::RpcTest() { CtrlLayout(*this, "XmlRpc Client"); help.WantFocus(false); params.WantFocus(false); rawsent.SetEditable(false); rawreply.SetEditable(false); valToString.SetEditable(false); serverval.SetEditable(false); params.AddColumn("params"); execute<0) { helpCall(~method); signature(~method); xmlClient.Host(host); xmlClient.Path(path); xmlClient.Port(port); xmlClient.UseSSl(usessl==1); help << "XML-RPC Help\n"; help << "method: "<<~method<<" at "<<~host<<~path<<"\n\n"; v = xmlClient.Execute(helpCall); if(IsString(v)) { help << "explanation: \n" << v<<"\n\n"; }else help << "no explanation provided\n\n"; v = xmlClient.Execute(signature); if(v.GetType() == VALUEARRAY_V) { ValueArray va(v); help << "signature: \n"; for(int i=0; i1) help <<", "; help << vaa[j]; } help <<")\n"; } }else help << "no signature provided"; RpcTestHelp h; h.text.Set(help); h.RunAppModal(); } } void RpcTest::AddParam() { RpcTestAddParam p; if(p.RunAppModal() == IDOK) { Vector v; v.Add() = p.getVal(); params.Add(v); } Refresh(); } void RpcTest::CheckForMethods() { Value v; XmlRpcCall call("system.listMethods"); xmlClient.Host(host); xmlClient.Path(path); xmlClient.Port(port); xmlClient.UseSSl(usessl==1); v = xmlClient.Execute(call); if(v.IsError()) Exclamation(v.ToString()); else { ValueArray va(v); method.ClearList(); for(int i=0; i