John Firebaugh
baaae99a03
[core, android] Factor JSON string conversions
...
This adds a `convertJSON` template, to be used like:
Error error
optional<Foo> foo = convertJSON<Foo>(string, error);
Internally, it parses the string with RapidJSON and then calls `convert<Foo>(parsed, error)`.
While here, rationalize GeoJSON converters and fix error handling for Tileset conversion in OfflineDownload.
2017-05-08 13:48:57 -07:00
John Firebaugh
3f0c89d633
[core] Refactor Source::*Impls into RenderSources and TilePyramid
2017-05-02 08:45:09 -07:00
Konstantin Käfer
62ea1f2185
[core] remove trailing whitespace, add trailing newlines, add space after //
2017-01-27 11:44:16 +01:00
Bruno de Oliveira Abinader
eb772258cf
[core] Replace sqlite3.h dependency in offline database
2017-01-23 19:06:53 +02:00
Bruno de Oliveira Abinader
80d72123df
[core] Move lastInsertRowId/changes to sqlite::Statement
2017-01-23 19:06:53 +02:00
Eric Wolfe
a2ceeb4a5b
[core] Evict cached resources and tiles equally by access time ( #7770 )
2017-01-18 18:43:24 -08:00
Konstantin Käfer
e76de05402
[build] move logging to util
2016-11-22 20:58:51 +01:00
Chris Loer
40b0c8d076
[core] Use UTF-16 instead of UTF-32 for label features to avoid extra conversions and reduce in-memory size.
...
Continue to use uint32 as glyph ID to maintain Glyph PBF, even though we're only using 16 bits of that uint32.
Use std::codecvt instead of boost::unicode_iterator for UTF8->UTF16 conversions.
2016-11-17 14:33:03 -08:00
Tore Halset
a4b79ac289
[core] Optimize OfflineDownload::ensureResource ( #6707 )
...
Add `OfflineDatabase::hasRegionResource`, for use when the actual contents are not needed by the caller, avoiding IO and decompression costs.
2016-10-17 09:27:07 -07:00
John Firebaugh
a9842dbd6b
[core] Extract some GlyphRange-related constants
2016-09-26 14:55:49 -07:00
John Firebaugh
8764c20621
[core] Provide rationale for blocking queue while errors resolve
2016-09-26 14:55:49 -07:00
John Firebaugh
570bafcfec
[core] Don't allow OfflineDownload to flood the request queue
2016-09-26 14:55:49 -07:00
Molly Lloyd
598f7c6ad5
[core] allow offline region metadata to be updated ( #6338 )
2016-09-20 17:43:00 +02:00
Lucas Wojciechowski
37cb2bd756
[core] Convert uses of std::set to std::unordered_set ( #6325 )
...
* src/mbgl/annotation/annotation_manager.hpp
* src/mbgl/algorithm/update_renderables.hpp
* src/mbgl/geometry/glyph_atlas.hpp
* src/mbgl/renderer/painter.cpp and src/mbgl/renderer/render_item.hpp
* src/mbgl/renderer/symbol_bucket.hpp and src/mbgl/text/glyph_store.hpp
* src/mbgl/sprite/sprite_atlas.hpp
* include/mbgl/storage/network_status.hpp
* src/mbgl/text/collision_tile.cpp
* src/mbgl/style/update_batch.hpp
* platform/default/mbgl/storage/offline_download.hpp
* Add GlyphRangeSet typedef
* Fix whitespace & unused imports
2016-09-19 17:26:25 -07:00
Konstantin Käfer
5f49f28d3e
[build] add specific .clang-tidy file for things that use RapidJSON writers
2016-09-15 14:05:23 +02:00
Jason Wray
0bdd968d2b
[core] Remove schema v4 migration path
2016-09-14 15:49:00 -04:00
Jason Wray
4daff7f2f8
[core] Revert SQLite WAL journaling
2016-09-14 15:45:47 -04:00
John Firebaugh
d2abb1b6d5
[core] Change GeoJSONSource::getURL() to return an optional<std::string>
...
GeoJSON sources may have inline GeoJSON rather than a URL; returning an optional type ensures that consumers handle this case.
2016-08-26 10:30:55 -07:00
Jason Wray
74f094faab
[core] Update SQLite schema with WAL journal mode and normal sync
...
Offers 2×-4× performance, depending on device vintage.
2016-08-23 13:26:02 -04:00
Konstantin Käfer
18176605f6
[core] support "scheme": "tms" in TileJSON files
2016-08-16 11:04:30 +02:00
Vladimir Agafonkin
9ecc0d9597
GeoJSON point clustering ( #5724 )
...
* add supercluster dependency
* prepare GeoJSONTile for Supercluster
* prepare GeoJSONSource for accepting options
* try removing mbgl::GeoJSON
* fix setGeoJSON types
* add GeoJSONSource getURL
* add geojson to include path
* add Supercluster index in GeoJSONSource
* fix GeoJSONSource getZoomRange
* bring back mbgl::GeoJSON header
* fix tidy warnings hopefully
* try test-suite with enabled cluster test
* fix formatting in clustering-related files
2016-07-27 20:18:41 +03:00
Konstantin Käfer
77e7846756
[core] code style cleanups
...
- puts function definitions in a namespace ... {} rather than using namespace ...;
- remove trailing whitespace
- add trailing newline
- protect SQL statements from being formatted by clang-format
2016-07-01 12:38:33 +02:00
John Firebaugh
b8326870e1
[core] Increment completedTileCount when appropriate ( #5475 )
2016-06-24 15:28:10 -07:00
John Firebaugh
021d4199cb
[core, node] Implement bindings for addSource
2016-06-24 09:39:51 -07:00
John Firebaugh
900568cfb0
[core] Runtime source API: private impls
2016-06-16 13:27:15 -07:00
John Firebaugh
41760b5696
[core] Use variant<std::string, GeoJSON> in GeoJSON source
2016-06-15 11:28:34 -07:00
John Firebaugh
87edff4047
[core] Use variant<std::string, Tileset> in TileSource
...
A tile source can either specify a URL to TileJSON, or inline TileJSON.
2016-06-15 11:28:34 -07:00
John Firebaugh
5bbcca8326
[core] Add virtual Source::getTileSize()
2016-06-14 11:25:45 -07:00
John Firebaugh
9d3c4fbbb0
[core] Push Source::url down to subclasses
2016-06-14 11:25:45 -07:00
John Firebaugh
9dfcb95e4f
[core] Push Source::tileset down to TileSource
2016-06-14 11:25:45 -07:00
John Firebaugh
6eab895bc0
[core] Use Range<uint8_t> instead of full Tileset where possible
2016-06-14 11:25:45 -07:00
Bruno de Oliveira Abinader
4161d197fd
[tidy] Check modernize-pass-by-value
...
Ref: http://clang.llvm.org/extra/clang-tidy/checks/modernize-pass-by-value.html
2016-06-13 23:32:05 +03:00
Bruno de Oliveira Abinader
9142c447e8
[tidy] Check llvm-namespace-comment
...
Ref: http://clang.llvm.org/extra/clang-tidy/checks/llvm-namespace-comment.html
2016-06-13 23:32:05 +03:00
John Firebaugh
c902f9098b
[core] Rationalize naming for style-related code
2016-06-02 14:51:39 -07:00
John Firebaugh
a43940afb2
[core] Runtime style layer API
2016-06-02 14:51:39 -07:00
Konstantin Käfer
e2bcea90fc
[core] use #pragma once instead of ifdef include guards
2016-05-25 21:35:37 +02:00
Konstantin Käfer
cd65a43855
[core] move from microsecond precision timestamp to integer second precision
2016-05-13 17:24:22 +02:00
Konstantin Käfer
7332ae0073
[core] retain tiles differently and remove old TileID class
2016-05-10 14:50:56 +02:00
John Firebaugh
b39f22e6b6
[core] Refactor getRegionCompletedStatus; add completedTileCount; add tests
2016-04-27 13:41:29 -07:00
Brent Whitman
a706a2a48d
[ios, osx] Add a property for bytes used by offline tiles
2016-04-27 13:41:29 -07:00
John Firebaugh
18d8e80f52
[core] Demote "Unable to make space for entry" message from Warning to Debug ( #4708 )
2016-04-14 13:43:24 -07:00
John Firebaugh
c3bed1dab8
[core] Fix race condition that could lead to a UNIQUE constraint failure ( #4677 )
2016-04-11 19:46:45 -07:00
John Firebaugh
5eda74a514
Merge branch 'release-ios-3.2.0-android-4.0.0'
2016-03-30 17:43:37 -07:00
John Firebaugh
13882a31e4
[core] Set schema version to 3 after upgrading
...
The migration was upgrading the schema, but not the schema version. As a result, the (expensive) migration was running every time an OfflineDatabase was constructed with a v2 database.
Fixes #4501
2016-03-28 17:28:44 -07:00
John Firebaugh
169755e89a
[core] Unify FileRequest and WorkRequest
2016-03-24 10:54:32 -07:00
John Firebaugh
90d271709f
[core] Add additional logging for exceptions during database connection / creation
...
Refs #4382
2016-03-18 17:09:43 -07:00
Jesse Bounds
bcb3bb0931
[core] Stop download when tile limit is reached
...
The tile limit guard (when used) stops a download from continuing
when the tile limit is reached. This wraps the guard in a method
and employs it in both places currently necessary to ensure the
guard has a chance to function. Tests have been updated to
ensure the fix works for a less trivial tile limit scenario.
2016-03-17 15:52:18 -07:00
John Firebaugh
5130ca8843
[core] Implement a vacuum strategy for the offline database
...
Enable `PRAGMA auto_vacuum = INCREMENTAL`, and perform a `PRAGMA incremental_vacuum` when deleting an offline region.
2016-03-17 14:17:59 -07:00
Minh Nguyễn
4748973c04
[core] Deactivate offline region upon completion
2016-03-11 11:43:32 -08:00
John Firebaugh
7cceca4b45
[core] Deactivate OfflineDownload when the tile count limit is hit
...
This is a better behavior than sending hundreds or thousands of tileCountLimitExceeded notifications.
2016-03-09 13:40:00 -08:00