A.9. RMS

9.1. Vamos a implementar un almacén de notas. En el directorio Notas tenemos la base de esta aplicación. Cada nota será un objeto de la clase Mensaje, que tendrá un asunto y un texto. Además incorpora métodos de serialización y deserialización.

Vamos a almacenar estos mensajes de forma persistente utilizando RMS. Para ello vamos a utilizar el patrón de diseño adaptador, completando el código de la clase AdaptadorRMS de la siguiente forma:

a) En el constructor se debe abrir el almacén de registros de nombre RS_DATOS (creándolo si es necesario). En el método cerrar cerraremos el almacén de registros abierto.

b) En listaMensajes utilizaremos un objeto RecordEnumeration para obtener todos los mensajes almacenados. Podemos utilizar la deserialización definida en el objeto Mensaje para leerlos. Conforme leamos los mensajes los añadiremos a un vector.

El índice de cada registro en el almacén nos servirá para luego poder modificar o eliminar dicho mensaje. Por esta razón deberemos guardarnos este valor en alguna parte. Podemos utilizar para ello el campo rmsID de cada objeto Mensaje creado.

En getMensaje deberemos introducir el código para obtener un mensaje dado su identificador de RMS.

c) En addMensaje deberemos introducir el código necesario para insertar un mensaje en el almacén. Con esto ya podremos probar la aplicación, añadiendo mensajes y comprobando que se han añadido correctamente. Probar a cerrar el emulador y volverlo a abrir para comprobar que los datos se han guardado de forma persistente.

d) En removeMensaje deberemos eliminar un mensaje del almacén dado su identificador.

e) En updateMensaje modificaremos un mensaje del almacén sobrescribiéndolo con el nuevo mensaje proporcionado. Para ello obtendremos el identificador correspondiente a al mensaje antiguo de su campo rmsID.

9.2. Obtener la información de la cantidad de memoria ocupada y disponible a partir del objeto RecordStore. Deberemos hacer que los métodos getLibre y getOcupado de la clase AdaptadorRMS devuelvan esta información.