#ifndef MAIN_HPP #define MAIN_HPP #include #include #include #include #include #include "json_logger.hpp" #include "serial.hpp" struct index { long long start = 0; // offset of data in geom file long long end = 0; unsigned long long ix = 0; // quadkey or hilbert index unsigned short t : 2; // geometry type unsigned short dup : 8; // instance number of identical geometry unsigned long long seq : (64 - 2 - 8); // input sequence number; pack with t and dup to stay in 32 bytes index() : t(0), dup(0), seq(0) { } }; extern std::vector clipbboxes; void checkdisk(std::vector *r); extern int geometry_scale; extern int quiet; extern int quiet_progress; extern json_logger logger; extern double progress_interval; extern std::atomic last_progress; extern int extra_detail; extern size_t CPUS; extern size_t TEMP_FILES; extern size_t memsize; extern size_t max_tile_size; extern size_t max_tile_features; extern int cluster_distance; extern int cluster_maxzoom; extern std::string attribute_for_id; extern int tiny_polygon_size; extern size_t limit_tile_feature_count; extern size_t limit_tile_feature_count_at_maxzoom; extern std::map set_attributes; extern long long extend_zooms_max; extern int retain_points_multiplier; extern size_t maximum_string_attribute_length; extern std::string accumulate_numeric; extern unsigned long long preserve_multiplier_density_threshold; struct order_field { std::string name; bool descending; order_field(std::string _name, bool _descending) : name(_name), descending(_descending) { } }; extern std::vector order_by; // not legal UTF-8, so can't appear as a real attribute name #define ORDER_BY_SIZE "\200size" extern bool order_by_size; int mkstemp_cloexec(char *name); FILE *fopen_oflag(const char *name, const char *mode, int oflag); bool progress_time(); #define MAX_ZOOM 24 #endif