diff options
author | dtrunov <dtrunov@luxoft.com> | 2015-12-01 10:13:12 +0200 |
---|---|---|
committer | dtrunov <dtrunov@luxoft.com> | 2016-01-25 16:03:49 +0200 |
commit | 6d4a32b1cd85b0c7301b66851973a77e32013b40 (patch) | |
tree | 8535b35c7487d54addea4ae0e591a75b65b71059 /src/components/smart_objects/src | |
parent | 73a227291c827507221ce16dc78f1c7d84bc9dc5 (diff) | |
download | sdl_core-6d4a32b1cd85b0c7301b66851973a77e32013b40.tar.gz |
SDL transfer PlayTone parameter to HMI in speak request.
Added ability to remove fake parameter according with
MOBILE_API.xml
Closes-bug:[APPLINK-17980](https://adc.luxoft.com/jira/browse/APPLINK-17980)
Diffstat (limited to 'src/components/smart_objects/src')
4 files changed, 29 insertions, 22 deletions
diff --git a/src/components/smart_objects/src/array_schema_item.cc b/src/components/smart_objects/src/array_schema_item.cc index a7c44bba3b..d85454bd1a 100644 --- a/src/components/smart_objects/src/array_schema_item.cc +++ b/src/components/smart_objects/src/array_schema_item.cc @@ -65,10 +65,11 @@ Errors::eType CArraySchemaItem::validate(const SmartObject& Object) { return Errors::OK; } -void CArraySchemaItem::applySchema(SmartObject& Object) { +void CArraySchemaItem::applySchema(SmartObject& Object, + const bool RemoveFakeParameters) { if (SmartType_Array == Object.getType()) { for (size_t i = 0U; i < Object.length(); ++i) { - mElementSchemaItem->applySchema(Object[i]); + mElementSchemaItem->applySchema(Object[i], RemoveFakeParameters); } } } diff --git a/src/components/smart_objects/src/object_schema_item.cc b/src/components/smart_objects/src/object_schema_item.cc index 8f572e427d..f2cc3eac41 100644 --- a/src/components/smart_objects/src/object_schema_item.cc +++ b/src/components/smart_objects/src/object_schema_item.cc @@ -87,25 +87,14 @@ Errors::eType CObjectSchemaItem::validate(const SmartObject& object) { return Errors::OK; } -void CObjectSchemaItem::applySchema(SmartObject& Object) { +void CObjectSchemaItem::applySchema(SmartObject& Object, + const bool RemoveFakeParameters) { if (SmartType_Map != Object.getType()) { return; } - for (SmartMap::const_iterator it = Object.map_begin(); it != Object.map_end(); ) { - const std::string& key = it->first; - if (mMembers.end() == mMembers.find(key) - // FIXME(EZamakhov): Remove illegal usage of filed in AM - && key.compare(connection_key) != 0 - && key.compare(binary_data) != 0 - && key.compare(app_id) != 0 - ) { - ++it; - // FIXME(DK): remove fake params. There are error responses with params - // Object.erase(key); - } else { - it++; - } + if (RemoveFakeParameters) { + RemoveFakeParams(Object); } SmartObject default_value; @@ -115,10 +104,10 @@ void CObjectSchemaItem::applySchema(SmartObject& Object) { if (!Object.keyExists(key)) { if (member.mSchemaItem->setDefaultValue(default_value)) { Object[key] = default_value; - member.mSchemaItem->applySchema(Object[key]); + member.mSchemaItem->applySchema(Object[key], RemoveFakeParameters); } } else { - member.mSchemaItem->applySchema(Object[key]); + member.mSchemaItem->applySchema(Object[key], RemoveFakeParameters); } } } @@ -169,5 +158,22 @@ size_t CObjectSchemaItem::GetMemberSize() { CObjectSchemaItem::CObjectSchemaItem(const Members& members) : mMembers(members) {} +void CObjectSchemaItem::RemoveFakeParams(SmartObject& Object) { + for (SmartMap::const_iterator it = Object.map_begin(); it != Object.map_end(); ) { + const std::string& key = it->first; + if (mMembers.end() == mMembers.find(key) + // FIXME(EZamakhov): Remove illegal usage of filed in AM + && key.compare(connection_key) != 0 + && key.compare(binary_data) != 0 + && key.compare(app_id) != 0 + ) { + ++it; + Object.erase(key); + } else { + it++; + } + } +} + } // namespace NsSmartObjects } // namespace NsSmartDeviceLink diff --git a/src/components/smart_objects/src/schema_item.cc b/src/components/smart_objects/src/schema_item.cc index b75e5a35ea..a78afe1f2c 100644 --- a/src/components/smart_objects/src/schema_item.cc +++ b/src/components/smart_objects/src/schema_item.cc @@ -47,7 +47,7 @@ bool ISchemaItem::hasDefaultValue(SmartObject& Object) { return false; } -void ISchemaItem::applySchema(SmartObject& Object) { +void ISchemaItem::applySchema(SmartObject& Object, const bool RemoveFakeParameters) { } void ISchemaItem::unapplySchema(SmartObject& Object) { diff --git a/src/components/smart_objects/src/smart_schema.cc b/src/components/smart_objects/src/smart_schema.cc index 36c153332a..3a9cd22a0a 100644 --- a/src/components/smart_objects/src/smart_schema.cc +++ b/src/components/smart_objects/src/smart_schema.cc @@ -51,8 +51,8 @@ void CSmartSchema::setSchemaItem(const ISchemaItemPtr schemaItem) { mSchemaItem = schemaItem; } -void CSmartSchema::applySchema(SmartObject& Object) { - mSchemaItem->applySchema(Object); +void CSmartSchema::applySchema(SmartObject& Object, const bool RemoveFakeParameters) { + mSchemaItem->applySchema(Object, RemoveFakeParameters); } void CSmartSchema::unapplySchema(SmartObject& Object) { |