Releases: configcat/cpp-sdk
Releases · configcat/cpp-sdk
v4.0.5
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.getreturnsstd::shared_ptr<ConfigCatClient>instead of raw pointer.getValuefunctions expectconst std::shared_ptr<ConfigCatUser>&as user param instead of const raw pointer.- The generic
getValuefunction returnsstd::optional<Value>instead ofstd::shared_ptr<Value>. In case of any failure,std::nulloptwill be returned. getKeyAndValuefunction returnsstd::optional<KeyValue>instead ofstd::shared_ptr<KeyValue>.Hookscallback changes:onErrorreports the occurred exception withconst std::exception_ptr&argument.onFlagEvaluatedcallback's argument is changed toconst EvaluationDetailsBase&fromconst EvaluationDetails&.
- Renamed
RolloutRuletoTargetingRule. - Renamed
RolloutPercentageItemtoPercentageOption. EvaluationDetailschanges:matchedEvaluationRuleis renamed tomatchedTargetingRule.matchedEvaluationPercentageRuleis renamed tomatchedPercentageOption.- Introduced
std::exception_ptr errorException. - Introduced
std::shared_ptrandstd::optionaltypes instead of const ref/pointers.
- Introduced
ResponseErrorCodeinstead ofbool operationTimedOutinResponsestruct. - Logging changes:
- Log level names are now in capital format to follow other ConfigCat SDKs.
- The
Logfunction now getsconst std::exception_ptr& exceptionas an argument.unwrap_exception_messagefunction can be used to get the message of this exception.
- The
custominit parameter ofConfigCatUsernow 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_isostringandmake_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_ADAPTERcmake option andCONFIGCAT_EXTERNAL_NETWORK_ADAPTER_ENABLEDcpp define. If you turn it on, the cpp-sdk won't include thelibcurllibrary. 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