﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	severity	resolution	keywords	cc
1346	Clase @Blob para el manejo de información binaria arbitraria.	Víctor de Buen Remiro	Víctor de Buen Remiro	"Es necesaria una forma de manejar en TOL información binaria arbitraria para distintos propósitos:

 * Almacenamiento de campos blob en bases de datos (de ahí el nombre)
 * Serialización binaria de objetos TOL (Ver #1291)
 * Comunicación entre procesos TOL (paralelización)
 * Tratamiento de archivos binarios (imágenes, mapas, ...)

Actualmente, en algunas API's para el manejo de estructuras de datos ajenas a TOL como {{{TolExcel}}}, {{{TolIpopt}}}, {{{NonLinGloOpt}}}, etc.; se está usando un {{{Real}}} que mapea el puntero a la estructura interna la cual es conocida por las funciones de la API.

Esta estrategia tiene sentido en ese tipo de API's pero existen aplicaciones algo más genéricas que requieren también información sobre el tamaño total del objeto y para las que se pueden dar ciertos métodos comunes, por lo que una clase sería lo más adecuado.

Según el tipo de información podría haber distintas formas de codificar la información que fueran más adecuadas que otras según otras condiciones como el tamaño, la necesidad de meta-información añadida, la estructura de los datos, la velocidad de transmisión, etc. He aquí algunos de los casos más claros cuya necesidad ya ha sido detectada:

 * Protocolos de codificación de objetos TOL
   * TOL: Expresión TOL para ser evaluada para cualquier tipo TOL. Puede ser útil para casos sencillos y para depurar.
   * OIS: formato binario para objetos TOL genéricos, indexados y documentados. Es el más potente pero implica mucho over-head para objetos sencillos.
   * DDS: formato binario de objetos sin documentación y restringida a ciertos tipos TOL (Ver #1291). Muy eficiente para pasar datos puros.
   * En caso de ser necesario, podría estudiarse algún protocolo ad-hoc que fuera especialmente eficaz en casos como tablas (Set de Set) y cosas por el estilo.

 * Protocolos de codificación de objetos externos
   * TXT: Texto ascii neutro.
   * BFL: formato binario para ficheros
   * ZIP: ficheros comprimidos con ZIP

La clase tendría los siguientes miembros
{{{
#!java
Class @Blob
{
  Text _.type;     //Type of information 
  Text _.protocol; //Codification protocol
  Real _.pointer;  //Internal address
  Real _.bytes;    //Total size 
}
}}}

Habría que ir declarando constructores para los distintos protocolos de codificación y tipos de información.

Otros tickets relacionados con el manejo eficiente de información en TOL son el #1070, #1072
"	task	new	normal	TOL Extensions	Kernel	head	normal			
