v1.12.0
·
359 commits
to master
since this release
Common
- Changed the
olp::cache::DiskCacheimplementation. Now, it passes the providedolp::cache::CacheSettings::enforce_immediate_flushflag toleveldb::WriteOptions::sync. - Added a new CMake option:
OLP_SDK_ENABLE_DEFAULT_CACHE. The flag disables the LevelDB and Snappy dependencies and the default cache implementation. Theolp::cache::KeyValueCacheinterface is still available for the user to implement his cache. - Added a new custom LevelDB environment implementation. It overrides the random access file API disabling the excessive memory mapping, which led to huge memory spikes on mobile platforms.
- Changed the cache
olp::cache::DefaultCache::Removeandolp::cache::DefaultCache::RemoveKeysWithPrefixAPIs to consider protected keys, which means that the keys and values are not removed when protected. - Fixed the crash that occurred inside
olp::cache::DefaultCache::Compactwhen there was no disk cache present. - Fixed the race condition in iOS networking. The race condition caused a rare crash during concurrent access to
urlSessionsin thecreateTaskWithProxy:andId:method insideOLPHttpClient.mm. - Work In Progress Added the
olp::cache::DefaultCache::StorageOpenResult::ProtectedCacheCorruptedstatus. It is returned byolp::cache::DefaultCache::Open()when the protected cache fails to open. - Fixed the issue that occurred when provided
olp::cache::OpenOptionsinolp::cache::CacheSettingswere ignored by the mutable cache. - Changed the log level of a few repetitive and unimportant log messages from
INFOtoDEBUG. - Broke the cycling dependency in the Android network implementation
HttpClient.java. - Extended the
olp::client::DefaultRetryConditionto considerIO_ERROR,OFFLINE_ERROR,TIMEOUT_ERROR,NETWORK_OVERLOAD_ERRORerrors returned by the network layer upon send as retriable. - Changed the size estimation routine for the mutable cache. In a scenario when the
max_disk_storageis not set, we get the cache size fromleveldb::DB::GetApproximateSizeinstead of traversing the whole database. - Fixed the cache opening sequence. Now, when the mutable cache fails to open - the error is returned.
- Added handling of the
NSURLErrorDataNotAllowederror on iOS asOFFLINE_ERROR. - Added handling of the
NSURLErrorNetworkConnectionLosterror on iOS asIO_ERROR.
olp-cpp-sdk-authentication
- Fixed the usage of the same nonce for authentication retry requests. Now, all authentication requests generate a new unique nonce.
- Work In Progress Added the
SignInAppleAPI. Use it to sign in to the HERE platform with Apple ID.
olp-cpp-sdk-dataservice-read
- Reduced quadtree index requests in the
olp::dataservice::read::VersionedLayerClient::PrefetchTilesandolp::dataservice::read::VolatileLayerClient::PrefetchTilesAPIs. - Added merging for the exact concurrent quadtree index requests in the
olp::dataservice::read::VersionedLayerClient::PrefetchTilesandolp::dataservice::read::VolatileLayerClient::PrefetchTilesAPIs. - Added a new API to
olp::dataservice::read::VersionedLayerClient::Protectandolp::dataservice::read::VersionedLayerClient::Releasefor partitions. It works the same way as the API for tiles. - Added the
olp::dataservice::read::repository::NamedMutexStorageclass. It is designed to storeolp::dataservice::read::repository::NamedMutexinstances. It helps to eliminate global static variables. - Added the
olp::client::ErrorCode::CacheIOerror. The error occurs when the cache fails to store the download data. It is implemented only for theolp::dataservice::read::VersionedLayerClient::PrefetchTilesandolp::dataservice::read::VolatileLayerClient::PrefetchPartitionsAPIs.