Aquí se debe indicar cual está siendo transmitido actualmente. En este caso la salida indica en el aire hace XXX minutos en la columna Hora de salida al aire.
La hora de salida al aire debe ser en formato similar al entregado por el comando "date".
3.- Programación de un video. Se ingresa el número del video y el horario más tardio que toleramos se programe. El servidor responde si la programación pudo o no ser satisfecha y para cuando se programó.
El servidor obtiene su información del registro de videos (archivo
videos.txt) y de las programciones que efectuen los clientes.
Asuma que sólo un cliente se conecta a la vez.
El archivo videos.txt tiene el siguiente formato:
<Número del video> ^ <nombre del video> ^ <Duración
en minutos> <NewLine>
Si por alguna razón un usuario desea programar un video el cual
no tiene cabida, pero se le puede hacer espacio reitinerando un video ya
programado para un horario posterior y previo al horario más tardio,
el servidor le envia un correo al usuario notificando la reprogramción
del video. Le envia un mensaje indicando:
"Su video <nombre del video> ha sido reprogramado para las <nueva
hora>"
Compilación:
Para compilar el programa se debe ejecutar en el
directorio donde se encuentran los archivos
>make
Con lo cual se generan dos archivos ejecutables
cli
y ser . Para eliminar los archivos .o creados en la compilacion
basta ejecutar
>make clean
Si se desea eliminar ademas los archivos ejecutables
se debe ejecutar
>make all
Los argumentos de ambos programas cli
y ser son dos y son los nombres de las fifos a utilizar.
Sobre la ejecución:
Se debe ejecutar primer ser (servidor), si el path no esta bien configurado
se debera anteponer ./ a los comandos antes mencionados, por ejemplo para
ejecutar ser se debera tipear
>./ser <nombre-fifo1> <nombre-fifo2>
>./cli <nombre-fifo1> <nombre-fifo2>
Funcionamiento:
Cliente contacta al Servidor
a través de dos fifos que este último creo. Luego genera
un hijo, el cual se hace cargo de escribir en pantalla todo lo que el servidor
escribe en la fifo denominada "pantalla". Por otra parte
el padre escribe las entradas de teclado en la fifo para que sean leídas
por el servidor.
Servidor por otra parte crea las fifos antes mencionadas,
carga el contenido del archivo con los videos (videos.txt) a memoria y
procesa las peticiones solicitadas, enviado las respuestas a través
de la fifo pantalla como se mencionó anteriormente.
La política de asignación de horarios
es que el usiario nos informa la hora tope en la cual el desea que el video
este en su casa, si este no se puede terminar de transmitir en el plazo
asignado por el usuario se informa al este que el video no se puede programar
en ese horario. Si se necesita reprogramar un video estos se realiza consultando
desde el ultimo al primero de la lista de videos ya programados, los cuales
estan ordenados por horario de transmición. La lista que contiene
los videos es una estructura de datos al estilo de una "lista simplemente
enlazada".
Si un video es reprogramado, tal como se solicitó,
se envia un mail al usuario correspondiente informandole que su video ha
sido reprogramado, es posible que un video sea reprogramado en reiteradas
ocaciones, con lo cual, el usuario deberá tomar como ofiacial la
informción del mail que halla sido enviado más tarde por
Servidor.
Cuando se solicita la dirección de correo solo se debe ingresar
el usename y no el dominio ya que se asume que los usuarios son pertenecientes
a la red local (dominio elo.utfsm.cl)
La interfaz ha sido desarrollada para un usuario
"amable" el cual no ingresara datos erroneos como fechas inexistentes,
intentos de programar un video en una fecha pasada, etc. Ya que no es el
objetivo del tema.
Mejoras:
Una mejora que se podría sucitar, si
se prefiere es al reprogramar un video puede generarse un hueco de tiempo
el cual puede ser llenado reconfigurando toda la lista, el problema que
esto acarrea es el enviar mail a una gran cantidad de usuarios, esto
se realizaría si se desea aprovechar mejor el recurso "transmisión".
Diversas mejoras podemos encontrar en la política
de programación de los videos , como son por ejemplo, la reprogramación
de dos videos para generar un hueco suficionete para un video nuevo, esto
claro esta no es el objetivo de la tarea, pero abre un horizonte para futuros
problemas.