Commit Graph

841 Commits

Author SHA1 Message Date
Thiago Marcos P. Santos
02e91428fd [core] Fix modernize-use-auto errors
As reported by clang-tidy-8.
2020-03-23 20:05:40 +02:00
Thiago Marcos P. Santos
cee3910f17 [core] Fix modernize-return-braced-init-list errors
As reported by clang-tidy-8.
2020-03-23 20:05:40 +02:00
Thiago Marcos P. Santos
d15b9c1f9c [core] Fix performance-unnecessary-value-param errors
As reported by clang-tidy-8.
2020-03-23 12:09:09 +02:00
Thiago Marcos P. Santos
991cfee7df [core] Fix performance-noexcept-move-constructor errors
As reported by clang-tidy-8.
2020-03-23 12:09:09 +02:00
Alexander Shalamov
202b5a8ecc [core] Calculate size of an ambient cache without offline resources 2020-03-07 10:14:18 +02:00
Alexander Shalamov
deca818614 [core] Simplify MapSnapshotter constructor and add observer interface 2020-03-05 17:43:37 +02:00
Alexander Shalamov
174f40dee3 [core] Add Snapshotter::cancel method 2020-03-05 17:43:37 +02:00
Alexander Shalamov
1577a6b537 [core] Expose Style from Snapshotter 2020-03-05 17:43:37 +02:00
Alexander Shalamov
29eff4028d [core] Remove Actor from public Snapshotter API 2020-03-05 17:43:37 +02:00
Alexander Shalamov
09e69654fa [core] Refactor Snapshotter
Move renderer to a separate thread while keeping map on a client thread.
2020-03-05 17:43:37 +02:00
Thiago Marcos P. Santos
dc510e44c0 [default] Build a no-op number formatter for old ICUs
This has been causing too many build problems and it is
a major source of complains because of different ICU interfaces.
2020-03-05 01:58:34 +02:00
Mikhail Pozdnyakov
25c8d0ecc8 [default] Fix possible crash at RunLoop::wake() 2020-03-02 10:32:20 +02:00
Mikhail Pozdnyakov
3bf9143079 Emit error message with URL details on load error 404 2020-02-28 12:52:26 +02:00
Mikhail Pozdnyakov
2b1bb1dc4a [core][offline] Offline download does not hang on 404 error 2020-02-28 12:52:26 +02:00
Mikhail Pozdnyakov
ba4f5efa09 [core] OnlineFileSource is never accessed directly 2020-02-26 22:31:59 +02:00
Mikhail Pozdnyakov
7c48611f9e [core] Consolidate file source keys in the generic FileSource header
Thus we do not need to include specific headers to use `{set|get}Property`
API with key constants.
2020-02-25 23:15:47 +02:00
Mikhail Pozdnyakov
3c05bd984a [core] Fix offline region download freezing
Downloaded resources are put in the buffer and inserted in the database in batches.

Before this change, the buffer was flushed only at the network response callback
and thus it never got flushed if the last required resources were present locally
and did not initiate network requests -> it caused freezing.

Now the buffer is flushed every time the remaining resources container gets empty.
2020-02-25 23:15:47 +02:00
Alexander Shalamov
89eab0530d [core] Set priorData from cache only if resource is useable
In cases when cached resource is useable, yet don't have an expiration
timestamp, we provided data to the requester from the cache and the same
data was returned once 304 response was received from the network.
2020-02-14 11:54:02 +02:00
Thiago Marcos P. Santos
47f2b20435 [build] Remove unused files
Buck build is no longer needed, neither is the previous
CMake buildsystem.
2020-02-07 20:12:44 +02:00
Mikhail Pozdnyakov
c04551a4e3 Expose READ_ONLY_MODE_KEY property for DatabaseFileSource 2020-02-07 14:39:03 +02:00
Alexander Shalamov
534003495b [core] Switch unordered_map to map
Change container types where number of elements expected
to be rather small. For instance, number of offline packs
or sql statements.
2020-02-06 23:54:19 +02:00
Alexander Shalamov
bb85ec442d [core] Add hooks for setting experimental thread priorities for mbgl threads 2020-02-06 23:54:19 +02:00
Alexander Shalamov
4be2fa4f9a [core] Add platform::setCurrentThreadPriority(double) 2020-02-06 23:54:19 +02:00
Preston A Elder
c28ffe0d4a Made number format work for newer versions of ICU (#16176) 2020-02-04 12:23:57 -05:00
Thomas Moenicke
b64ed75444 [build] Adding a build flag to build without GL if needed (#16120)
* [build] Adding a build flag to build without GL if needed

* [build] Moving custom layer to mbgl/gl
2020-02-03 19:10:57 +02:00
Alexander Shalamov
9ec2e2aff7 [core] Add pause and resume to database filesource implementation 2020-01-27 14:25:37 +03:00
Alexander Shalamov
7bf4de9f39 [core] Move resource loader to dedicated thread with scheduler 2020-01-23 12:55:57 +03:00
Mikhail Pozdnyakov
d24c1d625a [core] Pass std::shared_ptr<UpdateParameters> to the render orchestrator
So that it can retain ownership of the given parameters.
2020-01-22 14:30:26 +02:00
Alexander Shalamov
879c44f661 [core] Modularize FileSource codebase (#15768)
* [core] Introduce FileSourceManager and use it for default platform impl

  - Add `FileSourceManager` interface that provides access to `FileSource`
    instances and means of registering / unregistering `FileSource` factories
  - Split `DefaultFileSource` into smaller parts
  - Add `DatabaseFileSource` interface and it's default implementation
  - Remove inter-dependencies between concrete `FileSource` classes

* [build] Add files to next build system

* [core] Add generic property setters / getters

* [core] Remove setOnlineStatus from OnlineFileSource interface

* [core] Hide threading implementation details from DatabaseFileSource interface

* [core] Make DB file source methods virtual

* [core] Add documentation for DatabaseFileSource and rename one method

* [core] Use simple callback instead of ActorRef

* [core] Remove ActorRef from OnlineFileSource public header

* [core] Add callback to FileSource::forward async API

* [core] Pass OfflineRegionDefinition by value

* [core] Update tests to use modular file sources

* [core] Update unit tests

* [core] Update unit tests after rebase

* [core] Backport low prio fix for cached requests

* [core] Backport pack database

* [core] Return removed factory from unRegisterFileSourceFactory

* [core] Rename shadowed args in onlinefilesource

* [core] Remove simple std::function callback aliases

* [core] Expose online file source property keys in public header file

* [test-runner] Add proxy file source test runner

* [cache] Update mbgl-cache utility to use new file source

* [metrics] Rebaseline binary size metrics

* [offline] Update offline utility

* [core] Update changelog
2020-01-13 10:57:23 +02:00
Thiago Marcos P. Santos
d08bb49c34 [core] Make it possible to reopen the database read-only for testing
Needed for Android, because the database is in readonly filesystem
and also because it is annoying to see files modified every time we
run the tests.
2020-01-08 13:07:12 +02:00
Samuel Thibault
5f031dfa56 [util] fix thread.cpp portability 2020-01-08 10:50:42 +02:00
Mikhail Pozdnyakov
28ccb0ccc0 [core] Offline download must clear batch buffer at load interrupt
Otherwise, the stale buffer data are processed again at the
repeated load. It is causing various problems like missing load
completion notification or crashes (if the previously used observer
instance has been deleted).
2019-12-18 17:19:15 +02:00
Mikhail Pozdnyakov
4c49f0c9db [core] Introduce OfflineDatabase::runPackDatabaseAutomatically() API
- added a unit test
- Updated inline comments in default_file_source.hpp
2019-12-02 13:46:51 +02:00
Juha Alanen
bdd7e53078 [core] Set the priority of online requests for existing resource to low 2019-11-21 14:39:47 +02:00
Juha Alanen
69d980cdc1 [core] Add new method to DefaultFileSource
Add setMaximumConcurrentRequests() method for setting it on the
OnlineFileSource.
2019-11-21 14:39:47 +02:00
Juha Alanen
451e6d40fa [core] Notify requests about network reachability only when coming back online 2019-11-21 14:39:47 +02:00
zmiao
1b58e87f15 [render-test] Wrap test data inside RenderTestRunner App + Add a new test app (#15887)
* [render-test] Wrap test resources inside app

* [render-test] Add test app

* fix test app failure

* [render-test]add callback + add javaObjectWrapper
2019-11-19 20:45:30 +02:00
Mikhail Pozdnyakov
f567a79dd8 [core] Extend DefaultFileSource API
Add `packDatabase()` method and `bool pack` argument to the `deleteOfflineRegion()` method.
2019-11-12 17:24:50 +02:00
Mikhail Pozdnyakov
615e095ed6 [core] OfflineDatabase pack API
- introduce `OfflineDatabase::pack()` standing for incremental vacuum
- make pack optional at offline region deletion
- update `OfflineDatabase.DeleteRegion` test accordingly to the items above
2019-11-12 17:24:50 +02:00
Dane Springmeyer
49456e3fc1 remove duplicate formatNumber (#15908) 2019-11-12 06:47:43 -08:00
Mikhail Pozdnyakov
e1556fc539 [core] Improve OfflineDatabase error handling
- fixes missing exception handlers (e.g. runtim error from the `initialize()` method)
- introduces generic exception handling mechanism to reduce the repeated code
2019-11-11 15:33:55 +02:00
Mikko Pulkki
4176b28a77 [Linux] Remove CA certificate bundle 2019-11-11 10:11:49 +02:00
Mikhail Pozdnyakov
55e18a6f81 [core] Use expected.hpp from mapbox-base 2019-11-08 11:27:30 +02:00
Mikko Pulkki
a7a7e8cbe2 [render-test] Implement gfx probe for tracking gpu resources 2019-10-30 14:32:27 +02:00
Mikko Pulkki
fb062bb23e [render-test] Add resource usage tracking to gfx context 2019-10-30 14:32:27 +02:00
Mikhail Pozdnyakov
ab603c5fed [core] Enable incremental vacuum for Offline DB
Thus we avoid re-creating the whole database and keeping the backup file as it happens on calling VACUUM.
2019-10-22 15:51:16 +03:00
Mikko Pulkki
0ca96fd8a4 [render-test] Implement fps benchmarking tests (#15803) 2019-10-22 12:13:55 +03:00
zmiao
e829d1ae6f [test-runner] make render-test a shared lib (#15816)
* [test-runner] make render-test a shared lib

[test-runner] nit

[test-runner] nit again

* [test-runner] Remove redundant linked file in cmake
2019-10-15 19:16:32 +03:00
Thiago Marcos P. Santos
a4e1707f6b [offline] Document the database schema 2019-10-11 16:06:28 +03:00
Thiago Marcos P. Santos
990fdc43fa [build] Make sure offline_schema.hpp is up-to-date
- Get the bots to verify that.
 - Fix the paths.
2019-10-11 16:06:28 +03:00