Estas clases proveen de un mecanismo para secuencializar datos y recuperarlos. Su uso principal es convertir informacion para ser almacenada en un archivo o enviada por algun canal secuencial.
Es posible serializar objetos de las siguientes clases:
La serialización no almacena información sobre los tipos de los elementos almacenados. Por lo tanto, al desrializar hay que conocer los tipos con que se serializó y extraer los datos en el mismo orden. De otro modo, el comportamiento es indefinido.
Uno de los objetivos de estas clases es lograr que la representacion serial sea portable. La portabilidad se mantiene entre distintas plataformas siempre y cuando:
Para usar el serializador se construye una entidad de tipo SERIALIZER2. Luego, se pueden ir serializando elementos con las operaciones add_integer, add_real, add_character, add_string, add_boolean. También puede usarse add_auto, en la que se detecta el tipo dinamicamente. Por ultimo, add_tuple recibe un ARRAY[ANY] que es tomado como una secuencia de objetos a serializar
Se puede consultar la serialización con el feature serialized_form. Para comenzar una nueva serialización puede usarse la operación `restart' (De otra forma, todo lo que se serializa va siendo acumulado).
La clase UNSERIALIZER opera sobre una cadena generada por SERIALIZER. El constructor (make, que es lo mismo que start) recibe la cadena a ser deserializada.
Luego, se llaman sucesivamente a las get_t (donde t es uno de los tipos soportados, en minúscula). Esta función avanza sobre la cadena y obtiene un objeto del tipo t, y la almacena en el feature last_t.
Los otros features para saber el estado de la serialización son `bytes_available' (La cantidad de caracteres aun sin decodificar), y unserializing que indica si el deserializador fue iniciado y quedan datos sin deserializar.
Se puede comenzar una nueva deserialización sin crear un objeto nuevo llamando a start.