-
Notifications
You must be signed in to change notification settings - Fork 0
Gameboy: Client Command Interface
Este proceso cumplira la funcion de ser un cliente que permita:
- Enviar un mensaje al Broker, a un Proceso Team o a un Proceso Game Card.
- Suscribirse a una cola de mensajes específica del Broker por un tiempo limitado.
Para esto se iniciará el proceso desde consola enviando los argumentos necesarios para poder enviar el mensaje al proceso destino.
El objetivo del proceso Game Boy es poder probar independientemente todos los otros procesos. De esta manera, el mismo podrá enviar cualquier mensaje a cualquier cola que el proceso Broker conozca y enviar por socket al proceso Team el mensaje de aparición de un nuevo Pokemon.
Este proceso no espera ninguna lógica específica o particular, solo serializará y des serializará los mensajes requeridos por argumentos y lo enviará al proceso. Este proceso se ejecutará enviando parametros por argumento que indicara cuál será la funcionalidad que el mismo cumpla. Para esto, tendrá dos posibles variantes dependiendo si es para enviar un mensaje o suscribirse.
De esta manera, para el envío de mensajes el formato de ejecución del mismo sea el siguiente:
./gameboy [PROCESO] [TIPO_MENSAJE] [ARGUMENTOS]*
Cabe aclarar que dicho formato NO es modificable. No se permite la inclusión de ningun argumento mas al mismo. De esta manera, la cátedra proveerá al momento de realizar las pruebas en las distintas instancias de evaluación scripts que contengan la ejecución de varios de dichos comandos.
Los mensajes a implementar son:
Permitirá enviar un mensaje al Broker a la cola de mensajes NEW_POKEMON. Para esto, el formato del mensaje será:
./gameboy BROKER NEW_POKEMON [POKEMON] [POSX] [POSY] [CANTIDAD]
Permitirá enviar un mensaje al Broker a la cola de mensajes APPEARED_POKEMON. Para esto, el formato del mensaje será:
./gameboy BROKER APPEARED_POKEMON [POKEMON] [POSX] [POSY] [ID_MENSAJE_CORRELATIVO]
Cabe aclarar que el ID_MENSAJE será un valor definido tanto por la cátedra como por los alumnos al realizar sus propios test. Este ID dentro de un script o entorno de ejecución deberá ser ÚNICO.
Permitirá enviar un mensaje al Broker a la cola de mensajes CATCH_POKEMON. Para esto, el formato del mensaje será:
./gameboy BROKER CATCH_POKEMON [POKEMON] [POSX] [POSY]
Permitirá enviar un mensaje al Broker a la cola de mensajes CAUGHT_POKEMON. Para esto, el formato del mensaje será:
./gameboy BROKER CAUGHT_POKEMON [ID_MENSAJE_CORRELATIVO] [OK/FAIL]
Permitirá enviar un mensaje al Broker a la cola de mensajes GET_POKEMON. Para esto, el formato del mensaje será:
./gameboy BROKER GET_POKEMON [POKEMON]
Permitirá enviar un mensaje al Team como si él mismo viniera desde la cola APPEARED_POKEMON del Broker. Para esto, el formato del mensaje será:
./gameboy TEAM APPEARED_POKEMON [POKEMON] [POSX] [POSY]
Permitirá enviar un mensaje al Game Card como si él mismo viniera desde la cola NEW_POKEMON del Broker. Para esto, el formato del mensaje será:
./gameboy GAMECARD NEW_POKEMON [POKEMON] [POSX] [POSY] [CANTIDAD] [ID_MENSAJE]
Permitirá enviar un mensaje al Game Card como si él mismo viniera desde la cola CATCH_POKEMON del Broker. Para esto, el formato del mensaje será:
./gameboy GAMECARD CATCH_POKEMON [POKEMON] [POSX] [POSY] [ID_MENSAJE]
Permitirá enviar un mensaje al Game Card como si él mismo viniera desde la cola GET_POKEMON del Broker. Para esto, el formato del mensaje será:
./gameboy GAMECARD GET_POKEMON [POKEMON] [ID_MENSAJE]
En este modo, el proceso GameBoy deberá conectarse como suscriptor durante un tiempo definido en segundos pasado por parámetro. Para esto se mantendrá la siguiente nomenclatura en su ejecución:
./gameboy SUSCRIPTOR [COLA_DE_MENSAJES] [TIEMPO]
Este modo permitirá obtener los mensajes actuales que contiene en memoria el Broker y probar efectiva y correctamente el algoritmo de reemplazo y la compactación.