Beispiel #1
0
static void remove_tagged_functions(void)
{
  for (TimedFunction *timed_func = GlobalTimer.funcs.first; timed_func;) {
    TimedFunction *next = timed_func->next;
    if (timed_func->tag_removal) {
      clear_user_data(timed_func);
      BLI_freelinkN(&GlobalTimer.funcs, timed_func);
    }
    timed_func = next;
  }
}
Beispiel #2
0
int main()
{
  /* Get arguments / Make GUI. It depends */

  /* Initializing */
  srand(time(NULL));

  printf("Initializing data structures\n");
  init_user_data();

  printf("Initializing monster data\n");
  init_mob();

  printf("Loading map data to the memory\n");
  load_maps();

  /* Release monster data */
  clear_mob_data();

  /* Add thread to properly stop the server */
  init_socket(sizeof(struct packet));
  init_server(&server_socket, 2033);
  open_server(server_socket,20);
  printf("Server has been opened\n");

  /* Mob manager */
  _beginthread(mob_manager, 0, NULL);

  /* Networking thread */
  _beginthread(start_server, 0, server_socket);

  while(getch() != 27);

  /* Stop monster manager */
  stop_mob_manager();

  /* Write behind; Write user data to file system */
  save_users_data();

  /* Release user data */
  clear_user_data();

  /* Release map data */
  clear_map_data();

  /* Terminate the server */
  close_socket(server_socket);

  end_socket();

  return 0;
}
Beispiel #3
0
bool BLI_timer_unregister(uintptr_t uuid)
{
  LISTBASE_FOREACH (TimedFunction *, timed_func, &GlobalTimer.funcs) {
    if (timed_func->uuid == uuid) {
      if (timed_func->tag_removal) {
        return false;
      }
      else {
        timed_func->tag_removal = true;
        clear_user_data(timed_func);
        return true;
      }
    }
  }
  return false;
}
Beispiel #4
0
int
main(int argc, char **argv)
{
  static const char opt_s[] = "hVdl:L:X:w:t:";

  static const struct option opt_l[] =
  {
    {"help",          0, 0, 'h'},
    {"usage",         0, 0, 'h'},
    {"version",       0, 0, 'V'},
    {"daemon",        0, 0, 'd'},
    {"log-level",     1, 0, 'L'},
    {"log-target",    1, 0, 'l'},
    {"limbo-control", 1, 0, 'w'},
    {"limbo-timeout", 1, 0, 't'},
    {0,               0, 0,  0 }
  };

  int log_driver = LOG_TO_SYSLOG;
  int log_level  = LOG_WARNING;
  int opt_daemon = 0;
  int opt;

  progname = *argv = basename(*argv);

  if( access("/root/alarmd.verbose", F_OK) == 0 )
  {
    //log_driver = LOG_TO_STDERR;
    log_level  = LOG_DEBUG;
  }

  // libconic uses gobjects
  g_type_init();

  while( (opt = getopt_long(argc, argv, opt_s, opt_l, 0)) != -1 )
  {
    switch( opt )
    {
    case 'h':
      show_usage();
      exit(0);
    case 'V':
      printf("%s\n", VERS);
      break;

    case 'L':
      log_level = log_parse_level(optarg);
      break;

    case 'l':
      log_driver = log_parse_driver(optarg);
      break;

    case 'd':
      opt_daemon = 1;
      break;
    case 't':
      server_limbo_set_timeout(strtol(optarg,0,0));
      break;

    case 'w':
      if( cmp_flag(optarg, "disabled") )
      {
        server_limbo_set_control(DESKTOP_WAIT_DISABLED);
      }
      else if( cmp_flag(optarg, "home") )
      {
        server_limbo_set_control(DESKTOP_WAIT_HOME);
      }
      else if( cmp_flag(optarg, "hildon") )
      {
        server_limbo_set_control(DESKTOP_WAIT_HOME);
      }
      else if( cmp_flag(optarg, "startup") )
      {
        server_limbo_set_control(DESKTOP_WAIT_HOME);
      }
      else
      {
        server_limbo_set_control(strtol(optarg,0,0));
      }
      break;

    case 'X':
      if( !strcmp(optarg, "cud") )
      {
        exit( clear_user_data() == -1 ? EXIT_FAILURE : EXIT_SUCCESS);
      }
      else if( !strcmp(optarg, "rfs") )
      {
        exit(restore_factory_settings() == -1 ? EXIT_FAILURE : EXIT_SUCCESS);
      }
      else
      {
        fprintf(stderr, "Unknwon option: -X%s\n", optarg);
      }
      exit(EXIT_FAILURE);
      break;

    case '?':
      fprintf(stderr, "%s: (use -h for usage)\n", *argv);
      exit(1);

    default:
      abort ();
    }
  }

  if( opt_daemon && daemon(0,0) )
  {
    perror("daemon"); exit(1);
  }

  log_set_level(log_level);
  log_open("alarmd", log_driver, 1);

  log_info("-- startup --\n");
  int xc = mainloop_run();
  log_info("-- exit %d --\n", xc);
  log_close();
  return xc;
}