Zero

Zero
Zero

18 noviembre 2005

Persistencia

El desarrollo de persistencia está empezando a dar sus frutos.

Zero ya persiste ... es capaz de crear su PS si no existe, y hacer bootstrapping contra él si existe, además de guardarse ordenadamente, claro.

Los algoritmos de persistencia no involucran ni un solo algoritmo recursivo.

La prueba se hizo con dos programas, uno que guarda algo en el PS, y otro que espera encontrarlo allí (en ensamblador Zero):


OBJ Persona
ATR + nombre "juan"
ATR + email "juanillho@mixmail.com"

MTH + toString
MSG nombre toString
ASG __rr

STR ": "
MSG __rr concat __acc
ASG __rr

MSG email toString
MSG __rr concat __acc
ASG __rr

RET
ENM
ENO



OBJ PruebaPersistente ConsoleApplication
MTH + doIt
STR "\nComenzando guardado ...\n"
MSG System.console write __acc

SET __gp1 Persona
STR "Persona"
MSG . addAttribute __acc __gp1

STR "\nGuardado de manera persistente\n"
MSG System.console write __acc
RET
ENM
ENO


El segundo programa símplemente accede a Persona para obtener sus datos ...

---

OBJ VerPruebaPersistente
MTH + doIt
MSG System.console lf
SET .Persona
MSG System.console write __acc
MSG System.console lf
RET
ENM
ENO


Y la salida, después de ejecutar ambos, es:


Uncaught exception:
Persona threw EObjectNotFound: in Persona.toString(): _0_10000_1132255372_1311514264_A


De acuerdo :-), no es exactamente lo esperado, pero persona ya puede ser guardado y recuperado sin problemas, excepto algún detalle que habrá que seguir puliendo.

No hay comentarios: