mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-10-06 00:30:10 -06:00
reference: XmlRpcCall, XmlRpcSever, XmlRpcClient
git-svn-id: svn://ultimatepp.org/upp/trunk@1822 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
parent
c73138bcb3
commit
52f85319ad
10 changed files with 167 additions and 0 deletions
12
reference/XmlRpcServer/XmlRpcServer.upp
Normal file
12
reference/XmlRpcServer/XmlRpcServer.upp
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
description "XML-RPC simple server\377";
|
||||
|
||||
uses
|
||||
Core,
|
||||
XmlRpc;
|
||||
|
||||
file
|
||||
XmlRpcSrvTst.cpp;
|
||||
|
||||
mainconfig
|
||||
"" = "";
|
||||
|
||||
43
reference/XmlRpcServer/XmlRpcSrvTst.cpp
Normal file
43
reference/XmlRpcServer/XmlRpcSrvTst.cpp
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
#include <XmlRpc/XmlRpc.h>
|
||||
|
||||
using namespace Upp;
|
||||
|
||||
XMLRPC_METHOD(compute)
|
||||
{
|
||||
double a, b;
|
||||
String op;
|
||||
rpc >> a >> op >> b;
|
||||
Cout() << "Request: " << a << op << b << '\n';
|
||||
if(op.GetCount() == 1)
|
||||
switch(*op) {
|
||||
case '+':
|
||||
rpc << a + b;
|
||||
return;
|
||||
case '-':
|
||||
rpc << a - b;
|
||||
return;
|
||||
case '/':
|
||||
if(b == 0)
|
||||
rpc << ErrorValue("division by zero");
|
||||
else
|
||||
rpc << a / b;
|
||||
return;
|
||||
case '*':
|
||||
rpc << a * b;
|
||||
return;
|
||||
}
|
||||
rpc << ErrorValue("unknown operator");
|
||||
}
|
||||
|
||||
XMLRPC_METHOD(ping)
|
||||
{
|
||||
rpc << GetSysTime();
|
||||
}
|
||||
|
||||
namespace Upp { extern bool HttpClient_Trace__; }
|
||||
|
||||
CONSOLE_APP_MAIN
|
||||
{
|
||||
Cout() << "Server..\n";
|
||||
XmlRpcServer(1234);
|
||||
}
|
||||
5
reference/XmlRpcServer/init
Normal file
5
reference/XmlRpcServer/init
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
#ifndef _XmlRpcSrvTst_icpp_init_stub
|
||||
#define _XmlRpcSrvTst_icpp_init_stub
|
||||
#include "Core/init"
|
||||
#include "XmlRpc/init"
|
||||
#endif
|
||||
Loading…
Reference in a new issue