#include <msg/msg.h>
#include "sched_struct.h"
#include <stdio.h>

/* Create a log channel to have nice outputs. */
#include "xbt/log.h"
#include "xbt/asserts.h"

static void test_all(char *platform_file, char *application_file)
{
  {				/*  Simulation setting */
    MSG_set_channel_number(MAX_CHANNEL);
    MSG_create_environment(platform_file);
  }
  {				/*   Application deployment */
    MSG_function_register("sched_master", sched_master);
    MSG_function_register("sched_slave", sched_slave);
    MSG_function_register("sched_smarter_master", sched_smarter_master);
    MSG_function_register("sched_smarter_slave", sched_smarter_slave);

    MSG_launch_application(application_file);
  }
  MSG_main();
  printf("Simulation time %g\n", MSG_get_clock());
  MSG_clean();
}

int main(int argc, char **argv)
{
  char *platform;
  char *deployment;

  MSG_global_init(&argc, argv);

  xbt_assert1((argc == 3), "Usage %s <platform_file> <deployment_file>\n",
	      argv[0]);

  platform = argv[1];
  deployment = argv[2];

  test_all(platform, deployment);
  return (0);
}
