Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add an example for file
authornavarro <navarro@caraja.(none)>
Tue, 31 Jan 2012 13:08:17 +0000 (14:08 +0100)
committernavarro <navarro@caraja.(none)>
Tue, 31 Jan 2012 13:08:37 +0000 (14:08 +0100)
buildtools/Cmake/MakeExe.cmake
examples/msg/io/CMakeLists.txt [new file with mode: 0644]
examples/msg/io/file.c [new file with mode: 0644]

index f68016b..7857a74 100644 (file)
@@ -59,6 +59,8 @@ add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/msg/parallel_contexts)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/msg/token_ring)\r
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/msg/pmm)\r
 \r
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/msg/token_ring)\r
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/msg/pmm)\r
 \r
+add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/msg/io)\r
+\r
 if(HAVE_TRACING)\r
     add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/msg/tracing)\r
 endif(HAVE_TRACING)\r
 if(HAVE_TRACING)\r
     add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/msg/tracing)\r
 endif(HAVE_TRACING)\r
diff --git a/examples/msg/io/CMakeLists.txt b/examples/msg/io/CMakeLists.txt
new file mode 100644 (file)
index 0000000..9a9d754
--- /dev/null
@@ -0,0 +1,13 @@
+cmake_minimum_required(VERSION 2.6)
+
+set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
+
+add_executable(file file.c)
+
+### Add definitions for compile
+if(NOT WIN32)
+target_link_libraries(file simgrid m pthread )
+else(NOT WIN32)
+target_link_libraries(file simgrid)
+endif(NOT WIN32)
+
diff --git a/examples/msg/io/file.c b/examples/msg/io/file.c
new file mode 100644 (file)
index 0000000..f5eca2a
--- /dev/null
@@ -0,0 +1,53 @@
+/* Copyright (c) 2008, 2009, 2010. The SimGrid Team.
+ * 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 <stdio.h>
+#include <stdlib.h>
+#include "simix/simix.h"
+#include "msg/msg.h"
+#include "surf/surf_private.h"
+
+int host(int argc, char *argv[]);
+
+XBT_LOG_NEW_DEFAULT_CATEGORY(file,
+                             "Messages specific for this simix example");
+
+int host(int argc, char *argv[])
+{
+  size_t read = simcall_file_read(NULL,0,0,NULL);
+  XBT_INFO("Host '%s' read",MSG_host_get_name(MSG_host_self()) );
+  size_t write = simcall_file_write(NULL,0,0,NULL);
+  XBT_INFO("Host '%s' write",MSG_host_get_name(MSG_host_self()) );
+  return 0;
+}
+
+int main(int argc, char **argv)
+{
+    int i,res;
+  MSG_global_init(&argc, argv);
+  MSG_create_environment(argv[1]);
+  m_host_t *host_table =  MSG_get_host_table();
+  int number_of_hosts = MSG_get_host_number();
+  MSG_function_register("host", host);
+
+  XBT_INFO("Number of host '%d'",number_of_hosts);
+  for(i = 0 ; i<number_of_hosts; i++)
+  {
+    char* name_host = bprintf("%d",i);
+    MSG_process_create( name_host, host, NULL, host_table[i] );
+    free(name_host);
+  }
+  xbt_free(host_table);
+
+  res = MSG_main();
+  XBT_INFO("Simulation time %g", MSG_get_clock());
+  MSG_clean();
+  if (res == MSG_OK)
+    return 0;
+  else
+    return 1;
+
+}