2009/6/11 Siegfried Kettlitz <siegfried.kettlitz@googlemail.com>
Hello boost users and developers,

i'm currently writing a library for making remote procedure calls to
C++ objects. The library is based on the variadic templates extension
coming with C++0x (already present in GCC 4.3) in conjunction with the
boost library (threads, serialization, asio). The aim is to have a
library, that is easy to integrate and doesn't require additional
tools. Writing it, so far, has thaught me a lot about C++, templates,
variadic templates, threading, networking etc..

You might want to take a look at RCF library (http://www.codeproject.com/KB/threads/RMI_For_Cpp.aspx).

As an example, a simple echo server looks like this:

#include <RCF/RCF.hpp>

RCF_BEGIN(I_Echo, "I_Echo")
  RCF_METHOD_R1(std::string, echo, const std::string &);
RCF_END(I_Echo);

class Echo
{
public:
  std::string echo(const std::string &msg) { return msg; }
};

int main()
{
  int port = 50001;
  RCF::RcfServer server(port);
  server.bind<I_Echo, Echo>();
  server.start();
  return 0;
}

And the client:

#include <RCF/RCF.hpp>

RCF_BEGIN(I_Echo, "I_Echo")
  RCF_METHOD_R1(std::string, echo, const std::string &);
RCF_END(I_Echo);

int main()
{
  std::cout << RcfClient<I_Echo>("localhost",
                               50001).echo("my message");
  return 0;
}

Roman Perepelitsa.