Skip to content

Releases: heremaps/here-data-sdk-cpp

Release 1.19.0

13 May 12:55
e2b4c85
Compare
Choose a tag to compare

Common

  • Added Promote to the olp::cache::KeyValueCache API to explicitly promote the key in the LRU (Least Recently Used) cache.
  • Fixed the CMake configuration for MSVC build.
  • Updated code snippets and documentation to reflect recent changes in the API.

olp-cpp-sdk-authentication

  • Changed olp::authentication::AuthenticationClientImpl::SignInClient to retry based on the configuration in olp::client::RetrySettings instead of returning an error immediately in case of transient errors.
  • Fixed parsing of server time returned in the response header when there are time zone differences.

olp-cpp-sdk-core

  • Added system_error explicitly to /olp/core/porting/shared_mutex.h to support GCC 13.2.
  • Changed olp::http::NetworkCurl to log the location of the certificate used.
  • Changed olp::client::HRN::ToString() and olp::client::HRN::ToCatalogHRNString() implementations to avoid streams.
  • Changed the olp::http::Md5LookupGetBySubject signature to support OpenSSL v3.x.

olp-cpp-sdk-dataservice-read

  • Decreased the number of memory reallocations for instances when only the tile keys are required by the caller.

Release 1.18.1

08 Mar 10:02
b614456
Compare
Choose a tag to compare

Common

  • Hotfix Updated olp::cache::DefaultCache::Open to take into account various ways the cache path could be specified.

Release 1.18.0

06 Mar 14:35
1062239
Compare
Choose a tag to compare

Common

  • Updated the code to support the latest versions of popular compilers.
  • Updated olp::http::NetworkCurl class to use 4x more opened connections than requests to avoid issues with connection caching.
  • Extended olp::client::RetrySettings with connection_timeout and transfer_timeout.
  • Implemented performance improvements.
  • Updated the minimal required version of cURL for SSL blob support to 7.77.0.
  • Added support for background downloads for iOS.
  • Fixed possible data race in olp::cache::DefaultCache when the cache size is being checked.
  • Added OLP_SDK_ENABLE_OFFLINE_MODE CMake option to enforce full offline mode for the SDK.
  • Changed olp::cache::DiskCache::Open to return olp::cache::OpenResult::Postponed when the protected can't be initialized at the given moment due to restrictions like missing permissions.
  • Changed olp::cache::DefaultCache::Open to scan the cache path for unexpected directories and report them as errors.

olp-cpp-sdk-authentication

  • The credentials file is parsed correctly when it has unexpected line endings which can occur when copying the file between different operating systems.

olp-cpp-sdk-dataservice-read

  • Fixed possible crash in olp::dataservice::read::PartitionsCacheRepository that occurred when the stream closed before parsing started.
  • Changed the olp::dataservice::read::repository::PartitionsSaxHandler to be cancellable.
  • Extended olp::dataservice::read::VersionedLayerClient with Protect(..) and Release(..) methods to protect and release multiple partitions at once.
  • Added more checks for the results of cache-related operations.
  • Updated olp::dataservice::read::VersionedLayerClient::Release to take the list of tiles from the request into account and assume that they will be released.
  • Introduced performance improvements.

Release 1.17.0

11 Oct 13:17
939c55a
Compare
Choose a tag to compare

Common

  • Improved support of HTTP proxy on iOS.
  • Cleaned up DNS cache on error in cURL (Android).
  • Updated olp-cpp-sdk-core/CMakeLists.txt to include the externals include directory.
  • Added the possibility to specify DNS using WithDNSServers to the olp::http::NetworkSettings API.
  • Improved logging in olp::client::PendingUrlRequests.
  • Added CallApiStream to the olp::client::OlpClient API that uses the SAX parser and JSON byte stream to parse the layer partitions while they are downloading.
  • Fixed the boost and rapidjson includes path resolution in olp-cpp-sdk-core/CMakeLists.txt.
  • Changed the log level to WARNING for the error message when the max number of HTTP requests has been reached in olp::http::OLPNetworkIOS::Send.
  • Added a status code for failed HTTP requests in olp::dataservice::read::repository::PrefetchTilesRepository.
  • Censored credentials in log messages for the network logs on the DEBUG log level.
  • Fixed the rapidjson include directory.

olp-cpp-sdk-authentication

  • Added the ability to use a custom token endpoint URL from credentials in olp::authentication::Settings.

olp-cpp-sdk-dataservice-read

  • Added support of requests with more than 100 partitions in the olp::dataservice::read::repository::PartitionsRepository API.
  • Added default copy and move constructors and operators to the model namespace classes.

olp-cpp-sdk-dataservice-write

  • Added default copy and move constructors and operators to the model namespace classes.

Release 1.16.0

13 Jun 11:16
b6a9d77
Compare
Choose a tag to compare

Common

  • Added olp::http::CertificateSettings struct to store custom certificate settings.
  • Added olp::http::NetworkInitializationSettings struct containing olp::http::CertificateSettings to be passed to olp::http::CreateDefaultNetwork(..).
  • Deprecated olp::http::CreateDefaultNetwork(). It will be removed by 05.2024. Use added olp::http::CreateDefaultNetwork(..) that take olp::http::NetworkInitializationSettings instead.
  • Added olp::client::CreateDefaultNetworkRequestHandler(..) that take olp::http::NetworkInitializationSettings as an argument.
  • Extended olp::cache::CacheSettings with extend_permissions option.
  • Extended olp::http::NetworkSettings with GetMaxConnectionLifetime() and WithMaxConnectionLifetime(..).
  • Deprecated GetRetries() and WithRetries(..) in olp::http::NetworkSettings. They will be removed by 04.2024.
  • Extended olp::http::NetworkSettings with GetConnectionTimeoutDuration(), WithConnectionTimeout(std::chrono::milliseconds timeout), GetTransferTimeoutDuration() and WithTransferTimeout(std::chrono::milliseconds timeout).
  • Deprecated GetConnectionTimeout(), WithConnectionTimeout(int timeout), GetTransferTimeout() and WithTransferTimeout(int timeout) in olp::http::NetworkSettings. They will be removed by 04.2024. Use methods that accept std::chrono::milliseconds instead.
  • Required TLS 1.2 or later for network connection.
  • Fixed CMake configuration failure when CMAKE_BUILD_TYPE CMake parameter is not set.

olp-cpp-sdk-authentication

  • Removed deprecated olp::authentication::AuthenticationError. Use client::ApiError instead.
  • Removed deprecated olp::authentication::AuthenticationClient::SignInGoogle.
  • Removed deprecated std::string olp::authentication::TokenProvider::operator()(). Use the operator with CancellationContext instead.
  • Removed deprecated olp::authentication::TokenResult::GetHttpStatus(). Use TokenResponse::GetError().GetHttpStatusCode() instead.
  • Removed deprecated olp::authentication::TokenResult::GetErrorResponse(). Use TokenResponse::GetError().GetMessage() instead.
  • Removed deprecated provider and cancel from olp::authentication::AuthenticationSettings. Use token_provider instead.
  • Used thread safe time formatting functions in AutoRefreshingToken.

Release 1.15.4

13 Mar 16:55
1c7f006
Compare
Choose a tag to compare

Common

  • Changed the log level from FATAL to ERROR in case of errors during opening cache.
  • Changed network layer implementation based on cURL to handle certificates lookup.
  • Improved documentation.
  • Improved olp::utils::Dir::Size to filter only files on Windows.
  • Added a limit of attempts for cache compaction.
  • Added libssl to the list of network libraries.

olp-cpp-sdk-dataservice-read

  • Changed the log level of repetitive log messages from INFO to DEBUG.

Release 1.15.3

19 Dec 16:07
8a609d0
Compare
Choose a tag to compare

Common

  • Fixed open behavior on the No space left errors in the protected cache. Now, the cache will be opened in the Read-Only mode if the No space left error occurs while opening the cache in the Read-Write mode.

Release 1.15.2

04 Nov 16:56
bc616d5
Compare
Choose a tag to compare

Common

  • Extended olp::client::ApiResponse with an optional payload.
  • Added support for non-copiable response types in olp::client::ApiResponse.
  • Updated the README and GettingStartedGuide documentation.
  • Added performance improvements.
  • Enabled preprocessing for generating Doxygen documentation.
  • Added the service name in the base client's URL when olp::client::ApiLookupSettings::catalog_endpoint_provider is set.
  • Fixed olp::utils::Dir::Size to traverse through all nested directories.

olp-cpp-sdk-dataservice-read

  • Extended olp::dataservice::read::DataResponse and olp::dataservice::read::DataResponseCallback with olp::client::NetworkStatistics as a payload.
  • Changed olp::dataservice::read::repository::NamedMutex to be cancellation-aware: when the request is canceled, you will not be able to lock the internal mutex.

olp-cpp-sdk-authentication

  • Changed the internal static std::regex object to local instead of the global one. The local object prevents getting the std::bad_cast exception on some compilers.
  • Improved documentation.

Release 1.15.1

16 Jun 12:06
a44d0ed
Compare
Choose a tag to compare

olp-cpp-sdk-dataservice-read

  • Hotfix Reverted pull requests #1332, and #1338 as they introduced a regression which was not caught by our test suite.

Release 1.15.0

13 Jun 08:01
860a2c3
Compare
Choose a tag to compare

Common

  • Added a new CMake option: OLP_SDK_ENABLE_ANDROID_CURL. The flag enables network layer implementation based on cURL for Android.
  • Added custom certificates lookup method based on MD5 for Android cURL network layer to bypass the discrepancy between OpenSSL 1.1.1 expecting SHA1 while certificates are beeing encoded using MD5.
  • Added HTTPS proxy support for the cURL network implementation.
  • Increased required minimal version for cURL from 7.47.0 to 7.52.0 due to the HTTPS proxy support.
  • Fixed the falsely returned errors from olp::client::OlpClient::CallApi. The olp::client::OlpClient::CallApi now propagates the correct errors from the olp::authentication::TokenProvider.
  • Replaced usage of std::stol with std::stoll for LRU expiration time evaluation.
  • The olp::utils::Dir::IsReadOnly now checks whether the target directory is present and returns false in case it is missing.
  • Changed the initial permissions on the newly created directories with olp::utils::Dir::Create from 0777 to 0774.
  • Added various performance optimizations for olp::cache::DefaultCache to speed up olp::cache::DefaultCache::Contains.
  • Improved various log messages.

olp-cpp-sdk-dataservice-read

  • Added the olp::dataservice::read::VersionedLayerClient::QuadTreeIndex API. Use this API to query the partitions for the specified tiles provided by olp::dataservice::read::TileRequest.
  • The olp::dataservice::read::PartitionsCacheRepository::FindQuadTree now reads the data from the cache starting from the lowest level first, which improves performance as the quadtrees are usually loaded 4 levels lower then the requested tile.
  • The olp::dataservice::read::CatalogClient::GetCatalog now forms correct URL when custom olp::client::CatalogEndpointProvider is used.
  • Fixed the broken chain of cancellation contexts inside olp::dataservice::read::VersionedLayerClient::PrefetchTiles method. The ongoing prefetch request can now be cancelled much faster, which avoids waiting for the ongoing sub-tasks to finish until the entire operation is cancelled.

olp-cpp-sdk-authentication

  • Added optional device_id field to the olp::authentication::AuthenticationClient::SignInProperties. This field can be used for the OAuth rate limiting per device supported by the HERE OAuth service.