Releases: heremaps/here-data-sdk-cpp
Releases · heremaps/here-data-sdk-cpp
Release v1.23.1
Remove enforcement of HTTP/2 for cURL-based network.
Release v1.23.0
olp-cpp-sdk-core
- Fixed the data race in the initialization and possible wrong request cancellation for cURL-based network.
- Added the path tiling utilities that can be used to traverse and slice a
GetCoordinatessequence into tiles. - Increased the parallel connection limit to 32 for iOS network.
- Explicitly enabled support of HTTP/2 for Windows and cURL-based networks.
- iOS
Foundationlibrary is now explicitly linked toolp-cpp-sdk-core. - Extended logging for iOS network.
olp-cpp-sdk-dataservice-read
- Decreased log level for some messages.
- Decreased the amount of allocation in
QuadTreeIndexto improve performance.
Release v1.22.0
Common
- Added a CMake check to prevent changing the C++ standard if it's already set.
- Changed the log severity on some messages to decrease log size.
- Fixed the Getting Started guide URL in README.md.
- Removed propagation of the -Werror build option from LevelDB to the parent projects if LevelDB is not installed.
- Updated the recommended Boost library version to 1.82. This version is downloaded and built if the library is not installed.
olp-cpp-sdk-authentication
- Added the optional
olp::http::authentication::Settings::scopefield. It is attached to token requests and can be used on the server side in the authentication process. - Fixed compilation issues with the latest Clang deployed on macOS.
olp-cpp-sdk-core
- Added the
OLP_SDK_DISABLE_LOCATION_LOGGINGCMake option. If enabled, log message locations are not generated by the compiler to create binaries with smaller sizes. - Added the
olp::client::ErrorCode::Offlineerror code to explicitly indicate the absence of network connectivity. - Added the
olp::http::HarCaptureAdapterclass to capture network requests and generate HAR files. - Added the
olp::http::NetworkWinHttp::ResultData::log_contextfield to facilitate request lifecycle debugging. - Added an optional
olp::http::NetworkResponse::diagnostics_field of theolp::http::Diagnosticstype to report timings of network request handlings. Used with cURL versions higher than 7.61. - Fixed the
olp::client::HttpResponsenetwork statistics handling while being copied. - Removed the
com.here.olp.network.HttpClient.Request.maxRetriesclass variable used in Android network implementation requests retries. The retries are expected to be implemented on the application level. - Removed the
olp::http::NetworkAndroid::ResetRequest(...)method used in Android network implementation requests retries. The retries are expected to be implemented on the application level.
olp-cpp-sdk-dataservice-read
- Added double-buffering to
olp::dataservice::read::repository::RapidJsonByteStreamto decrease single JSON processing time and reduce memory footprint size. - Fixed issues with the
compressedDataSizefield parsing by theolp::dataservice::read::repository::PartitionsSaxHandlerclass.
Release v1.21.0
Common
- Removed deprecated
olp::client::OlpClient::SetSettings(...)method. Useolp::client::OlpClientconstructor instead. - Removed deprecated
olp::client::HttpResponse::statusfield. UseHttpResponse::GetStatus()method instead. - Removed deprecated
olp::client::HttpResponse::responsefield. UseHttpResponse::GetRawResponse()method instead. - Removed deprecated
olp::client::HttpResponse::headersfield. UseHttpResponse::GetHeaders()method instead.
olp-cpp-sdk-core
- Added
olp::client::HttpResponse::GetResponseAsBytesconvenience method to get the response body as a vector of unsigned chars. - Added
olp::client::HttpResponse::GetResponseAsStringconvenience method to get the response body content as a string. - Added
olp::client::HttpResponse::GetRawResponseconvenience 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::AlignedBoxtemplate compilation in certain environments. - Improved error handling on iOS.
NSURLErrorSecureConnectionFailed,NSURLErrorCannotFindHost,NSURLErrorDNSLookupFailedandNSURLErrorResourceUnavailableare 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,dataSizeandcompressedDataSizeby 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
DateTimeparser 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::LogContextandolp::logging::ScopedLogContextto facilitate better management of logs. - Added logging contexts usage to the
olp::http::NetworkCurlclass. - Added a new error code
olp::client::ErrorCode::NoSpaceLeftto signal a shortage of available space on the target device. - Extended
olp::cache::KeyValueCacheandolp::cache::DefaultCachewith new methods:Read,Write,Delete, andDeleteByPrefixto allow propagation of actual operation errors.
These methods correspond toPut,Get,Remove, andRemoveKeysWithPrefix, but returnolp::cache::OperationOutcome. - Extended
olp::client::OlpClientSettingswith a new settingpropagate_all_cache_errorsthat 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_DOWNLOADusable 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
DeleteFromCachemethod toolp::dataservice::read::VersionedLayerClientandolp::dataservice::read::VolatileLayerClientto allow the propagation of the actual operation error.
Release 1.19.0
Common
- Added
Promoteto theolp::cache::KeyValueCacheAPI 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::SignInClientto retry based on the configuration inolp::client::RetrySettingsinstead 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_errorexplicitly to/olp/core/porting/shared_mutex.hto support GCC 13.2. - Changed
olp::http::NetworkCurlto log the location of the certificate used. - Changed
olp::client::HRN::ToString()andolp::client::HRN::ToCatalogHRNString()implementations to avoid streams. - Changed the
olp::http::Md5LookupGetBySubjectsignature 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::Opento 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::NetworkCurlclass to use 4x more opened connections than requests to avoid issues with connection caching. - Extended
olp::client::RetrySettingswithconnection_timeoutandtransfer_timeout. - Implemented performance improvements.
- Updated the minimal required version of
cURLfor SSL blob support to 7.77.0. - Added support for background downloads for iOS.
- Fixed possible data race in
olp::cache::DefaultCachewhen the cache size is being checked. - Added
OLP_SDK_ENABLE_OFFLINE_MODECMake option to enforce full offline mode for the SDK. - Changed
olp::cache::DiskCache::Opento returnolp::cache::OpenResult::Postponedwhen the protected can't be initialized at the given moment due to restrictions like missing permissions. - Changed
olp::cache::DefaultCache::Opento 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::PartitionsCacheRepositorythat occurred when the stream closed before parsing started. - Changed the
olp::dataservice::read::repository::PartitionsSaxHandlerto be cancellable. - Extended
olp::dataservice::read::VersionedLayerClientwithProtect(..)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::Releaseto 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.txtto include the externals include directory. - Added the possibility to specify DNS using
WithDNSServersto theolp::http::NetworkSettingsAPI. - Improved logging in
olp::client::PendingUrlRequests. - Added
CallApiStreamto theolp::client::OlpClientAPI that uses theSAXparser andJSONbyte stream to parse the layer partitions while they are downloading. - Fixed the
boostandrapidjsonincludes path resolution inolp-cpp-sdk-core/CMakeLists.txt. - Changed the log level to
WARNINGfor the error message when the max number ofHTTPrequests has been reached inolp::http::OLPNetworkIOS::Send. - Added a status code for failed
HTTPrequests inolp::dataservice::read::repository::PrefetchTilesRepository. - Censored credentials in log messages for the network logs on the
DEBUGlog level. - Fixed the
rapidjsoninclude 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::PartitionsRepositoryAPI. - Added default copy and move constructors and operators to the
modelnamespace classes.
olp-cpp-sdk-dataservice-write
- Added default copy and move constructors and operators to the
modelnamespace classes.