/*

File: test_rcf.cpp
Author: David Bergman

Testing Jarl Lindrud's RCF library

*/

#include <iostream>

#include <RCF/Idl.hpp>
#include <RCF/RcfServer.hpp>
#include <RCF/UdpEndpoint.hpp>

RCF_BEGIN(I_Greeting, "I_Greeting")
  RCF_METHOD_R1(std::string, greetMe, const std::string &)
RCF_END(I_Greeting)
  
class Greeting
{
public:
  std::string greetMe(const std::string &name)
  {
    return "Hello, " + name +
      ", do you want to play a game?";
  }
};

int main()
{
  // Server
  
  Greeting greetingImpl;
  RCF::RcfServer server(RCF::UdpEndpoint(9001));
  server.bind<I_Greeting>(greetingImpl);
  server.start();

  // Client

  RcfClient<I_Greeting> greetingProxy(
    RCF::UdpEndpoint("localhost", 9001));
  std::string greeting =
    greetingProxy.greetMe(RCF::Twoway, "David");
  std::cout << "He said: " << greeting;
}

