Releases: heremaps/here-data-sdk-cpp
Releases · heremaps/here-data-sdk-cpp
Release 1.19.0
Common
- Added
Promote
to theolp::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 inolp::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()
andolp::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
Common
- Hotfix Updated
olp::cache::DefaultCache::Open
to take into account various ways the cache path could be specified.
Release 1.18.0
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
withconnection_timeout
andtransfer_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 returnolp::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
withProtect(..)
andRelease(..)
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
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 theolp::http::NetworkSettings
API. - Improved logging in
olp::client::PendingUrlRequests
. - Added
CallApiStream
to theolp::client::OlpClient
API that uses theSAX
parser andJSON
byte stream to parse the layer partitions while they are downloading. - Fixed the
boost
andrapidjson
includes path resolution inolp-cpp-sdk-core/CMakeLists.txt
. - Changed the log level to
WARNING
for the error message when the max number ofHTTP
requests has been reached inolp::http::OLPNetworkIOS::Send
. - Added a status code for failed
HTTP
requests inolp::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
Common
- Added
olp::http::CertificateSettings
struct to store custom certificate settings. - Added
olp::http::NetworkInitializationSettings
struct containingolp::http::CertificateSettings
to be passed toolp::http::CreateDefaultNetwork(..)
. - Deprecated
olp::http::CreateDefaultNetwork()
. It will be removed by 05.2024. Use addedolp::http::CreateDefaultNetwork(..)
that takeolp::http::NetworkInitializationSettings
instead. - Added
olp::client::CreateDefaultNetworkRequestHandler(..)
that takeolp::http::NetworkInitializationSettings
as an argument. - Extended
olp::cache::CacheSettings
withextend_permissions
option. - Extended
olp::http::NetworkSettings
withGetMaxConnectionLifetime()
andWithMaxConnectionLifetime(..)
. - Deprecated
GetRetries()
andWithRetries(..)
inolp::http::NetworkSettings
. They will be removed by 04.2024. - Extended
olp::http::NetworkSettings
withGetConnectionTimeoutDuration()
,WithConnectionTimeout(std::chrono::milliseconds timeout)
,GetTransferTimeoutDuration()
andWithTransferTimeout(std::chrono::milliseconds timeout)
. - Deprecated
GetConnectionTimeout()
,WithConnectionTimeout(int timeout)
,GetTransferTimeout()
andWithTransferTimeout(int timeout)
inolp::http::NetworkSettings
. They will be removed by 04.2024. Use methods that acceptstd::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
. Useclient::ApiError
instead. - Removed deprecated
olp::authentication::AuthenticationClient::SignInGoogle
. - Removed deprecated
std::string olp::authentication::TokenProvider::operator()()
. Use the operator withCancellationContext
instead. - Removed deprecated
olp::authentication::TokenResult::GetHttpStatus()
. UseTokenResponse::GetError().GetHttpStatusCode()
instead. - Removed deprecated
olp::authentication::TokenResult::GetErrorResponse()
. UseTokenResponse::GetError().GetMessage()
instead. - Removed deprecated
provider
andcancel
fromolp::authentication::AuthenticationSettings
. Usetoken_provider
instead. - Used thread safe time formatting functions in AutoRefreshingToken.
Release 1.15.4
Common
- Changed the log level from
FATAL
toERROR
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
toDEBUG
.
Release 1.15.3
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 theNo space left
error occurs while opening the cache in the Read-Write mode.
Release 1.15.2
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
andolp::dataservice::read::DataResponseCallback
witholp::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 thestd::bad_cast
exception on some compilers. - Improved documentation.
Release 1.15.1
Release 1.15.0
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
. Theolp::client::OlpClient::CallApi
now propagates the correct errors from theolp::authentication::TokenProvider
. - Replaced usage of
std::stol
withstd::stoll
for LRU expiration time evaluation. - The
olp::utils::Dir::IsReadOnly
now checks whether the target directory is present and returnsfalse
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 upolp::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 byolp::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 customolp::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 theolp::authentication::AuthenticationClient::SignInProperties
. This field can be used for the OAuth rate limiting per device supported by the HERE OAuth service.