small fix
[libt2n] / examples-codegen / example1-client-wrapper / client.cpp
1 // for a wrapped socket connection
2 #include <socket_wrapper.hxx>
3
4 // include generated library header
5 #include "t2nexample_client.hxx"
6
7 // define a type for more conveniant access
8 typedef libt2n::T2nSingletonWrapper<cmd_group_t2nexample_client> wraptype;
9
10 // static object which keeps the wrapper-singleton
11 template<>
12 std::auto_ptr<wraptype> wraptype::SingletonObject = std::auto_ptr<wraptype>();
13
14 // static object which keeps the connection
15 template<>
16 std::auto_ptr<libt2n::ConnectionWrapper> wraptype::WrappedConnection =
17     std::auto_ptr<libt2n::ConnectionWrapper>();
18
19 int main(int argc, char** argv)
20 {
21     // tell the client-wrapper how to contact the server if a connection is requested
22     wraptype::set_connection(std::auto_ptr<libt2n::ConnectionWrapper>
23         (new libt2n::ReconnectSocketWrapper("./socket")));
24
25     // execute a function via t2n. The wrapper will open a connection to the server if none
26     // exists or try to reconnect if the existing one doesn't answer
27     std::cout << t2n_exec(&cmd_group_t2nexample_client::testfunc)("hello") << std::endl;
28
29     return EXIT_SUCCESS;
30 }