Skip to content

Gameboy: Client Command Interface

Leo edited this page Aug 2, 2022 · 1 revision

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.

Lineamiento e Implementación

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:

Broker - New Pokemon

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]

Broker - Appeared Pokemon

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.

Broker - Catch Pokemon

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]

Broker - Caught Pokemon

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]

Broker - Get Pokemon

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]

Team - Appeared 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]

Game Card - New Pokemon

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]

Game Card - Catch Pokemon

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]

Game Card - Get Pokemon

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]

Modo Suscriptor

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.