Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
* Cleanup the DTD by renaming:
[simgrid.git] / include / gras / virtu.h
index d925db8..8669ebf 100644 (file)
 #ifndef GRAS_VIRTU_H
 #define GRAS_VIRTU_H
 
-#include "xbt/misc.h" /* BEGIN_DECL */
+#include "xbt/misc.h" /* SG_BEGIN_DECL */
+#include "xbt/time.h"
 
-BEGIN_DECL
+SG_BEGIN_DECL()
 
-/**
- * gras_os_time:
- * @Returns: number of second since the Epoch.
- * (00:00:00 UTC, January 1, 1970 in Real Life, and begining of simulation in SG)
- * 
- * Get the current time.
- */
-double gras_os_time(void);
-
-/**
- * gras_os_sleep:
- * @Param1: number of seconds to sleep
- * @Param2: number of microseconds to sleep
- * 
- * sleeps for the given amount of time.
+/* Initialization of the simulation world. Do not call them in RL. 
+   Indeed, do not call them at all. Let gras_stub_generator do it for you. */
+void gras_global_init(int *argc, char **argv);
+void gras_create_environment(const char *file);
+void gras_function_register(const char *name, xbt_main_func_t code);
+void gras_launch_application(const char *file);
+void gras_clean(void);
+void gras_main(void);
+
+
+/** @addtogroup GRAS_virtu  
+ *  @brief System call abstraction layer.
+ *
+ *
+ *  @{
  */
-void gras_os_sleep(unsigned long sec, unsigned long usec);
 
-/**
- * gras_get_my_fqdn:
+/** @brief Get the current time
+ *  @return number of second since the Epoch.
+ *  (00:00:00 UTC, January 1, 1970 in Real Life, and begining of simulation in SG)
+ */
+#define gras_os_time() xbt_time()
+/** @brief sleeps for the given amount of time.
+ *  @param sec: number of seconds to sleep
+ */
+#define gras_os_sleep(sec) xbt_sleep(sec) 
+/** @brief get the fully-qualified name of the current host
  *
- * Returns the fully-qualified name of the host machine, or NULL if the name
+ * Returns the fully-qualified name of the host machine, or "localhost" if the name
  * cannot be determined.  Always returns the same value, so multiple calls
  * cause no problems.
  */
-const char *
-gras_get_my_fqdn(void);
+XBT_PUBLIC(const char *)
+gras_os_myname(void);
+
+/** @brief returns the number on which this process is listening for incoming messages */
+XBT_PUBLIC(int) gras_os_myport(void);
+
+/** @brief get the uri of the current process
+ *
+ * Returns the concatenation of gras_os_myname():gras_os_myport(). Please do not free the result.
+ */
+XBT_PUBLIC(const char *)
+gras_os_hostport(void);
+
+/** @brief get process identification
+ *
+ * Returns the process ID of the current process.  (This is often used
+   by routines that generate unique temporary file names.)
+ */
+XBT_PUBLIC(int) gras_os_getpid(void);
+
+
+/* The following functions handle process property query */
+XBT_PUBLIC(xbt_dict_t) gras_process_properties(void);
+XBT_PUBLIC(const char*) gras_process_property_value(char* name);
+
+/* The following functions handle host/cpu property query */
+XBT_PUBLIC(xbt_dict_t) gras_os_host_properties(void);
+XBT_PUBLIC(const char*) gras_os_property_value(char* name);   
 
-END_DECL
+/** @} */
+SG_END_DECL()
 
 #endif /* GRAS_VIRTU_H */