mirror of
https://github.com/openstreetmap/mod_tile.git
synced 2025-08-12 02:41:14 +00:00

So far, (meta)tiles could only be stored and retrieved from a locally mounted posix filesystem. Although, the posix filesystem API is it self a plugable storage layer into which one can mount many different filsystems, from temporary filesystems to network filesystems, as mod_tile installations scale up to multi-server environments this might not be sufficient and one may want to use other storage layers. This patch therefore abstracts all storage calls out into a separate API that can be implemented by various storage backends to fit the needs of different installations. Three storage backends are included in this commit: - file backend: This is the equivalent of what existed before in mod_tile / renderd. This uses a posix filesystem to store (meta)tiles - memcached: This stores tiles in a memcached store - rados: This stores tiles in a rados / ceph cluster The memcached and rados backends should currently still be considered as experimental There are also other refactoring and cleanups in this commit
31 lines
553 B
C
31 lines
553 B
C
#ifndef METATILE_H
|
|
#define METATILE_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#define META_MAGIC "META"
|
|
#define META_MAGIC_COMPRESSED "METZ"
|
|
|
|
struct entry {
|
|
int offset;
|
|
int size;
|
|
};
|
|
|
|
struct meta_layout {
|
|
char magic[4];
|
|
int count; // METATILE ^ 2
|
|
int x, y, z; // lowest x,y of this metatile, plus z
|
|
struct entry index[]; // count entries
|
|
// Followed by the tile data
|
|
// The index offsets are measured from the start of the file
|
|
};
|
|
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#endif
|
|
|