diff options
author | Yaroslav Mamykin (GitHub) <ymamykin@luxoft.com> | 2019-10-04 17:08:19 +0300 |
---|---|---|
committer | Yarik <ymamykin@gmail.com> | 2019-11-15 15:16:38 +0200 |
commit | e95b2f6b51fb1d5f615c17dafec291b7cd2d7bf6 (patch) | |
tree | 499c4683dd5cf3236fbd0b706d10037de9efb49e | |
parent | 352eec9ec6f48fdaf43476a3511f8ecd86d43384 (diff) | |
download | sdl_core-e95b2f6b51fb1d5f615c17dafec291b7cd2d7bf6.tar.gz |
fixup! Fix versioning appliance for vehicle data
3 files changed, 21 insertions, 8 deletions
diff --git a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/custom_vehicle_data_manager_impl.cc b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/custom_vehicle_data_manager_impl.cc index 9df6d922aa..df401b8a44 100644 --- a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/custom_vehicle_data_manager_impl.cc +++ b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/custom_vehicle_data_manager_impl.cc @@ -289,7 +289,9 @@ void CustomVehicleDataManagerImpl::UpdateVehicleDataItems() { item.until.is_initialized() ? std::string(*item.until) : "", bool(*item.deprecated), bool(*item.removed), - history); + history, + true); // Mark member as custom as soon as custom data is treated + // in different way } case SMemberType::SMEMBER_VDR_MOBILE: { // valid since struct_schema_items is not used in @@ -305,7 +307,9 @@ void CustomVehicleDataManagerImpl::UpdateVehicleDataItems() { item.until.is_initialized() ? std::string(*item.until) : "", bool(*item.deprecated), bool(*item.removed), - history); + history, + true); // Mark member as custom as soon as custom data is treated + // in different way } case SMemberType::SMEMBER_MOBILE: { TSchemaItemParameter<VehicleDataItem> tschema_item(item); @@ -318,7 +322,9 @@ void CustomVehicleDataManagerImpl::UpdateVehicleDataItems() { item.until.is_initialized() ? std::string(*item.until) : "", bool(*item.deprecated), bool(*item.removed), - history); + history, + true); // Mark member as custom as soon as custom data is treated + // in different way } case SMemberType::SMEMBER_BOOL_HMI: { auto member_schema = diff --git a/src/components/smart_objects/include/smart_objects/object_schema_item.h b/src/components/smart_objects/include/smart_objects/object_schema_item.h index 3ff8ada8c6..ed2c8fbd8a 100644 --- a/src/components/smart_objects/include/smart_objects/object_schema_item.h +++ b/src/components/smart_objects/include/smart_objects/object_schema_item.h @@ -67,7 +67,8 @@ struct SMember { const std::string& Until = "", const bool IsDeprecated = false, const bool IsRemoved = false, - const std::vector<SMember>& history_vector = {}); + const std::vector<SMember>& history_vector = {}, + const bool IsCustom = false); /** * @brief Checks the version a parameter was removed (until) * If the mobile's msg version is greater than or @@ -89,6 +90,7 @@ struct SMember { bool mIsRemoved; mutable bool mIsValid; std::vector<SMember> mHistoryVector; + bool mIsCustom; }; typedef std::map<std::string, SMember> Members; diff --git a/src/components/smart_objects/src/object_schema_item.cc b/src/components/smart_objects/src/object_schema_item.cc index 8b75e79130..cb277f2844 100644 --- a/src/components/smart_objects/src/object_schema_item.cc +++ b/src/components/smart_objects/src/object_schema_item.cc @@ -49,7 +49,8 @@ SMember::SMember() , mIsMandatory(true) , mIsDeprecated(false) , mIsRemoved(false) - , mIsValid(true) {} + , mIsValid(true) + , mIsCustom(false) {} SMember::SMember(const ISchemaItemPtr SchemaItem, const bool IsMandatory, @@ -57,8 +58,12 @@ SMember::SMember(const ISchemaItemPtr SchemaItem, const std::string& Until, const bool IsDeprecated, const bool IsRemoved, - const std::vector<SMember>& history_vector) - : mSchemaItem(SchemaItem), mIsMandatory(IsMandatory), mIsValid(true) { + const std::vector<SMember>& history_vector, + const bool IsCustom) + : mSchemaItem(SchemaItem) + , mIsMandatory(IsMandatory) + , mIsValid(true) + , mIsCustom(IsCustom) { if (Since.size() > 0) { utils::SemanticVersion since_struct(Since); if (since_struct.isValid()) { @@ -80,7 +85,7 @@ bool SMember::CheckHistoryFieldVersion( const utils::SemanticVersion& MessageVersion) const { if (MessageVersion.isValid()) { if (mSince != boost::none) { - if (MessageVersion < mSince.get()) { + if (MessageVersion < mSince.get() && !mIsCustom) { return false; // Msg version predates `since` field } else { if (mUntil != boost::none && (MessageVersion >= mUntil.get())) { |