Skip to content

v1.12.0

Choose a tag to compare

@mykhailo-kuchma mykhailo-kuchma released this 03 Jun 11:03
· 359 commits to master since this release
06839dc

Common

  • Changed the olp::cache::DiskCache implementation. Now, it passes the provided olp::cache::CacheSettings::enforce_immediate_flush flag to leveldb::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. The olp::cache::KeyValueCache interface 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::Remove and olp::cache::DefaultCache::RemoveKeysWithPrefix APIs 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::Compact when there was no disk cache present.
  • Fixed the race condition in iOS networking. The race condition caused a rare crash during concurrent access to urlSessions in the createTaskWithProxy:andId: method inside OLPHttpClient.mm.
  • Work In Progress Added the olp::cache::DefaultCache::StorageOpenResult::ProtectedCacheCorrupted status. It is returned by olp::cache::DefaultCache::Open() when the protected cache fails to open.
  • Fixed the issue that occurred when provided olp::cache::OpenOptions in olp::cache::CacheSettings were ignored by the mutable cache.
  • Changed the log level of a few repetitive and unimportant log messages from INFO to DEBUG.
  • Broke the cycling dependency in the Android network implementation HttpClient.java.
  • Extended the olp::client::DefaultRetryCondition to consider IO_ERROR, OFFLINE_ERROR, TIMEOUT_ERROR, NETWORK_OVERLOAD_ERROR errors 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_storage is not set, we get the cache size from leveldb::DB::GetApproximateSize instead 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 NSURLErrorDataNotAllowed error on iOS as OFFLINE_ERROR.
  • Added handling of the NSURLErrorNetworkConnectionLost error on iOS as IO_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 SignInApple API. 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::PrefetchTiles and olp::dataservice::read::VolatileLayerClient::PrefetchTiles APIs.
  • Added merging for the exact concurrent quadtree index requests in the olp::dataservice::read::VersionedLayerClient::PrefetchTiles and olp::dataservice::read::VolatileLayerClient::PrefetchTiles APIs.
  • Added a new API to olp::dataservice::read::VersionedLayerClient::Protect and olp::dataservice::read::VersionedLayerClient::Release for partitions. It works the same way as the API for tiles.
  • Added the olp::dataservice::read::repository::NamedMutexStorage class. It is designed to store olp::dataservice::read::repository::NamedMutex instances. It helps to eliminate global static variables.
  • Added the olp::client::ErrorCode::CacheIO error. The error occurs when the cache fails to store the download data. It is implemented only for the olp::dataservice::read::VersionedLayerClient::PrefetchTiles and olp::dataservice::read::VolatileLayerClient::PrefetchPartitions APIs.