Releases: heremaps/here-data-sdk-cpp
Releases · heremaps/here-data-sdk-cpp
Release v1.21.0
Common
- Removed deprecated
olp::client::OlpClient::SetSettings(...)
method. Useolp::client::OlpClient
constructor instead. - Removed deprecated
olp::client::HttpResponse::status
field. UseHttpResponse::GetStatus()
method instead. - Removed deprecated
olp::client::HttpResponse::response
field. UseHttpResponse::GetRawResponse()
method instead. - Removed deprecated
olp::client::HttpResponse::headers
field. UseHttpResponse::GetHeaders()
method instead.
olp-cpp-sdk-core
- Added
olp::client::HttpResponse::GetResponseAsBytes
convenience method to get the response body as a vector of unsigned chars. - Added
olp::client::HttpResponse::GetResponseAsString
convenience method to get the response body content as a string. - Added
olp::client::HttpResponse::GetRawResponse
convenience method to get reference to the response object. - Added
olp::client::OlpClient::GetSettings()
method. - Removed deprecated
olp::http::CreateDefaultNetwork(size_t)
function. Useolp::http::CreateDefaultNetwork(NetworkInitializationSettings)
instead. - Removed deprecated
olp::http::NetworkSettings::GetRetries()
method. - Removed deprecated
olp::http::NetworkSettings::WithRetries()
method. - Removed deprecated
olp::http::NetworkSettings::GetConnectionTimeout()
method. UseNetworkSettings::GetConnectionTimeoutDuration()
instead. - Removed deprecated
olp::http::NetworkSettings::WithConnectionTimeout(int)
method. UseNetworkSettings::WithConnectionTimeout(std::chrono::milliseconds)
instead. - Removed deprecated
olp::http::NetworkSettings::GetTransferTimeout()
method. UseNetworkSettings::GetTransferTimeoutDuration()
instead. - Removed deprecated
olp::http::NetworkSettings::WithTransferTimeout(int)
method. UseNetworkSettings::WithTransferTimeout(std::chrono::milliseconds)
instead. - Removed deprecated
olp::utils::Dir::exists(const std::string&)
method. UseDir::Exists(...)
instead. - Removed deprecated
olp::utils::Dir::remove(const std::string&)
method. UseDir::Remove(...)
instead. - Removed deprecated
olp::utils::Dir::create(const std::string&)
method. UseDir::Create(...)
instead. - Changed cURL network implementation requirements. OpenSSL is mandatory now.
- Fixed asynchronous access to the list of cancelled tasks in the iOS background mode.
- Fixed deleting cancelled invalid download tasks in the iOS background mode.
- Fixed crashes in
olp::cache::DiskCache::Size()
method that happened when it's called on closed cache. - Fixed
olp::math::AlignedBox
template compilation in certain environments. - Improved error handling on iOS.
NSURLErrorSecureConnectionFailed
,NSURLErrorCannotFindHost
,NSURLErrorDNSLookupFailed
andNSURLErrorResourceUnavailable
are retriable now. - Improved the iOS background download mode change. No additional actions performed when requested mode is already active.
- Improved cURL certificates configuration. Now, every field can be set up independently.
Release v1.20.1
Common
- Fixed various clang-tidy warnings.
- Fixed Boost configuration error on Windows.
olp-cpp-sdk-dataservice-read
- Updated query network requests to include metadata fields
crc
,checksum
,dataSize
andcompressedDataSize
by default.
Release 1.20.0
Common
- Updated links and filenames in the documentation.
- Improved the CI scripts and pipelines.
olp-cpp-sdk-authentication
- Fixed the
DateTime
parser to respect DST timezones on iOS. - Fixed the mechanism that determines the absolute path of the credentials file on new Windows versions, such as Windows 11.
olp-cpp-sdk-core
- Extended logging with
olp::logging::LogContext
andolp::logging::ScopedLogContext
to facilitate better management of logs. - Added logging contexts usage to the
olp::http::NetworkCurl
class. - Added a new error code
olp::client::ErrorCode::NoSpaceLeft
to signal a shortage of available space on the target device. - Extended
olp::cache::KeyValueCache
andolp::cache::DefaultCache
with new methods:Read
,Write
,Delete
, andDeleteByPrefix
to allow propagation of actual operation errors.
These methods correspond toPut
,Get
,Remove
, andRemoveKeysWithPrefix
, but returnolp::cache::OperationOutcome
. - Extended
olp::client::OlpClientSettings
with a new settingpropagate_all_cache_errors
that allows to enable the propagation of all cache errors. - Added a new way of serializing data to JSON, which outputs the result to a byte vector.
- Updated the logic to use a generated session ID for the background network session on iOS.
- Added support of Android-like build on desktops to allow running tests on host PCs.
- Fixed deprecation warnings related to C++17.
- Added background timeouts for iOS.
- Made CMake option
OLP_SDK_ENABLE_IOS_BACKGROUND_DOWNLOAD
usable only for iOS. - Added missing thread names for resource and time-intensive operations to help with profiling and debugging.
olp-cpp-sdk-dataservice-read
- Optimized memory allocations.
- Added a
DeleteFromCache
method toolp::dataservice::read::VersionedLayerClient
andolp::dataservice::read::VolatileLayerClient
to allow the propagation of the actual operation error.
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.