//inicializa //ITS ALIVE void inicializa () { Node *pecas=NULL; pecas=criaPecas(); pecas=embaralha(pecas); monte=distribui(pecas); }
void onGetArquivo(char *str){ char nomeDoArquivo[MAX_NOME_ARQ]; Header header; IdPeer dest; scanf("%s", str); inicializaSearch(); //Checa se os tokens estao ok if(strcmp(str, "arquivo")) { printHelp(); return; } scanf("%s", str); strcpy(nomeDoArquivo,str); printf("Nome do arquivo: (%s)\n", nomeDoArquivo); // Checa se ha algum token depois do nome do arquivo if( (str = strtok(NULL, " ") ) != NULL){ printHelp(); return; } if(isValida(SEARCHR) || isValida(GETR)) { printf("******************************************************\n"); printf("Buscando arquivo... \nAguarde para realizar nova busca\n"); printf("******************************************************\n"); return; } createHeader(&header, SEARCH, dest); header.tamDados = strlen(nomeDoArquivo); #ifdef DEBUG_SEARCH printf("Tamanho do nome do arquivo: %d\n", header.tamDados); #endif distribui(header, nomeDoArquivo); setNomeArquivoSearch(nomeDoArquivo); #ifdef DEBUG_SEARCH printf("SEARCH distribuida"); #endif InsereMensagemResposta(header.numSeq, SEARCHR); SetTimer(DadosAplicacao.intervaloTimeout, TIMER_SEARCHR, 0); }
void trataSearch(int sockfd, Header& h, char * nomeArquivo) { Header resposta; char dados[1]; FILE *arquivo; char sNomeArquivo[MAX_NOME_ARQ]; strncpy(sNomeArquivo, nomeArquivo, h.tamDados); sNomeArquivo[h.tamDados] = '\0'; #ifdef DEBUG_SEARCH char tmp[TAM_STR_IP + 1]; IdPeer2StrIp(tmp, h.remetente); printf("\n********** RECEBIMENTO DE SEARCH *************\n"); printf("Remetente: %s\n", tmp); printf("NumSeq: %d\n", h.numSeq); printf("********************************************\n\n"); printf("\n\n\n\n********** VOU CHECAR SE TENHO O ARQUIVO !!!! *************\n"); printf("\n\n\n\n********** NOME DO ARQUIVO: (%s)", sNomeArquivo); #endif arquivo = fopen(sNomeArquivo, "r"); if(arquivo) { printf("\n\n\n\n********** ARQUIVO ENCONTRADO !!!! *************\n"); createHeader(&resposta, SEARCHR, h.remetente); resposta.numSeq = h.numSeq; dados[0] = calcDistancia(&DadosAplicacao.meuIp, &h.remetente ); resposta.tamDados = sizeof(unsigned char); if(!escrevePacote(sockfd, resposta, dados)) puts("Erro ao enviar SEARCHR MSG"); #ifdef DEBUG_SEARCH printf("\n********** RESPONDEU SEARCH *************\n"); #endif fclose(arquivo); } //*********************************************************** distribui(h, nomeArquivo); //*********************************************************** #ifdef DEBUG_SEARCH printf("\n********** DISTRIBUIU SEARCH *************\n"); #endif }
void disparaHello() { Header hello; IdPeer destino; // Destino serah setado pela funcao distribui() memset( &destino, 0, sizeof(IdPeer)); createHeader(&hello, HELLO, destino); hello.tamDados = 0; #ifdef DEBUG printf("\n\n"); puts("*****************************************"); puts("Vou distribuir hello"); puts("*****************************************"); printf("\n"); #endif distribui(hello, NULL); }
void trataJoin(int sockfd, Header& h, char * dadosP){ Header resposta; char dados[1]; // #ifdef DEBUG char tmp[TAM_STR_IP + 1]; IdPeer2StrIp(tmp, h.remetente); printf("\n********** RECEBIMENTO DE JOIN *************\n"); printf("Remetente: %s\n", tmp); printf("NumSeq: %d\n", h.numSeq); printf("********************************************\n\n"); // #endif puts("Inseriu na tabela de roteamento"); // Se ha espaco na tabela de vizinhos, adiciona o vizinho e envia JOINR com distancia //if( insereVizinho(origem, sockfd) ){ if(contaVizinhos() < MAX_VIZINHOS){ createHeader( &resposta, JOINR, h.remetente ); resposta.numSeq = h.numSeq; dados[0] = calcDistancia( &DadosAplicacao.meuIp, &h.remetente ); printf("\n\n\n**************\nDISTANCIA JOINR: %d\n*****************\n\n\n", dados[0]); resposta.tamDados = sizeof( unsigned char ); printf("Tamanho dos Dados da JOINR: %d\n\n", resposta.tamDados); if(!escrevePacote(sockfd, resposta, dados)) puts("Erro ao enviar JOINR MSG"); // if ( ( posicao = buscaPosicaoVizinho(h.remetente) ) != -1) // SetTimer(DadosAplicacao.intervaloHelloR, TIMER_HELLOR, posicao); } //*********************************************************** distribui(h, NULL); //*********************************************************** }
Empresa::Empresa(){ leClientes(); leFuncionarios(); distribui(); }
int main(){ int selector = 0; struct carta *primeira, *primeiranova; struct dados *dados; struct deck jogador1, jogador2, aux; primeira = malloc(sizeof(struct carta)); primeiranova = malloc(sizeof(struct carta)); dados = malloc(sizeof(struct dados)); dados->prox = NULL; while(1){ printf("Selecione a opcao desejada:\n1)Simular um jogo\n2)Simular 5 jogos(opcional 1)\n3)Simular 5 jogos com detalhes(opcional 3)\n4)Sair\n"); scanf("%d", &selector); getchar(); criaFila(&jogador1); criaFila(&jogador2); criaFila(&aux); switch(selector){ case 1: printf("Simulacao iniciada\n\n"); geraBaralho(primeira); primeiranova = embaralha(primeira); distribui(&jogador1, &jogador2, primeiranova); duelo(&jogador1, &jogador2, &aux, dados); free(dados); dados = malloc(sizeof(struct dados)); printf("\nPressione qualquer tecla para continuar...\n"); getchar(); break; case 2: printf("Simulacao 1 iniciada\n"); geraBaralho(primeira); primeiranova = embaralha(primeira); distribui(&jogador1, &jogador2, primeiranova); duelo(&jogador1, &jogador2, &aux, dados); printf("\nPressione qualquer tecla para continuar...\n"); getchar(); //Zera filas criaFila(&jogador1); criaFila(&jogador2); criaFila(&aux); printf("Simulacao 2 iniciada\n"); geraBaralho(primeira); primeiranova = embaralha(primeira); distribui(&jogador1, &jogador2, primeiranova); duelo(&jogador1, &jogador2, &aux, dados); printf("\nPressione qualquer tecla para continuar...\n"); getchar(); //Zera filas criaFila(&jogador1); criaFila(&jogador2); criaFila(&aux); printf("Simulacao 3 iniciada\n"); geraBaralho(primeira); primeiranova = embaralha(primeira); distribui(&jogador1, &jogador2, primeiranova); duelo(&jogador1, &jogador2, &aux, dados); printf("\nPressione qualquer tecla para continuar...\n"); getchar(); //Zera filas criaFila(&jogador1); criaFila(&jogador2); criaFila(&aux); printf("Simulacao 4 iniciada\n"); geraBaralho(primeira); primeiranova = embaralha(primeira); distribui(&jogador1, &jogador2, primeiranova); duelo(&jogador1, &jogador2, &aux, dados); printf("\nPressione qualquer tecla para continuar...\n"); getchar(); //Zera filas criaFila(&jogador1); criaFila(&jogador2); criaFila(&aux); printf("Simulacao 5 iniciada\n"); geraBaralho(primeira); primeiranova = embaralha(primeira); distribui(&jogador1, &jogador2, primeiranova); duelo(&jogador1, &jogador2, &aux, dados); printf("A media de jogadas foi %d jogadas\n", mediaJogadas(dados)); free(dados); dados = malloc(sizeof(struct dados)); printf("\nPressione qualquer tecla para continuar...\n"); getchar(); break; case 3: printf("Simulacao 1 iniciada\n"); geraBaralho(primeira); primeiranova = embaralha(primeira); distribui(&jogador1, &jogador2, primeiranova); duelo(&jogador1, &jogador2, &aux, dados); printf("\nPressione qualquer tecla para continuar...\n"); getchar(); //Zera filas criaFila(&jogador1); criaFila(&jogador2); criaFila(&aux); printf("Simulacao 2 iniciada\n"); geraBaralho(primeira); primeiranova = embaralha(primeira); distribui(&jogador1, &jogador2, primeiranova); duelo(&jogador1, &jogador2, &aux, dados); printf("\nPressione qualquer tecla para continuar...\n"); getchar(); //Zera filas criaFila(&jogador1); criaFila(&jogador2); criaFila(&aux); printf("Simulacao 3 iniciada\n"); geraBaralho(primeira); primeiranova = embaralha(primeira); distribui(&jogador1, &jogador2, primeiranova); duelo(&jogador1, &jogador2, &aux, dados); printf("\nPressione qualquer tecla para continuar...\n"); getchar(); //Zera filas criaFila(&jogador1); criaFila(&jogador2); criaFila(&aux); printf("Simulacao 4 iniciada\n"); geraBaralho(primeira); primeiranova = embaralha(primeira); distribui(&jogador1, &jogador2, primeiranova); duelo(&jogador1, &jogador2, &aux, dados); printf("\nPressione qualquer tecla para continuar...\n"); getchar(); //Zera filas criaFila(&jogador1); criaFila(&jogador2); criaFila(&aux); printf("Simulacao 5 iniciada\n"); geraBaralho(primeira); primeiranova = embaralha(primeira); distribui(&jogador1, &jogador2, primeiranova); duelo(&jogador1, &jogador2, &aux, dados); printf("\nA media de jogadas foi %d jogadas\n", mediaJogadas(dados)); printf("A media de tempo foi %lu milisegundos\n", mediaTempo(dados)); maisLento(dados); maisRapido(dados); free(dados); dados = malloc(sizeof(struct dados)); printf("\nPressione qualquer tecla para continuar...\n"); getchar(); break; case 4: exit(0); default: printf("Opcao invalida!\n\n"); break; } } }