Releases: configcat/cpp-sdk
Releases · configcat/cpp-sdk
v4.0.4
v4.0.3
v4.0.2
v4.0.1
v4.0.0
Added
- Support for the new Config JSON v6 format: updated the config model and implemented new features in setting evaluation logic.
- Overhaul setting evaluation-related logging and make it consistent across SDKs.
- Improve consistency of config JSON deserialization error reporting.
- Performance improvements to setting evaluation (building of evaluation log is expensive, so it is skipped when info level logging is turned off).
Breaking changes
ConfigCatClient.get
returnsstd::shared_ptr<ConfigCatClient>
instead of raw pointer.getValue
functions expectconst std::shared_ptr<ConfigCatUser>&
as user param instead of const raw pointer.- The generic
getValue
function returnsstd::optional<Value>
instead ofstd::shared_ptr<Value>
. In case of any failure,std::nullopt
will be returned. getKeyAndValue
function returnsstd::optional<KeyValue>
instead ofstd::shared_ptr<KeyValue>
.Hooks
callback changes:onError
reports the occurred exception withconst std::exception_ptr&
argument.onFlagEvaluated
callback's argument is changed toconst EvaluationDetailsBase&
fromconst EvaluationDetails&
.
- Renamed
RolloutRule
toTargetingRule
. - Renamed
RolloutPercentageItem
toPercentageOption
. EvaluationDetails
changes:matchedEvaluationRule
is renamed tomatchedTargetingRule
.matchedEvaluationPercentageRule
is renamed tomatchedPercentageOption
.- Introduced
std::exception_ptr errorException
. - Introduced
std::shared_ptr
andstd::optional
types instead of const ref/pointers.
- Introduced
ResponseErrorCode
instead ofbool operationTimedOut
inResponse
struct. - Logging changes:
- Log level names are now in capital format to follow other ConfigCat SDKs.
- The
Log
function now getsconst std::exception_ptr& exception
as an argument.unwrap_exception_message
function can be used to get the message of this exception.
- The
custom
init parameter ofConfigCatUser
now acceptsstd::string
,double
,std::chrono::system_clock::time_point
,std::vector<std::string>
typed values, not just strings. This allows the usage of various types in the user object's custom attributes. - Introduced
datetime_to_isostring
andmake_datetime(int year, int month, int day, int hour, int min, int sec, int millisec)
helpers intimeutils.h
v3.2.0
- Introduced
CONFIGCAT_USE_EXTERNAL_NETWORK_ADAPTER
cmake option andCONFIGCAT_EXTERNAL_NETWORK_ADAPTER_ENABLED
cpp define. If you turn it on, the cpp-sdk won't include thelibcurl
library. In this case, in the ConfigCat options you should add a custom http session adapter. ConfigCat will use this custom adapter for network requests.
v3.1.1
v3.1.0
v3.0.0
Please note that this version has several breaking changes in logging and custom cache implementation. You can find the detailed list of breaking changes below.
- Updated logging:
- Include event IDs in log messages to make identification of log events easier.
- Revise log messages and make them consistent across the ConfigCat SDKs.
- Revise caching of downloaded config data:
- Use a standardized config cache key generation algorithm and cache payload format to allow shared caches to be used by SDKs of