| #include "service-area-storage-delegate.h" |
| |
| using namespace chip::app::Clusters::ServiceArea; |
| |
| bool StorageDelegate::GetSupportedAreaById(uint32_t aAreaId, uint32_t & listIndex, AreaStructureWrapper & aSupportedArea) |
| { |
| listIndex = 0; |
| |
| // simple linear iteration to find the area with the desired areaId. |
| while (GetSupportedAreaByIndex(listIndex, aSupportedArea)) |
| { |
| if (aSupportedArea.areaID == aAreaId) |
| { |
| return true; |
| } |
| |
| ++listIndex; |
| } |
| |
| return false; |
| } |
| |
| bool StorageDelegate::IsSupportedArea(uint32_t aAreaId) |
| { |
| uint32_t ignoredIndex; |
| AreaStructureWrapper ignoredArea; |
| |
| return GetSupportedAreaById(aAreaId, ignoredIndex, ignoredArea); |
| } |
| |
| bool StorageDelegate::RemoveSupportedAreaRaw(uint32_t areaId) |
| { |
| return false; |
| } |
| |
| bool StorageDelegate::GetSupportedMapById(uint32_t aMapId, uint32_t & listIndex, MapStructureWrapper & aSupportedMap) |
| { |
| listIndex = 0; |
| |
| while (GetSupportedMapByIndex(listIndex, aSupportedMap)) |
| { |
| if (aSupportedMap.mapID == aMapId) |
| { |
| return true; |
| } |
| |
| ++listIndex; |
| } |
| |
| return false; |
| } |
| |
| bool StorageDelegate::IsSupportedMap(uint32_t aMapId) |
| { |
| uint32_t ignoredIndex; |
| MapStructureWrapper ignoredMap; |
| |
| return GetSupportedMapById(aMapId, ignoredIndex, ignoredMap); |
| } |
| |
| bool StorageDelegate::RemoveSupportedMapRaw(uint32_t mapId) |
| { |
| return false; |
| } |
| |
| bool StorageDelegate::IsSelectedArea(uint32_t aAreaId) |
| { |
| uint32_t listIndex = 0; |
| uint32_t selectedArea; |
| |
| while (GetSelectedAreaByIndex(listIndex, selectedArea)) |
| { |
| if (selectedArea == aAreaId) |
| { |
| return true; |
| } |
| |
| ++listIndex; |
| } |
| |
| return false; |
| } |
| |
| bool StorageDelegate::GetProgressElementById(uint32_t aAreaId, uint32_t & listIndex, |
| Structs::ProgressStruct::Type & aProgressElement) |
| { |
| listIndex = 0; |
| |
| // simple linear iteration to find the progress element with the desired areaID. |
| while (GetProgressElementByIndex(listIndex, aProgressElement)) |
| { |
| if (aProgressElement.areaID == aAreaId) |
| { |
| return true; |
| } |
| |
| ++listIndex; |
| } |
| |
| return false; |
| } |
| |
| bool StorageDelegate::IsProgressElement(uint32_t aAreaId) |
| { |
| uint32_t index; |
| Structs::ProgressStruct::Type progressElement; |
| |
| return GetProgressElementById(aAreaId, index, progressElement); |
| } |
| |
| // todo: Should we add default implementations for the accessor methods of the optional attributes? |
| // This is so that devices that do not support these attributes are not forced to provide an implementation. |