Sintaxis
vcServer <fifo_file_name>
vcClient <fifo_file_name>
Archivos Relacionados: videos.txt
Este sistema permite realizar programaciones a pedido. El servidor maneja
una lista de videos con sus duraciones contenida en el archivo videos.txt.
El formato de este archivo es
<nªvideo> <nombre><\t\t\t><horas:minutos>
El cliente tiene 4 opciones:
- Listar los videos disponibles(videos.txt) : Se lista:
Número del video
Nombre del Video Duración
- Ver los videos ya programados. Se lista:
Número de video
Nombre del Video Hora de salida
al aire
Además se indica 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.
- Programar un video: en este caso, el cliente debe ingresar además el número de video que desea ver, y la hora máxima en que puede ser programado
- Salir
El servidor cumple con las siguientes funciones:
- Lee el archivo video.txt y lo descompone en los nombres de los videos
y las duraciones de cada video en segundos. Estos datos son guardados en
arreglos
- Crea dos fifos, una para transmitir datos en la dirección
cliente-servidor y la otra para transmitir en sentido contrario
- Lee las opciones ingresadas en el cliente, y le devuelve los datos
necesarios.
Para realizar esto último, el servidor cuenta con 3 funciones principales:
- función programa: se encarga de ingresar
las peticiones de los clientes a la programación. La programación
es almacenada en el arreglo 2-D progra, el cual tiene 4 columnas. Cada
columna representa:
1.- número del video pedido
2.- hora de inicio de la Tx
3.- Hora término de la Tx
4.- Hora máxima en la que se puede transmitir
Además, programa cuenta modifica también
el arreglo usuarios, el cual contiene los usuarios asignados a cada petición
Por defecto, programa ordena las peticiones en forma FCFS, programando
cada petición lo más pronto posible
La función programa también se encarga
de definir si un usuario puede ser reprogramado en caso de que otro usuario
con menos tiempo solicite un video. En este caso, programa
revisa si exista un cliente que pueda ser reitinerado, de acuerdo a su
hora máxima y duración del video
Si se produce reprogramación, programa llama a
la función enviamail, la cual envía un mail
con la nueva fecha al usuario (adaptada de una función vista en
clases);
- función m_prog: se encarga de mostrar al cliente
los videos ya programados.
Recibe el arreglo progra, que contiene la programación, y básicamente
transforma a texto la información contenida en el arreglo . Este
texto es enviado en el main al cliente
- función actualiza: se encarga de actualizar
el arreglo progra, chequeando si hay películas ya terminadas. si
las hay, las elimina de la programación, y actualiza el arreglo
A continuación se incluye un diagrama que ilustra el funcionamiento de los programas