v1.3.0
·
827 commits
to master
since this release
Common
- Response headers are now stored in
olp::client::HttpResponse.olp::client::OlpClient::CallApi()collects and adds headers to the response. - X-Correlation-ID is now extracted from the HTTP response headers and used for subsequent requests in
olp::dataservice::read::StreamLayerClient. - Added a new backdown strategy to
olp::client::RetrySettings.
The default implementation isolp::client::ExponentialBackdownStrategythat restricts the maximum wait time during failed retries of network requests in theolp::network::client::OlpClientclass (both synchronous and asynchronous versions). The accumulated wait time during retries should not be longer than theRetrySettings.timeoutproperty. - Added
curl_global_init()andcurl_global_cleanup()to theolp::http::NetworkCurlclass (Linux default implementation).
For more information, see theolp::client::OlpClientSettingsFactory::CreateDefaultNetworkRequestHandler()function. - Fixed MSVC, Clang, and GCC warnings. Now, when you build with
-Wall -Wextra, you should not face any hidden warnings, as the codebase is protected by a pre-release verification job. - Fixed the possible thread concurrency problem in the
olp::client::OlpClientclass that resulted in a crash in some situations. - Reduced data copy in the JSON serializers to increase performance.
olp-cpp-sdk-authentication
- Added a new API to
olp::authentication::AuthenticationClientthat you can use to perform a generic federated authentication with a custom request body. - Added the
olp::authentication::AuthenticationClient::IntrospectApp()method that you can use to retrieve information
about the application associated with a particular access token. - Added a new
olp::authentication::AuthenticationClientconstructor usingolp::authentication::AuthenticationSettingsto setup network and task scheduler. It is a part of an ongoing authentication refactoring. Switch to this constructor instead of using the individual setters.
olp-cpp-sdk-dataservice-read
olp::dataservice::read::PartitionsRequestnow supports a list of partition IDs. This way, when you useolp::dataservice::read::VersionedLayerClientandolp::dataservice::read::VolatileLayerClient, you can also request certain partitions instead of the entire layer metadata.- Added the
Seekmethod toolp::dataservice::read::StreamLayerClient. This method can be used to start reading messages from a stream layer at any given position. - Added the
Pollmethod toolp::dataservice::read::StreamLayerClient. This method reads messages from a stream layer and commits successfully consumed messages before handing them over to you. - Added the
olp::dataservice::read::TileRequestclass and correspondingGetDataoverload toolp::dataservice::read::VersionedLayerClient. Now, you can get data using a tile key. Internally, the metadata retrieval is optimized by using a quadtree request and saves bandwidth on subsequentGetDatacalls. - Added additional fields to the
olp::dataservice::read::PartitionsRequestclass. Now, you can access the following additional metadata
fields: data size, compressed data size, checksum, and CRC. - Deprecated the
WithVersionand theGetVersionmethods in theolp::dataservice::read::DataRequest,olp::dataservice::read::PartitionsRequestandolp::dataservice::read::PrefetchTilesRequestclasses.olp::dataservice::read::VersionedLayerClientnow locks the catalog version either to the value provided on the constructor or by requesting the latest catalog version from the backend. This ensures that consistent data is provided for the instance lifecycle. - Fixed cache keys by appending 'partition' and 'partitions' to key values in
olp::dataservice::read::VolatileLayerClient. - Fixed the infinite loop in the
olp::dataservice::read::VersionedLayerClient::PrefetchTiles()method when min/max levels are not specified.