RasterBuffer
Nivel 1: Cache
Este nivel también incorpora el manejo de buffer de datos. Existe una clase abstracta de la cual heredan dos tipos de buffer, cacheado y sin cachear. Dependiendo de la cantidad de memoria que ocupen los datos se gestionará un buffer con caché o sin ella de forma transparente al usuario del buffer. Como es lógico un buffer sin caché lo mantiene todo en memoria y es más rápido que un buffer con caché que tendrá trozos del raster en disco que tendrá que cargar en memoria a medida que le sea solicitada la información.
- RasterBuffer: Clase abstracta de la cual hereda cualquier buffer. Contiene métodos generales de información sobre este.
- RasterMemoryBuffer: Buffer con datos en memoria
- RasterCache: Buffer de lectura escritura con datos cacheados.
- RasterReadOnlyHugeBuffer: Buffer de solo lectura para fuentes de datos de gran tamaño. Contiene referencias a las páginas desde la propia fuente de datos cargando en memoria solo cuando se solicita la información de una página en concreto.
- LRUAlgorithm: Implementación del algoritmo LRU para sustitución de datos de páginas de caché.
- PageBuffer: Representa a una página de datos de la caché.
- PageBandBuffer: Representa a una banda de una página de datos de caché. Es un RasterMemoryBuffer.
- HddPage: Representa a una página de disco de la caché.
- CacheDataServer: Clase encargada de servir los datos de una página de disco. Contiene métodos para salvar y recuperar páginas completas.
- CacheDataFromDriverServer: Clase encargada de servir datos desde un driver. Es utilizada para el mecanismo de cacheado de solo lectura.