1 /** \addtogroup GRAS_API
3 \section GRAS_funct Offered functionnalities
4 - <b>Communication facilities</b>: Exchanging messages between peers
5 - \ref GRAS_dd: any data which may transit on the network must be
6 described beforehand so that GRAS can handle the platform
7 heterogeneity and convert them if needed.
8 - \ref GRAS_sock: this is how to open a communication channel to
9 other processes, and retrive information about them.
10 - \ref GRAS_msg: communications are message oriented. You have to
11 describe all possible messages and their payload beforehand, and
12 can then attach callbacks to the arrival of a given kind of message.
13 - <b>Virtualization</b>: Running both on top of the simulator and on
14 top of real platforms, and portability support.
15 - \ref GRAS_globals: The use of globals is forbidden since the
16 "processes" are threads in simulation mode. \n
17 This is how to let GRAS handle your globals properly.
18 - \ref GRAS_cond: How to declare specific code for the simulation mode
20 - \ref GRAS_virtu: You naturally don't want to call the
21 gettimeofday(2) function in simulation mode since it would give
22 you the time on the host running the simulation, not the time in
23 the simulated world (you are belonging to).\n
24 This a system call virtualization layer, which also acts as a
27 \section GRAS_example Examples
29 There is for now rather few examples of GRAS, but it's better than
34 \section GRAS_todo TODO
35 Documentation related:
36 - Add an example to the \ref GRAS_msg section, at least
37 - Document examples/gras/gras_stub_generator utility and how to deal
38 with the fact that programs must have a main in RL and not in SG.
39 - Document example/gras/ping as it uses almost all of the GRAS
42 Code related: too long to be written here. See the TODO file
47 /** \defgroup GRAS_dd Data description */
48 /** \defgroup GRAS_sock Sockets */
49 /** \defgroup GRAS_msg Messages */
51 /** \defgroup GRAS_globals Globals */
52 /** \defgroup GRAS_cond Conditional execution */
53 /** \defgroup GRAS_virtu Syscalls */
57 /** \page GRAS_ex_ping The classical Ping-Pong in GRAS
58 \include gras/ping/ping.c