/******************************************************************************* * 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; }
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); }
/******************************************************************************* * 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; }