Releases: heremaps/here-data-sdk-cpp
Releases · heremaps/here-data-sdk-cpp
Release v1.24.0
Common
- Added CMake option
OLP_SDK_USE_STD_OPTIONALto enforcestd::optionalfor C++17 and above instead ofboost::optional. - Added CMake option
OLP_SDK_USE_STD_ANYto enforcestd::anyfor C++17 and above instead ofboost::any. - Migrated from
boost::optionaltoolp::porting::optionalthroughout the codebase. - Migrated from
boost::any_casttoolp::porting::any_castthroughout the codebase. - Added missing headers for compatibility with newer compilers.
- Fixed compatibility issues with older Boost versions.
olp-cpp-sdk-authentication
- Added support for custom request body
olp::authentication::AuthenticationClient::SignInProperties::custom_bodyto be sent to authentication endpoint URL from credentials.
olp-cpp-sdk-core
- Added censoring API
olp::logging::Log::addCensorto mask sensitive values from log messages at runtime. - Added optional diagnostic output to the network layer with
olp::http::NetworkInitializationSettings::diagnostic_output_path. - Added
olp::cache::KeyValueCache::ListKeys()method to list keys available in the cache. - Use standard version of
shared_lockfor C++14. - Added implementation for
olp::geo::GeoRectangleoperators==and!=. - Fixed thread safety and lifetime issues in the network layer implementations.
- Removed custom certificate handling in iOS network implementation due to deprecated API usage and transient errors.
- Disabled cURL transfer encoding for old versions to prevent "TE" header issues in HTTP/2 (fixed in cURL 8.12.0).
- Fixed KeyGenerator to be always included in
olp-sdk-coreregardless ofOLP_SDK_ENABLE_DEFAULT_CACHEvalue. - Added ability to override Java version via
OLP_SDK_JAVA_TARGETfor Android builds to support newer Java compilers.
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.