6907478d6d1b55c0d93291e4dd74f7617093e18d
[libt2n] / doc / index.doc
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)
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
13  \par 
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.
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
36  Take a look at the example file:../../../libt2n-examples/doc/html/index.html
37
38 */