示例#1
0
文件: itop.c 项目: kostas0/itop
int
main(int argc, char **argv) {
  char c;
  int verbose;
  
  /* defaults */
  verbose = 1;
  
  while((c = getopt(argc, argv, "Vv:")) != EOF) {
    switch(c) {
    case 'V':
      printf("%s %s\n", PACKAGE, VERSION);
      break;
    case 'v':
      verbose = atoi(optarg);
      break;
    case '?':
      usage(argv[0], 1);
      break;
    }
  }

  llog_init(LLOG_STDERR);
  llog_level(verbose);

  itop_run();
  llog_close();
  exit(0);
}
示例#2
0
int main(int argc, char ** argv)
{
    char config_file [256] = { 0 };
    int config_flag = 0;
    config_t config;
    llog_init(LL_DEBUG, stdout);
    for(int i = 1; i < argc; i++)
    {
        char * arg = argv[i];
        if((!strcmp(arg, "-c") || !strcmp(arg,"--config")) && i + 1 < argc)
        {
            config_flag = 1;
            strcpy(config_file, argv[++i]);
        }
        else
        {
            printf("[%s] Unsupport argument:%s\n",argv[0],arg);
            exit(-1);
        }
    }
    VERIFY(config_flag,"[MULTIUART]: You must specify the configuration file");
    read_config_file(config_file, &config);

    register_uart_recv_handler("ipmi",ipmi_uart_recv_handler);
    register_uart_recv_handler("raw", raw_uart_recv_handler);
    register_uart_recv_handler("raw_timeout", raw_uart_timeout_handler);
    register_uart_recv_handler("ipmi_timeout",ipmi_uart_timeout_handler);
    register_socket_recv_handler("ipmi",ipmi_socket_recv_handler);
    register_socket_recv_handler("raw", raw_socket_recv_handler);

    socket_uart_init(&config);
    
    
    pthread_t send_deamon,recv_deamon;
    pthread_create(&send_deamon,
            NULL,
            socket_uart_send_manager,
            NULL);

    pthread_create(&recv_deamon,
            NULL,
            socket_uart_recv_manager,
            NULL);

    while(1)
    {
        sleep(1);
        fflush(stdout);
    }
    return 0;
}
示例#3
0
文件: gtest.c 项目: likeyiyy/llog
int main(int argc, char ** argv)
{
    llog_init(LL_NOTICE,stdout);
    pthread_t tid;
    int i = 1;
    int arg[100];
    for(i = 0; i < 10; i++)
    {
        arg[i] = i;
        pthread_create(&tid,NULL,logit,&arg[i]);
    }
    while(1)
    {
        sleep(5);
    }
}
int
main(const int argc, const char *argv[])
{
	assert(argc == 2);
	const char *id = argv[1];

	llog_init();

	subscriptions_new(&SUBSCRIPTIONS);
	SUBSCRIPTIONS.unsubscribe_cb = client_unsubscribed;

#ifdef EXTERNAL_POLL
	max_poll_elements = getdtablesize();
	pollfds = malloc(max_poll_elements * sizeof(struct pollfd));
	fd_lookup = malloc(max_poll_elements * sizeof(int));
	if (pollfds == NULL || fd_lookup == NULL)
	{
		lwsl_err("Out of memory pollfds=%d\n", max_poll_elements);
		return -1;
	}
#endif

	struct lws_context_creation_info info;
	WEBSOCKETS = initialize_lws_context(&info);
	if (!WEBSOCKETS)
	{
		llog(LOG_ERR, "Server Starting\n");
		return -1;
	}

	MessageQueue queue;
	if (!MessageQueue_new(&queue, id))
		llog(LOG_ERR, "Failed to create the MessageQueue.\n");

	queue.on_message = my_message_callback;
	queue.on_connect = my_connect_callback;
	queue.on_log = my_log_callback;
	queue.on_subscribe = my_subscribe_callback;

	MessageQueue_connect(&queue);
	MOSQUITTO = queue.queue;

	llog(LOG_INFO, "Starting server\n");

	for (;; )
	{
#ifdef EXTERNAL_POLL
		int n = 0;
		/*
		 * this represents an existing server's single poll action
		 * which also includes libwebsocket sockets
		 */

		n = poll(pollfds, count_pollfds, 50);
		if (n < 0)
			continue;

		if (n)
			for (n = 0; n < count_pollfds; n++)
				if (pollfds[n].revents)
					/*
					 * returns immediately if the fd does not
					 * match anything under libwebsockets
					 * control
					 */
					if (libwebsocket_service_fd(WEBSOCKETS, &pollfds[n]) < 0)
						lwsl_notice("No socket needs LWS service");
#else
		libwebsocket_service(WEBSOCKETS, EVENT_LOOP_TIMEOUT);
#endif
		MessageQueue_run(&queue, EVENT_LOOP_TIMEOUT);
	}

	libwebsocket_context_destroy(WEBSOCKETS);
	lwsl_notice("Server Shutdown down\n");
	MessageQueue_free(&queue);
	subscriptions_destroy(&SUBSCRIPTIONS);
	return 0;
}