Commit | Line | Data |
---|---|---|
d321225e JT |
1 | // mainpage should not be here |
2 | ||
3 | /*! \mainpage libt2n - (talk to neighbor) | |
4 | \section intro_sec Introduction | |
5 | libt2n (talk to neighbor) is a C++ library for inter-process communication (IPC, s.a. http://en.wikipedia.org/wiki/Inter-process_communication) | |
a762a476 JT |
6 | with an additional code generator to make remote procedure calls (RPC, s.a. http://en.wikipedia.org/wiki/Remote_procedure_call) simple. (another solution perhaps would be to use C++ templates similar to postyyyman <http://www.erikyyy.de/sigslot/postyyyman/postyyyman-1.0.3/doc/README.html> or dope <http://dope.berlios.de> - the main reason to use a code generator was that we wanted to build libraries which could be used on client side easily). |
7 | ||
8 | \htmlonly | |
9 | <img src="http://jan.netcomp.monash.edu.au/webservices/rpc_stub.png" alt="rpc"/> | |
10 | <p>Figure: Remote procedure call overview (http://jan.netcomp.monash.edu.au/webservices/rpc_stub.png)</p> | |
11 | \endhtmlonly | |
12 | ||
d321225e | 13 | \par |
a762a476 JT |
14 | XXX: improve this paragraph: The input for the code generator is standard C++ code (in fact we use gccxml to parse the C++ code and the code generator takes the XML as input) and you mark the procedures you want to expose to other processes. (no need for an interface definition language [IDL, s.a http://en.wikipedia.org/wiki/Interface_description_languageIDL]) |
15 | It then generates the client and server stubs needed. | |
d321225e JT |
16 | The exported procedures can be grouped. For each group the code generator is called and generates 6 output files: group_common.hxx, group_common.cpp, group_client.hxx, group_client.cpp, group_server.hxx, group_server.cpp. The _common files are used by client and server whereas the _client files are used by the client and the _server files by the server only. |
17 | \par | |
18 | To simplify the build process a Makefile snippet is provided that allows to create a server program and a client library (including a corresponding .pc file) using the autotools easily. | |
19 | \section install_sec Installation | |
20 | ||
21 | \subsection requirements Requirements | |
22 | - boost <http://www.boost.org/> (serialization <http://www.boost.org/libs/serialization/doc/>) | |
23 | - gccxml <http://www.gccxml.org> | |
24 | - libxmlpp <http://libxmlplusplus.sourceforge.net/> | |
25 | ||
26 | \subsection recommended Recommended | |
27 | - pkg-config <http://pkgconfig.freedesktop.org/wiki/> | |
28 | - autotools (automake, autoconf, libtool) | |
29 | ||
30 | \subsection Compilation | |
31 | \verbatim | |
32 | ./configure && make install | |
33 | \endverbatim | |
34 | ||
35 | \subsection Usage | |
fc922d87 | 36 | Take a look at the example file:../../../libt2n-examples/doc/html/index.html |
d321225e JT |
37 | |
38 | */ |