summaryrefslogtreecommitdiff
path: root/src/components/smart_objects/src
diff options
context:
space:
mode:
authordtrunov <dtrunov@luxoft.com>2015-12-01 10:13:12 +0200
committerdtrunov <dtrunov@luxoft.com>2016-01-25 16:03:49 +0200
commit6d4a32b1cd85b0c7301b66851973a77e32013b40 (patch)
tree8535b35c7487d54addea4ae0e591a75b65b71059 /src/components/smart_objects/src
parent73a227291c827507221ce16dc78f1c7d84bc9dc5 (diff)
downloadsdl_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')
-rw-r--r--src/components/smart_objects/src/array_schema_item.cc5
-rw-r--r--src/components/smart_objects/src/object_schema_item.cc40
-rw-r--r--src/components/smart_objects/src/schema_item.cc2
-rw-r--r--src/components/smart_objects/src/smart_schema.cc4
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) {