Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
A proper gras_init function
authormquinson <mquinson@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Fri, 10 Dec 2004 06:43:28 +0000 (06:43 +0000)
committermquinson <mquinson@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Fri, 10 Dec 2004 06:43:28 +0000 (06:43 +0000)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@587 48e7efb5-ca39-0410-a469-dd3cf9ba447f

src/gras/gras.c [new file with mode: 0644]

diff --git a/src/gras/gras.c b/src/gras/gras.c
new file mode 100644 (file)
index 0000000..01fdc19
--- /dev/null
@@ -0,0 +1,45 @@
+/* $Id$ */
+
+/* gras.c -- generic functions not fitting anywhere else                    */
+
+/* Copyright (c) 2003, 2004 Martin Quinson.                                 */
+/* All rights reserved.                                                     */
+
+/* This program is free software; you can redistribute it and/or modify it
+ * under the terms of the license (GNU LGPL) which comes with this package. */
+
+#include "xbt/log.h"
+#include "xbt/module.h" /* xbt_init/exit */
+
+#include "gras_modinter.h"   /* module init/exit */
+#include "xbt_modinter.h"   /* module init/exit */
+
+#include "gras/core.h"
+#include "gras/process.h" /* FIXME: killme and put process_init in modinter */
+
+XBT_LOG_NEW_DEFAULT_CATEGORY(gras,"All GRAS categories");
+static int gras_running_process = 0;
+
+void gras_init(int *argc,char **argv, const char *defaultlog) {
+
+  INFO0("Initialize GRAS");
+  xbt_init_defaultlog(argc,argv,defaultlog);
+  gras_process_init(); /* calls procdata_init, which calls dynar_new */
+  /** init other submodules */
+  if (gras_running_process++ == 0) {
+    gras_msg_init();
+    gras_trp_init();
+    gras_datadesc_init();
+  }
+}
+
+void gras_exit(void) {
+  INFO0("Exiting GRAS");
+  gras_process_exit();
+  if (--gras_running_process == 0) {
+    gras_msg_exit();
+    gras_trp_exit();
+    gras_datadesc_exit();
+  }
+  xbt_exit();
+}