Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
UppHub
Status & Roadmap
FAQ
Authors & License
Forums
Funding U++
Search on this site











SourceForge.net Logo

SourceForge.net Logo

GitHub Logo

Discord Logo

XmlRpcServer

 

XML-RPC simple server

 

 

XmlRpcServer.cpp

 

#include <Core/Core.h>

// Note: Core.h needs to be included before Rpc.h because of Win32 rpc.h name clash problem

#include <Core/Rpc/Rpc.h>

 

using namespace Upp;

 

RPC_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");

}

 

RPC_METHOD(ping)

{

    rpc << GetSysTime();

}

 

RPC_METHOD(end_test)

{

    rpc << "OK";

    Cout() << "Immediate reply\n";

    rpc.EndRpc();

    Sleep(2000);

    Cout() << "Method ended now\n";

}

 

CONSOLE_APP_MAIN

{

    Cout() << "Server..\n";

    LogRpcRequests();

    RpcServerLoop(1234);

}

 

 

 

 

Do you want to contribute?