libt2n: (gerd) improve doxygen documentation
[libt2n] / doc / index.doc
index b94ca12..73b10ed 100644 (file)
@@ -2,17 +2,12 @@
  \section intro_sec Introduction
  \par
  libt2n (talk to neighbor) is a C++ library for inter-process communication (IPC \ref notes1 "[1]") with an additional code generator (libt2n-codegen) to make C++ remote procedure calls (RPC \ref notes2 "[2]")  simple.
-  \htmlonly    
-  <p><img src="http://jan.netcomp.monash.edu.au/webservices/rpc_stub.png" alt="rpc"/></p>
-  \endhtmlonly
  \par
- Figure: Remote procedure call overview \ref notes3 "[3]"
- \par
- The figure shows an general overview of the steps involved in a remote procedure call. Using libt2n and its code generator only the server procedure implementations have to be written manually. The stubs are generated by the code generator and the inter-process communication routines are provided by libt2n. libt2n provides an abstract interface for
+Using libt2n and its code generator only the server procedure implementations have to be written manually. The stubs are generated by the code generator and the inter-process communication routines are provided by libt2n. libt2n provides an abstract interface for
        \ref libt2n::connection "connections"
- hiding the details of the concrete communication mechanism used. At the moment it is implemented for local sockets (a.k.a "Unix domain sockets") and TCP/IP sockets. (\ref libt2n::socket_client_connection, \ref libt2n::socket_server_connection)
+ hiding the details of the concrete communication mechanism used. At the moment it is implemented for local sockets (a.k.a "Unix domain sockets") and TCP-sockets. (\ref libt2n::socket_client_connection, \ref libt2n::socket_server_connection)
  \par
- The client procedure stubs provide an interface to the server procedure implementations. To call the server procedure the client stub procedure is called (step 1). The client stub procedure transforms the procedure arguments and signature including the procedure "name" into a sequence of bytes using boost serialization \ref notes6 "[6]". This byte sequence represents a request to call a procedure with those arguments (step 2). Using the communication routines of libt2n the request is sent to the server. (step 3,4). The server procedure stubs de-serialize the request and call the corresponding server procedure using the reconstructed arguments (step 5). The result of the server procedure is serialized and sent back to the client (steps 6,7,8). Finally the result is de-serialized on client side again and returned to the caller. (steps 9,10).
+ The client procedure stubs provide an interface to the server procedure implementations. To call the server procedure the client stub procedure is called. The client stub procedure transforms the procedure arguments and signature including the procedure "name" into a sequence of bytes using boost serialization \ref notes6 "[6]". This byte sequence represents a request to call a procedure with those arguments). Using the communication routines of libt2n the request is sent to the server. The server procedure stubs de-serialize the request and call the corresponding server procedure using the reconstructed arguments. The result of the server procedure is serialized and sent back to the client. Finally the result is de-serialized on client side again and returned to the caller.
  \par
  The input for the code generator is standard C++ code
        \ref notes4 "[4]"
 
  \subsection requirements Requirements
  \par libt2n
- - boost <http://www.boost.org/> (serialization <http://www.boost.org/libs/serialization/doc/>)
+ - boost <http://www.boost.org/> (serialization <http://www.boost.org/libs/serialization/>)
  \par libt2n-codegen
  - gccxml <http://www.gccxml.org>
  - libxmlpp <http://libxmlplusplus.sourceforge.net/>
+ \par client-wrapper
+ - boost <http://www.boost.org/> (bind <http://www.boost.org/libs/bind/>, function <http://www.boost.org/libs/function/>)
+ - gcc 4.1 or newer <http://gcc.gnu.org/>
 
  \subsection recommended Recommended
  - pkg-config <http://pkgconfig.freedesktop.org/wiki/>
@@ -44,6 +42,9 @@
  \subsection Usage
  Take a look at the \ref example.
 
+ \subsection Homepage
+ The libt2n homepage with downloads and further information can be found at <http://www.intra2net.com/de/produkte/opensource/libt2n/>.
+
  \subsection References
  - \anchor notes1
  [1] inter-process communication (IPC), http://en.wikipedia.org/wiki/Inter-process_communication
@@ -56,7 +57,7 @@
  - \anchor notes5
  [5] interface description language (IDL), http://en.wikipedia.org/wiki/Interface_description_language
  - \anchor notes6
- [6] boost serialization, http://www.boost.org/libs/serialization/doc/
+ [6] boost serialization, http://www.boost.org/libs/serialization/
 */
 
 /*! \page example Usage example
@@ -68,7 +69,7 @@
  \section server Example server program and client library
 
  \par The procedure to export (input for the code generator - libt2n-codegen): t2nexample.cpp:
- First the procedure to export is defined. In this example the procedure throws an exception if the input string is "throw". The exception is passed back to the client transparently. Otherwise some text is appended and returned.
+ First the procedure to export is defined. It is marked for export with the attribute macro "LIBT2N_EXPORT". In this example the procedure throws an exception if the input string is "throw". The exception is passed back to the client transparently. Otherwise some text is appended and returned.
  \include example1/t2nexample.cpp
 
  \par Required includes go into the group header file: t2nexample.hxx:
@@ -76,7 +77,8 @@
  \include example1/t2nexample.hxx
 
  \par The server program: server.cpp:
- We have to provide the main entry point for the server program. In this example we use a local socket and the server program simply waits until a request.is received which then is handled by the generated code directly.
+ We have to provide the main entry point for the server program. In this example we use a local socket and the server program simply waits until a request is received which then is handled by the generated code directly. We use a \ref libt2n::group_command_server to handle the requests. Each \ref libt2n::group_command_server is
+tied to one command group. Which source file exports it's functions into which command group is defined in the Makefile (see below).
  \include example1/server.cpp
 
  \par Using autoconf and automake to build a example server program and a client library.