void mostrarEstadoDelFSEnBytesSoloLog()
{
	off_t espacioTotal = 0;
	off_t espacioUsado = 0;
	espacioDeFSEnBytes(&espacioTotal,&espacioUsado);
	off_t espacioDisponible = espacioTotal - espacioUsado;
	loguear(LOG_LEVEL_INFO,"Espacio Total del FileSystem: %lu megas\n",espacioTotal);
	loguear(LOG_LEVEL_INFO,"Espacio Usado del FileSystem: %lu megas\n", espacioUsado);
	loguear(LOG_LEVEL_INFO,"Espacio Disponible del FileSystem: %lu megas\n",espacioDisponible);
}
void *atenderANodo(void *argConexion)
{
	SocketConecta *conexion = argConexion;


	while(estaConectado(conexion))
	{

		char nombrePaquete;
		t_nodo *nodo;
		recibirMensaje(conexion, &nombrePaquete,1);
		if(estaConectado(conexion))
		{
			if (nombrePaquete == CANTIDAD_BLOQUES)
				nodo = crearNodo(conexion);
			else if (nombrePaquete == BLOQUEAR_ATENDER_NODO){
				reservarConexionNodo(nodo);
				devolverConexionNodo(nodo);
			}
		}else
		{
			deshabilitarNodoPorDesconexion(nodo);
			loguear(LOG_LEVEL_INFO,"Se desconecto el nodo %s\n",nodo->nombre);
			cerrarSocketConecta(conexion);

		}
	}
	return 0;
}
Esempio n. 3
0
Musica::Musica() {
	if( this->musica == NULL ) this->musica = Mix_LoadMUS( "TPTaller/sonido/Worms.wav" );
	if( this->musica == NULL ){
		loguear();
		logFile << "Failed to load beat music! SDL_mixer Error: " << Mix_GetError() << endl;
		printf( "Failed to load beat music! SDL_mixer Error: %s\n", Mix_GetError() );
	}
}
static off_t recibirYVerificarConexion(SocketConecta *conexion, void *buffer, off_t longitudBuffer)
{
	if (!estaConectado(conexion))
	{
		loguear(LOG_LEVEL_DEBUG, "Se perdio la conexion con el nodo");
		terminarEjecucionDeTarea();
	}

	ssize_t bytesRecibidos = recibirMensaje(conexion, buffer, longitudBuffer);

	if (!estaConectado(conexion))
	{
		loguear(LOG_LEVEL_DEBUG, "Se perdio la conexion con el nodo");
		terminarEjecucionDeTarea();
	}

	return bytesRecibidos;
}
int grabarBloques(t_nodo *nodo, char *bloque,t_bloque *bloqueCopia)
{
	reservarConexionNodo(nodo);
	loguear(LOG_LEVEL_INFO,"Solicito al nodo %s grabar el bloque %d  del archivo en su bloque %d",nodo->nombre,bloqueCopia->numeroDeBloqueDelArchivo,bloqueCopia->numeroDeBloqueEnNodo);
	if (!enviarTamanioBloque(nodo->conexionNodoServidor,bloque))
	{
		devolverConexionNodo(nodo);
		return 0;
	}
	if (!enviarBloque(nodo,bloque,bloqueCopia,nodo->conexionNodoServidor))
	{
		devolverConexionNodo(nodo);
		return 0;
	}
	loguear(LOG_LEVEL_INFO,"Se grabo en el nodo %s el bloque %d  del archivo en su bloque %d",nodo->nombre,bloqueCopia->numeroDeBloqueDelArchivo,bloqueCopia->numeroDeBloqueEnNodo);
	devolverConexionNodo(nodo);
	return 1;

}
static void *avisarNodoInexisteYTerminarConexion(SocketConecta *conexion, char *puertoNodo, char *nombreNodo, char *ipNodo)
{
	free(puertoNodo);
	free(nombreNodo);
	free(ipNodo);
	enviarMensaje(conexion,NODO_INEXISTENTE,sizeof(char));
	loguear(LOG_LEVEL_INFO,"Un nodo intento conectarse como existente, pero no existe y se lo desconecto");
	deleteSocketConecta(conexion);
	return NULL;
}
static t_nodo *obtenerNodoReConectado(int posEnListaConectado,SocketConecta *nuevaConexion, char *ipNodo, char *puertoNodo)
{
	t_nodo *nodo;
	reservarListaNodosConectados();
	nodo = list_get(listaNodosConectados,posEnListaConectado);
	nodo->conexionNodoServidor = nuevaConexion;
	nodo->ip = strdup(ipNodo);
	nodo->puerto = strdup(puertoNodo);
	pthread_mutex_init(&(nodo->mutex_conexionNodo),NULL);
	devolverListaNodosConectados();
	loguear(LOG_LEVEL_INFO, "Se reconecto el nodo %s",nodo->nombre);
	deshabilitarNodo(nodo);
	return nodo;
}
void terminoDePedir(SocketConecta *conexion, ArchivoLocal *archivoALeer)
{
	loguear(LOG_LEVEL_INFO, "Se termino la transferencia del archivo");

	if(! estaConectado(conexion))
	{
		cerrarArchivo((Archivo*) archivoALeer);
		finalizarAtencionAConexion(conexion);
	}

	char termino = SI_TERMINO;

	enviarMensaje(conexion,&termino,1);

	cerrarConexionYArchivo(conexion,archivoALeer);
}
ArchivoLocal *tengoArchivo(SocketConecta *conexion)
{
	char *pathCompleto = obtenerPathCompleto(conexion);

	loguear(LOG_LEVEL_INFO, "Se recibio un pedido de archivo de parte de un nodo. Archivo: %s", pathCompleto);

	ArchivoLocal *archivoALeer = newArchivoLocal(pathCompleto, LECTURA);

	if (! estaConectado(conexion))
	{
		if (archivoALeer != NULL)
			cerrarArchivo((Archivo *)archivoALeer);

		finalizarAtencionAConexion(conexion);
	}

	if (archivoALeer == NULL)
		enviarMensaje(conexion,NO_TENGO_ARCHIVO,1);
	else
		enviarMensaje(conexion,SI_TENGO_ARCHIVO,1);

	return archivoALeer;
}
Esempio n. 10
0
void Musica::playSonido(int id){
	switch(id){
		case SELECT: {

			if( !this->s_select ) this->s_select = Mix_LoadWAV("TPTaller/sonido/MINETICK.WAV");
			if(this->s_select == NULL){
				loguear();
				logFile << "No se pudo cargar sonido: %s" << Mix_GetError() << endl;
				return;
			}
			Mix_PlayChannel(-1, this->s_select, 0);
			break;
		}
		case UP: {
			if( !this->s_jump ) this->s_jump = Mix_LoadWAV("TPTaller/sonido/JUMP1.WAV");
			if(this->s_jump == NULL){
				loguear();
				logFile << "No se pudo cargar sonido: %s" << Mix_GetError() << endl;
				return;
			}
			//Mix_VolumeChunk(this->s_jump, 100);
			Mix_PlayChannelTimed(-1, this->s_jump, 0, 1000);
			//Mix_PlayChannel(-1, this->s_jump, 0);
			break;
		}
		case TIME: {
			if( !this->s_time ) this->s_time = Mix_LoadWAV("TPTaller/sonido/clock-ticking-2.wav");
			if(this->s_time == NULL){
				loguear();
				logFile << "No se pudo cargar sonido: %s" << Mix_GetError() << endl;
				return;
			}
			Mix_VolumeChunk(this->s_time, 128);
			Mix_PlayChannelTimed(-1, this->s_time, -1, 10000);
			//Mix_PlayChannel(-1, this->s_time, 0);
			break;
		}
		case START: {
			if( !this->s_start ) this->s_start = Mix_LoadWAV("TPTaller/sonido/StartRound.wav");
			if(this->s_start == NULL){
				loguear();
				logFile << "No se pudo cargar sonido: %s" << Mix_GetError() << endl;
				return;
			}
			Mix_PlayChannel(-1, this->s_start, 0);
			break;
		}

		//Caso Lanzar TIpo disparo
		case DISPARO: {
			if( !this->s_disparo ) this->s_disparo = Mix_LoadWAV("TPTaller/sonido/gunFire.wav");
			if(this->s_disparo == NULL){
				loguear();
				logFile << "No se pudo cargar sonido: %s" << Mix_GetError() << endl;
				return;
			}
			//printf("disparo\n");
			Mix_VolumeChunk(this->s_disparo, 100);
			//Mix_PlayChannelTimed(-1, this->s_disparo, 0, 500);
			Mix_PlayChannel(-1, this->s_disparo, 0);
			break;
		}
		case LANZAR_DINAMITA: {
			if( !this->s_dinamita ) this->s_dinamita = Mix_LoadWAV("TPTaller/sonido/export (1).wav");//dinamita.wav
			if(this->s_dinamita == NULL){
				loguear();
				logFile << "No se pudo cargar sonido: %s" << Mix_GetError() << endl;
				return;
			}
			//printf("Sonido Lanzar dinamita\n");
			Mix_VolumeChunk(this->s_dinamita, 80);
			Mix_PlayChannel(1, this->s_dinamita, 0);
			//Mix_PlayChannelTimed(-1, this->s_dinamita, -1, 4500);
			break;
		}

		case MECHA_DINAMITA: {
			if( !this->s_mecha ) this->s_mecha = Mix_LoadWAV("TPTaller/sonido/mechadinamita.WAV");
			if(this->s_mecha == NULL){
				loguear();
				logFile << "No se pudo cargar sonido: %s" << Mix_GetError() << endl;
				return;
			}
			//printf("sonido mecha dinamita\n");
			Mix_PlayChannelTimed(-1, this->s_mecha, -1, 4500);
			break;
		}
		//Lanzar no disparo
		case LANZAR:{
			if( !this->s_lanzar ) this->s_lanzar = Mix_LoadWAV("TPTaller/sonido/lanzar4.wav");
			if(this->s_lanzar == NULL){
				loguear();
				logFile << "No se pudo cargar sonido: %s" << Mix_GetError() << endl;
				return;
			}
			Mix_PlayChannel(-1, this->s_lanzar, 0);
			break;

		}
		//EXPLOSIONES
		case EXPLOSION_BAZOOKA: {
			if( !this->s_eBazooka ) this->s_eBazooka = Mix_LoadWAV("TPTaller/sonido/Explosion2.wav");
			if(this->s_eBazooka == NULL){
				loguear();
				logFile << "No se pudo cargar sonido: %s" << Mix_GetError() << endl;
				return;
			}
			Mix_PlayChannel(-1, this->s_eBazooka, 0);
			break;

		}
		case EXPLOSION_GRANADA:{
			if( !this->s_eGranada ) this->s_eGranada = Mix_LoadWAV("TPTaller/sonido/Explosion2.wav");
			if(this->s_eGranada == NULL){
				loguear();
				logFile << "No se pudo cargar sonido: %s" << Mix_GetError() << endl;
				return;
			}
			Mix_PlayChannel(-1, this->s_eGranada, 0);
			break;
		}
		case EXPLOSION_DINAMITA:{
			if( !this->s_eDinamita ) this->s_eDinamita = Mix_LoadWAV("TPTaller/sonido/Explosion3.WAV");
			if(this->s_eDinamita == NULL){
				loguear();
				logFile << "No se pudo cargar sonido: %s" << Mix_GetError() << endl;
				return;
			}
			Mix_PlayChannel(-1, this->s_eDinamita, 0);
			break;
		}
		case EXPLOSION_HOLY:{
			if( !this->s_eHoly ) this->s_eHoly = Mix_LoadWAV("TPTaller/sonido/holy.WAV");
			if(this->s_eHoly == NULL){
				loguear();
				logFile << "No se pudo cargar sonido: %s" << Mix_GetError() << endl;
				return;
			}
			Mix_PlayChannel(-1, this->s_eHoly, 0);
			break;
		}
		case KAMIKAZE:{
			if( !this->s_kamikaze ) this->s_kamikaze = Mix_LoadWAV("TPTaller/sonido/KAMIKAZERELEASE.WAV");
			if(this->s_kamikaze == NULL){
				loguear();
				logFile << "No se pudo cargar sonido: %s" << Mix_GetError() << endl;
				return;
			}
			Mix_PlayChannel(-1, this->s_kamikaze, 0);
			break;
		}
		case PATADA:{
			if( !this->s_patada ) this->s_patada = Mix_LoadWAV("TPTaller/sonido/patada3.wav");
			if(this->s_patada == NULL){
				loguear();
				logFile << "No se pudo cargar sonido: %s" << Mix_GetError() << endl;
				return;
			}
			Mix_PlayChannel(-1, this->s_patada, 0);
			break;
		}
		case FUEGO:{
			if( !this->s_fuego ) this->s_fuego = Mix_LoadWAV("TPTaller/sonido/fuego.WAV");
			if(this->s_fuego == NULL){
				loguear();
				logFile << "No se pudo cargar sonido: %s" << Mix_GetError() << endl;
				return;
			}
			Mix_PlayChannel(-1, this->s_fuego, 0);
			break;
		}
		case BYE:{
			if( !this->s_bye ) this->s_bye = Mix_LoadWAV("TPTaller/sonido/BYEBYE.WAV");
			if(this->s_bye == NULL){
				loguear();
				logFile << "No se pudo cargar sonido: %s" << Mix_GetError() << endl;
				return;
			}
			Mix_PlayChannel(-1, this->s_bye, 0);
			break;
		}
		case WALK:{
			if( !this->s_walk ) this->s_walk = Mix_LoadWAV("TPTaller/sonido/walk-expand.wav");
			if(this->s_walk == NULL){
				loguear();
				logFile << "No se pudo cargar sonido: %s" << Mix_GetError() << endl;
				return;
			}
			//Mix_PlayChannelTimed(1, this->s_walk, 0, 500);
			Mix_PlayChannel(-1, this->s_walk, 0);
			break;
		}
		case TICK: {
			if( !this->s_tick ) this->s_tick = Mix_LoadWAV("TPTaller/sonido/tick.WAV");
			if(this->s_tick == NULL){
				loguear();
				logFile << "No se pudo cargar sonido: %s" << Mix_GetError() << endl;
				return;
			}
			Mix_VolumeChunk(this->s_tick, 128);
			Mix_PlayChannelTimed(-1, this->s_tick, 0, 1000);

			//Mix_PlayChannel(0, this->s_tick, 0);
			break;
		}
		case VIDA:{
			if( !this->s_vida ) this->s_vida = Mix_LoadWAV("TPTaller/sonido/OUCH.WAV");
			if(this->s_vida == NULL){
				loguear();
				logFile << "No se pudo cargar sonido: %s" << Mix_GetError() << endl;
				return;
			}
			//printf("Pierde vida\n");
			Mix_PlayChannel(-1, this->s_vida, 0);
			break;
		}
	}
}