コード例 #1
0
ファイル: host.c プロジェクト: andressaandriao/gen17
/*******************************************************************************
 *	NOME:		clientfunc
 *	FUNÇÃO:		Thread do cliente. Fara todas as operacoes que estao ligadas ao
 *				cliente.
 *
 *	RETORNO:	void
 *******************************************************************************/
void menu_handle(){
	//Variaveis para o menu
	int tempchoice;
	char choice[2];

	int aux;

    do{

		__fpurge(stdin);
		printf("Deseja:\n1-Inserir Contato\n2-Listar Contatos\n3-Excluir Contato\n4-Enviar Mensagem\n5-Mensagem em Grupo\n6-Sair\n");
		choice[0] = getchar();
		__fpurge(stdin);
		choice[1] = '\0';//manter a semantica de atoi (precisa de \0)
		tempchoice = atoi(choice);
		__fpurge(stdin);

		switch (tempchoice)
		{
			case 1:
				client_add = 1;
				//Dorme enquanto espera a thread cliente executar.
				sem_wait(&sem_client);
				break;

			case 2:
				list_contacts();
				break;

			case 3:
				printf("Digite o nome ou IP do contato que deseja excluir");
				break;

			case 4:
				send_message();
				//Dorme enquanto espera a thread cliente executar.
				sem_wait(&sem_client);
				break;

			case 5:
				break;

			case 6:
				printf("Adeus!\n");
				break;

			default:
				printf("Escolha invalida\n\n");
				break;
		}

	}while(tempchoice!=6);

    prog_end = 1;
}
コード例 #2
0
ファイル: loopback.c プロジェクト: gpoudrel/xzibit
void
find_loopback (list_contacts_cb callback,
	       gchar *wanted_service,
	       gpointer user_data)
{
  LoopbackContext *context =
    g_malloc (sizeof (LoopbackContext));

  context->callback = callback;
  context->user_data = user_data;
  context->targets = g_hash_table_new_full (g_str_hash,
					    g_str_equal,
					    g_free,
					    g_free);

  list_contacts (find_loopback_cb,
		 wanted_service,
		 context);
		 
}
コード例 #3
0
ファイル: hostthread.c プロジェクト: andressaandriao/gen17
/*******************************************************************************
 *	NOME:		clientfunc
 *	FUNÇÃO:		Thread do cliente. Fara todas as operacoes que estao ligadas ao
 *				cliente.
 *
 *	RETORNO:	void
 *******************************************************************************/
void menu_handle(){
	//Variaveis para o menu
	int tempchoice;
	char choice[2];

	int aux;

    do{

		__fpurge(stdin);
		printf("Deseja:\n1-Inserir Contato\n2-Listar Contatos\n3-Excluir Contato\n4-Enviar Mensagem\n5-Mensagem em Grupo\n6-Sair\n7-Acessar Mensagens Recebidas\n");
		choice[0] = getchar();
		__fpurge(stdin);
		choice[1] = '\0';//manter a semantica de atoi (precisa de \0)
		tempchoice = atoi(choice);
		__fpurge(stdin);

		switch (tempchoice)
		{
			case 1:
				client_add = 1;
				//Dorme enquanto espera a thread cliente executar.
				sem_wait(&sem_client);
				break;

			case 2:
				list_contacts();
				break;

			case 3:
				exclude_contacts();
				sem_wait(&sem_client);
				break;

			case 4:
				send_message();
				//Dorme enquanto espera a thread cliente executar.
				sem_wait(&sem_client);
				break;

			case 5:
				printf("Para mandar o broadcast, primeiro digite a mensagem e em seguida selecione os contatos para que deseja envia-la\n\n");
				client_send = 2;
				sem_wait(&sem_client);
				break;

			case 6:
				printf("Adeus!\n");
				break;

			case 7:
				refresh_messages();
				sem_wait(&sem_client);
				break;

			default:
				printf("Escolha invalida\n\n");
				break;
		}

	}while(tempchoice!=6);

    prog_end = 1;
}