Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
just had SG_BEGIN_DECL and SG_END_DECL macro (for c++ compilers)
[simgrid.git] / src / gras / Virtu / virtu_interface.h
index 0f79d15..a517ea4 100644 (file)
 #ifndef GRAS_VIRTU_INTERFACE_H
 #define GRAS_VIRTU_INTERFACE_H
 
+
+#include "xbt/function_types.h"
 #include "xbt/sysdep.h"
 #include "xbt/log.h"
-#include "xbt/dynar.h"
-#include "xbt/dict.h"
+#include "xbt/set.h"
 #include "gras/virtu.h"
 #include "gras/process.h"
 
+SG_BEGIN_DECL()
+
+/* shutdown the module mechanism (world-wide cleanups) */
+void gras_moddata_exit(void);
+/* shutdown this process wrt module mecanism (process-wide cleanups) */
+void gras_moddata_leave(void);
+
+
+/* Perform the various intialisations needed by gras. Each process must run it */
+XBT_PUBLIC(void) gras_process_init(void);
+
+/* Frees the memory allocated by gras. Processes should run it */
+XBT_PUBLIC(void) gras_process_exit(void);
+
+
+/* This is the old interface (deprecated) */
+
 /* declare a new process specific data 
    (used by gras_<module>_register to make sure that gras_process_init will create it) */
+int gras_procdata_add(const char *name, pvoid_f_void_t creator,void_f_pvoid_t destructor);
 
-typedef void* (pvoid_f_void_t)(void); /* FIXME: find a better place for it */
+void* gras_libdata_by_name(const char *name);
+void* gras_libdata_by_id(int id);
 
-void gras_procdata_add(const char *name, pvoid_f_void_t creator,void_f_pvoid_t destructor);
-void *gras_libdata_get(const char *name);
+SG_END_DECL()
 
 #endif  /* GRAS_VIRTU_INTERFACE_H */