| /* |
| * |
| * Copyright (c) 2022 Project CHIP Authors |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| // THIS FILE IS GENERATED BY ZAP |
| #include <clusters/shared/Structs.h> |
| |
| #include <app/data-model/Decode.h> |
| #include <app/data-model/StructDecodeIterator.h> |
| #include <app/data-model/WrappedStructEncoder.h> |
| |
| namespace chip { |
| namespace app { |
| namespace Clusters { |
| // Structs shared across multiple clusters. |
| namespace detail { |
| namespace Structs { |
| |
| namespace ModeTagStruct { |
| CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const |
| { |
| DataModel::WrappedStructEncoder encoder{ aWriter, aTag }; |
| encoder.Encode(to_underlying(Fields::kMfgCode), mfgCode); |
| encoder.Encode(to_underlying(Fields::kValue), value); |
| return encoder.Finalize(); |
| } |
| |
| CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader) |
| { |
| detail::StructDecodeIterator __iterator(reader); |
| while (true) |
| { |
| uint8_t __context_tag = 0; |
| CHIP_ERROR err = __iterator.Next(__context_tag); |
| VerifyOrReturnError(err != CHIP_ERROR_END_OF_TLV, CHIP_NO_ERROR); |
| ReturnErrorOnFailure(err); |
| |
| if (__context_tag == to_underlying(Fields::kMfgCode)) |
| { |
| err = DataModel::Decode(reader, mfgCode); |
| } |
| else if (__context_tag == to_underlying(Fields::kValue)) |
| { |
| err = DataModel::Decode(reader, value); |
| } |
| |
| ReturnErrorOnFailure(err); |
| } |
| } |
| |
| } // namespace ModeTagStruct |
| |
| namespace ModeOptionStruct { |
| CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const |
| { |
| DataModel::WrappedStructEncoder encoder{ aWriter, aTag }; |
| encoder.Encode(to_underlying(Fields::kLabel), label); |
| encoder.Encode(to_underlying(Fields::kMode), mode); |
| encoder.Encode(to_underlying(Fields::kModeTags), modeTags); |
| return encoder.Finalize(); |
| } |
| |
| CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader) |
| { |
| detail::StructDecodeIterator __iterator(reader); |
| while (true) |
| { |
| uint8_t __context_tag = 0; |
| CHIP_ERROR err = __iterator.Next(__context_tag); |
| VerifyOrReturnError(err != CHIP_ERROR_END_OF_TLV, CHIP_NO_ERROR); |
| ReturnErrorOnFailure(err); |
| |
| if (__context_tag == to_underlying(Fields::kLabel)) |
| { |
| err = DataModel::Decode(reader, label); |
| } |
| else if (__context_tag == to_underlying(Fields::kMode)) |
| { |
| err = DataModel::Decode(reader, mode); |
| } |
| else if (__context_tag == to_underlying(Fields::kModeTags)) |
| { |
| err = DataModel::Decode(reader, modeTags); |
| } |
| |
| ReturnErrorOnFailure(err); |
| } |
| } |
| |
| } // namespace ModeOptionStruct |
| |
| namespace MeasurementAccuracyRangeStruct { |
| CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const |
| { |
| DataModel::WrappedStructEncoder encoder{ aWriter, aTag }; |
| encoder.Encode(to_underlying(Fields::kRangeMin), rangeMin); |
| encoder.Encode(to_underlying(Fields::kRangeMax), rangeMax); |
| encoder.Encode(to_underlying(Fields::kPercentMax), percentMax); |
| encoder.Encode(to_underlying(Fields::kPercentMin), percentMin); |
| encoder.Encode(to_underlying(Fields::kPercentTypical), percentTypical); |
| encoder.Encode(to_underlying(Fields::kFixedMax), fixedMax); |
| encoder.Encode(to_underlying(Fields::kFixedMin), fixedMin); |
| encoder.Encode(to_underlying(Fields::kFixedTypical), fixedTypical); |
| return encoder.Finalize(); |
| } |
| |
| CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader) |
| { |
| detail::StructDecodeIterator __iterator(reader); |
| while (true) |
| { |
| uint8_t __context_tag = 0; |
| CHIP_ERROR err = __iterator.Next(__context_tag); |
| VerifyOrReturnError(err != CHIP_ERROR_END_OF_TLV, CHIP_NO_ERROR); |
| ReturnErrorOnFailure(err); |
| |
| if (__context_tag == to_underlying(Fields::kRangeMin)) |
| { |
| err = DataModel::Decode(reader, rangeMin); |
| } |
| else if (__context_tag == to_underlying(Fields::kRangeMax)) |
| { |
| err = DataModel::Decode(reader, rangeMax); |
| } |
| else if (__context_tag == to_underlying(Fields::kPercentMax)) |
| { |
| err = DataModel::Decode(reader, percentMax); |
| } |
| else if (__context_tag == to_underlying(Fields::kPercentMin)) |
| { |
| err = DataModel::Decode(reader, percentMin); |
| } |
| else if (__context_tag == to_underlying(Fields::kPercentTypical)) |
| { |
| err = DataModel::Decode(reader, percentTypical); |
| } |
| else if (__context_tag == to_underlying(Fields::kFixedMax)) |
| { |
| err = DataModel::Decode(reader, fixedMax); |
| } |
| else if (__context_tag == to_underlying(Fields::kFixedMin)) |
| { |
| err = DataModel::Decode(reader, fixedMin); |
| } |
| else if (__context_tag == to_underlying(Fields::kFixedTypical)) |
| { |
| err = DataModel::Decode(reader, fixedTypical); |
| } |
| |
| ReturnErrorOnFailure(err); |
| } |
| } |
| |
| } // namespace MeasurementAccuracyRangeStruct |
| |
| namespace MeasurementAccuracyStruct { |
| CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const |
| { |
| DataModel::WrappedStructEncoder encoder{ aWriter, aTag }; |
| encoder.Encode(to_underlying(Fields::kMeasurementType), measurementType); |
| encoder.Encode(to_underlying(Fields::kMeasured), measured); |
| encoder.Encode(to_underlying(Fields::kMinMeasuredValue), minMeasuredValue); |
| encoder.Encode(to_underlying(Fields::kMaxMeasuredValue), maxMeasuredValue); |
| encoder.Encode(to_underlying(Fields::kAccuracyRanges), accuracyRanges); |
| return encoder.Finalize(); |
| } |
| |
| CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader) |
| { |
| detail::StructDecodeIterator __iterator(reader); |
| while (true) |
| { |
| uint8_t __context_tag = 0; |
| CHIP_ERROR err = __iterator.Next(__context_tag); |
| VerifyOrReturnError(err != CHIP_ERROR_END_OF_TLV, CHIP_NO_ERROR); |
| ReturnErrorOnFailure(err); |
| |
| if (__context_tag == to_underlying(Fields::kMeasurementType)) |
| { |
| err = DataModel::Decode(reader, measurementType); |
| } |
| else if (__context_tag == to_underlying(Fields::kMeasured)) |
| { |
| err = DataModel::Decode(reader, measured); |
| } |
| else if (__context_tag == to_underlying(Fields::kMinMeasuredValue)) |
| { |
| err = DataModel::Decode(reader, minMeasuredValue); |
| } |
| else if (__context_tag == to_underlying(Fields::kMaxMeasuredValue)) |
| { |
| err = DataModel::Decode(reader, maxMeasuredValue); |
| } |
| else if (__context_tag == to_underlying(Fields::kAccuracyRanges)) |
| { |
| err = DataModel::Decode(reader, accuracyRanges); |
| } |
| |
| ReturnErrorOnFailure(err); |
| } |
| } |
| |
| } // namespace MeasurementAccuracyStruct |
| |
| namespace ApplicationStruct { |
| CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const |
| { |
| DataModel::WrappedStructEncoder encoder{ aWriter, aTag }; |
| encoder.Encode(to_underlying(Fields::kCatalogVendorID), catalogVendorID); |
| encoder.Encode(to_underlying(Fields::kApplicationID), applicationID); |
| return encoder.Finalize(); |
| } |
| |
| CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader) |
| { |
| detail::StructDecodeIterator __iterator(reader); |
| while (true) |
| { |
| uint8_t __context_tag = 0; |
| CHIP_ERROR err = __iterator.Next(__context_tag); |
| VerifyOrReturnError(err != CHIP_ERROR_END_OF_TLV, CHIP_NO_ERROR); |
| ReturnErrorOnFailure(err); |
| |
| if (__context_tag == to_underlying(Fields::kCatalogVendorID)) |
| { |
| err = DataModel::Decode(reader, catalogVendorID); |
| } |
| else if (__context_tag == to_underlying(Fields::kApplicationID)) |
| { |
| err = DataModel::Decode(reader, applicationID); |
| } |
| |
| ReturnErrorOnFailure(err); |
| } |
| } |
| |
| } // namespace ApplicationStruct |
| |
| namespace ErrorStateStruct { |
| CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const |
| { |
| DataModel::WrappedStructEncoder encoder{ aWriter, aTag }; |
| encoder.Encode(to_underlying(Fields::kErrorStateID), errorStateID); |
| encoder.Encode(to_underlying(Fields::kErrorStateLabel), errorStateLabel); |
| encoder.Encode(to_underlying(Fields::kErrorStateDetails), errorStateDetails); |
| return encoder.Finalize(); |
| } |
| |
| CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader) |
| { |
| detail::StructDecodeIterator __iterator(reader); |
| while (true) |
| { |
| uint8_t __context_tag = 0; |
| CHIP_ERROR err = __iterator.Next(__context_tag); |
| VerifyOrReturnError(err != CHIP_ERROR_END_OF_TLV, CHIP_NO_ERROR); |
| ReturnErrorOnFailure(err); |
| |
| if (__context_tag == to_underlying(Fields::kErrorStateID)) |
| { |
| err = DataModel::Decode(reader, errorStateID); |
| } |
| else if (__context_tag == to_underlying(Fields::kErrorStateLabel)) |
| { |
| err = DataModel::Decode(reader, errorStateLabel); |
| } |
| else if (__context_tag == to_underlying(Fields::kErrorStateDetails)) |
| { |
| err = DataModel::Decode(reader, errorStateDetails); |
| } |
| |
| ReturnErrorOnFailure(err); |
| } |
| } |
| |
| } // namespace ErrorStateStruct |
| |
| namespace ICEServerStruct { |
| CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const |
| { |
| DataModel::WrappedStructEncoder encoder{ aWriter, aTag }; |
| encoder.Encode(to_underlying(Fields::kUrls), urls); |
| encoder.Encode(to_underlying(Fields::kUsername), username); |
| encoder.Encode(to_underlying(Fields::kCredential), credential); |
| encoder.Encode(to_underlying(Fields::kCaid), caid); |
| return encoder.Finalize(); |
| } |
| |
| CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader) |
| { |
| detail::StructDecodeIterator __iterator(reader); |
| while (true) |
| { |
| uint8_t __context_tag = 0; |
| CHIP_ERROR err = __iterator.Next(__context_tag); |
| VerifyOrReturnError(err != CHIP_ERROR_END_OF_TLV, CHIP_NO_ERROR); |
| ReturnErrorOnFailure(err); |
| |
| if (__context_tag == to_underlying(Fields::kUrls)) |
| { |
| err = DataModel::Decode(reader, urls); |
| } |
| else if (__context_tag == to_underlying(Fields::kUsername)) |
| { |
| err = DataModel::Decode(reader, username); |
| } |
| else if (__context_tag == to_underlying(Fields::kCredential)) |
| { |
| err = DataModel::Decode(reader, credential); |
| } |
| else if (__context_tag == to_underlying(Fields::kCaid)) |
| { |
| err = DataModel::Decode(reader, caid); |
| } |
| |
| ReturnErrorOnFailure(err); |
| } |
| } |
| |
| } // namespace ICEServerStruct |
| |
| namespace LabelStruct { |
| CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const |
| { |
| DataModel::WrappedStructEncoder encoder{ aWriter, aTag }; |
| encoder.Encode(to_underlying(Fields::kLabel), label); |
| encoder.Encode(to_underlying(Fields::kValue), value); |
| return encoder.Finalize(); |
| } |
| |
| CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader) |
| { |
| detail::StructDecodeIterator __iterator(reader); |
| while (true) |
| { |
| uint8_t __context_tag = 0; |
| CHIP_ERROR err = __iterator.Next(__context_tag); |
| VerifyOrReturnError(err != CHIP_ERROR_END_OF_TLV, CHIP_NO_ERROR); |
| ReturnErrorOnFailure(err); |
| |
| if (__context_tag == to_underlying(Fields::kLabel)) |
| { |
| err = DataModel::Decode(reader, label); |
| } |
| else if (__context_tag == to_underlying(Fields::kValue)) |
| { |
| err = DataModel::Decode(reader, value); |
| } |
| |
| ReturnErrorOnFailure(err); |
| } |
| } |
| |
| } // namespace LabelStruct |
| |
| namespace OperationalStateStruct { |
| CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const |
| { |
| DataModel::WrappedStructEncoder encoder{ aWriter, aTag }; |
| encoder.Encode(to_underlying(Fields::kOperationalStateID), operationalStateID); |
| encoder.Encode(to_underlying(Fields::kOperationalStateLabel), operationalStateLabel); |
| return encoder.Finalize(); |
| } |
| |
| CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader) |
| { |
| detail::StructDecodeIterator __iterator(reader); |
| while (true) |
| { |
| uint8_t __context_tag = 0; |
| CHIP_ERROR err = __iterator.Next(__context_tag); |
| VerifyOrReturnError(err != CHIP_ERROR_END_OF_TLV, CHIP_NO_ERROR); |
| ReturnErrorOnFailure(err); |
| |
| if (__context_tag == to_underlying(Fields::kOperationalStateID)) |
| { |
| err = DataModel::Decode(reader, operationalStateID); |
| } |
| else if (__context_tag == to_underlying(Fields::kOperationalStateLabel)) |
| { |
| err = DataModel::Decode(reader, operationalStateLabel); |
| } |
| |
| ReturnErrorOnFailure(err); |
| } |
| } |
| |
| } // namespace OperationalStateStruct |
| |
| namespace ViewportStruct { |
| CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const |
| { |
| DataModel::WrappedStructEncoder encoder{ aWriter, aTag }; |
| encoder.Encode(to_underlying(Fields::kX1), x1); |
| encoder.Encode(to_underlying(Fields::kY1), y1); |
| encoder.Encode(to_underlying(Fields::kX2), x2); |
| encoder.Encode(to_underlying(Fields::kY2), y2); |
| return encoder.Finalize(); |
| } |
| |
| CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader) |
| { |
| detail::StructDecodeIterator __iterator(reader); |
| while (true) |
| { |
| uint8_t __context_tag = 0; |
| CHIP_ERROR err = __iterator.Next(__context_tag); |
| VerifyOrReturnError(err != CHIP_ERROR_END_OF_TLV, CHIP_NO_ERROR); |
| ReturnErrorOnFailure(err); |
| |
| if (__context_tag == to_underlying(Fields::kX1)) |
| { |
| err = DataModel::Decode(reader, x1); |
| } |
| else if (__context_tag == to_underlying(Fields::kY1)) |
| { |
| err = DataModel::Decode(reader, y1); |
| } |
| else if (__context_tag == to_underlying(Fields::kX2)) |
| { |
| err = DataModel::Decode(reader, x2); |
| } |
| else if (__context_tag == to_underlying(Fields::kY2)) |
| { |
| err = DataModel::Decode(reader, y2); |
| } |
| |
| ReturnErrorOnFailure(err); |
| } |
| } |
| |
| } // namespace ViewportStruct |
| |
| namespace WebRTCSessionStruct { |
| CHIP_ERROR Type::EncodeForWrite(TLV::TLVWriter & aWriter, TLV::Tag aTag) const |
| { |
| return DoEncode(aWriter, aTag, NullOptional); |
| } |
| |
| CHIP_ERROR Type::EncodeForRead(TLV::TLVWriter & aWriter, TLV::Tag aTag, FabricIndex aAccessingFabricIndex) const |
| { |
| return DoEncode(aWriter, aTag, MakeOptional(aAccessingFabricIndex)); |
| } |
| |
| CHIP_ERROR Type::DoEncode(TLV::TLVWriter & aWriter, TLV::Tag aTag, const Optional<FabricIndex> & aAccessingFabricIndex) const |
| { |
| |
| DataModel::WrappedStructEncoder encoder{ aWriter, aTag }; |
| |
| encoder.Encode(to_underlying(Fields::kId), id); |
| encoder.Encode(to_underlying(Fields::kPeerNodeID), peerNodeID); |
| encoder.Encode(to_underlying(Fields::kPeerEndpointID), peerEndpointID); |
| encoder.Encode(to_underlying(Fields::kStreamUsage), streamUsage); |
| encoder.Encode(to_underlying(Fields::kVideoStreamID), videoStreamID); |
| encoder.Encode(to_underlying(Fields::kAudioStreamID), audioStreamID); |
| encoder.Encode(to_underlying(Fields::kMetadataOptions), metadataOptions); |
| if (aAccessingFabricIndex.HasValue()) |
| { |
| encoder.Encode(to_underlying(Fields::kFabricIndex), fabricIndex); |
| } |
| |
| return encoder.Finalize(); |
| } |
| |
| CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader) |
| { |
| detail::StructDecodeIterator __iterator(reader); |
| while (true) |
| { |
| uint8_t __context_tag = 0; |
| CHIP_ERROR err = __iterator.Next(__context_tag); |
| VerifyOrReturnError(err != CHIP_ERROR_END_OF_TLV, CHIP_NO_ERROR); |
| ReturnErrorOnFailure(err); |
| |
| if (__context_tag == to_underlying(Fields::kId)) |
| { |
| err = DataModel::Decode(reader, id); |
| } |
| else if (__context_tag == to_underlying(Fields::kPeerNodeID)) |
| { |
| err = DataModel::Decode(reader, peerNodeID); |
| } |
| else if (__context_tag == to_underlying(Fields::kPeerEndpointID)) |
| { |
| err = DataModel::Decode(reader, peerEndpointID); |
| } |
| else if (__context_tag == to_underlying(Fields::kStreamUsage)) |
| { |
| err = DataModel::Decode(reader, streamUsage); |
| } |
| else if (__context_tag == to_underlying(Fields::kVideoStreamID)) |
| { |
| err = DataModel::Decode(reader, videoStreamID); |
| } |
| else if (__context_tag == to_underlying(Fields::kAudioStreamID)) |
| { |
| err = DataModel::Decode(reader, audioStreamID); |
| } |
| else if (__context_tag == to_underlying(Fields::kMetadataOptions)) |
| { |
| err = DataModel::Decode(reader, metadataOptions); |
| } |
| else if (__context_tag == to_underlying(Fields::kFabricIndex)) |
| { |
| err = DataModel::Decode(reader, fabricIndex); |
| } |
| |
| ReturnErrorOnFailure(err); |
| } |
| } |
| |
| } // namespace WebRTCSessionStruct |
| } // namespace Structs |
| } // namespace detail |
| |
| namespace Globals { |
| // Global structs |
| namespace Structs { |
| |
| namespace CurrencyStruct { |
| CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const |
| { |
| DataModel::WrappedStructEncoder encoder{ aWriter, aTag }; |
| encoder.Encode(to_underlying(Fields::kCurrency), currency); |
| encoder.Encode(to_underlying(Fields::kDecimalPoints), decimalPoints); |
| return encoder.Finalize(); |
| } |
| |
| CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader) |
| { |
| detail::StructDecodeIterator __iterator(reader); |
| while (true) |
| { |
| uint8_t __context_tag = 0; |
| CHIP_ERROR err = __iterator.Next(__context_tag); |
| VerifyOrReturnError(err != CHIP_ERROR_END_OF_TLV, CHIP_NO_ERROR); |
| ReturnErrorOnFailure(err); |
| |
| if (__context_tag == to_underlying(Fields::kCurrency)) |
| { |
| err = DataModel::Decode(reader, currency); |
| } |
| else if (__context_tag == to_underlying(Fields::kDecimalPoints)) |
| { |
| err = DataModel::Decode(reader, decimalPoints); |
| } |
| |
| ReturnErrorOnFailure(err); |
| } |
| } |
| |
| } // namespace CurrencyStruct |
| |
| namespace PriceStruct { |
| CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const |
| { |
| DataModel::WrappedStructEncoder encoder{ aWriter, aTag }; |
| encoder.Encode(to_underlying(Fields::kAmount), amount); |
| encoder.Encode(to_underlying(Fields::kCurrency), currency); |
| return encoder.Finalize(); |
| } |
| |
| CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader) |
| { |
| detail::StructDecodeIterator __iterator(reader); |
| while (true) |
| { |
| uint8_t __context_tag = 0; |
| CHIP_ERROR err = __iterator.Next(__context_tag); |
| VerifyOrReturnError(err != CHIP_ERROR_END_OF_TLV, CHIP_NO_ERROR); |
| ReturnErrorOnFailure(err); |
| |
| if (__context_tag == to_underlying(Fields::kAmount)) |
| { |
| err = DataModel::Decode(reader, amount); |
| } |
| else if (__context_tag == to_underlying(Fields::kCurrency)) |
| { |
| err = DataModel::Decode(reader, currency); |
| } |
| |
| ReturnErrorOnFailure(err); |
| } |
| } |
| |
| } // namespace PriceStruct |
| |
| namespace MeasurementAccuracyRangeStruct { |
| CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const |
| { |
| DataModel::WrappedStructEncoder encoder{ aWriter, aTag }; |
| encoder.Encode(to_underlying(Fields::kRangeMin), rangeMin); |
| encoder.Encode(to_underlying(Fields::kRangeMax), rangeMax); |
| encoder.Encode(to_underlying(Fields::kPercentMax), percentMax); |
| encoder.Encode(to_underlying(Fields::kPercentMin), percentMin); |
| encoder.Encode(to_underlying(Fields::kPercentTypical), percentTypical); |
| encoder.Encode(to_underlying(Fields::kFixedMax), fixedMax); |
| encoder.Encode(to_underlying(Fields::kFixedMin), fixedMin); |
| encoder.Encode(to_underlying(Fields::kFixedTypical), fixedTypical); |
| return encoder.Finalize(); |
| } |
| |
| CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader) |
| { |
| detail::StructDecodeIterator __iterator(reader); |
| while (true) |
| { |
| uint8_t __context_tag = 0; |
| CHIP_ERROR err = __iterator.Next(__context_tag); |
| VerifyOrReturnError(err != CHIP_ERROR_END_OF_TLV, CHIP_NO_ERROR); |
| ReturnErrorOnFailure(err); |
| |
| if (__context_tag == to_underlying(Fields::kRangeMin)) |
| { |
| err = DataModel::Decode(reader, rangeMin); |
| } |
| else if (__context_tag == to_underlying(Fields::kRangeMax)) |
| { |
| err = DataModel::Decode(reader, rangeMax); |
| } |
| else if (__context_tag == to_underlying(Fields::kPercentMax)) |
| { |
| err = DataModel::Decode(reader, percentMax); |
| } |
| else if (__context_tag == to_underlying(Fields::kPercentMin)) |
| { |
| err = DataModel::Decode(reader, percentMin); |
| } |
| else if (__context_tag == to_underlying(Fields::kPercentTypical)) |
| { |
| err = DataModel::Decode(reader, percentTypical); |
| } |
| else if (__context_tag == to_underlying(Fields::kFixedMax)) |
| { |
| err = DataModel::Decode(reader, fixedMax); |
| } |
| else if (__context_tag == to_underlying(Fields::kFixedMin)) |
| { |
| err = DataModel::Decode(reader, fixedMin); |
| } |
| else if (__context_tag == to_underlying(Fields::kFixedTypical)) |
| { |
| err = DataModel::Decode(reader, fixedTypical); |
| } |
| |
| ReturnErrorOnFailure(err); |
| } |
| } |
| |
| } // namespace MeasurementAccuracyRangeStruct |
| |
| namespace MeasurementAccuracyStruct { |
| CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const |
| { |
| DataModel::WrappedStructEncoder encoder{ aWriter, aTag }; |
| encoder.Encode(to_underlying(Fields::kMeasurementType), measurementType); |
| encoder.Encode(to_underlying(Fields::kMeasured), measured); |
| encoder.Encode(to_underlying(Fields::kMinMeasuredValue), minMeasuredValue); |
| encoder.Encode(to_underlying(Fields::kMaxMeasuredValue), maxMeasuredValue); |
| encoder.Encode(to_underlying(Fields::kAccuracyRanges), accuracyRanges); |
| return encoder.Finalize(); |
| } |
| |
| CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader) |
| { |
| detail::StructDecodeIterator __iterator(reader); |
| while (true) |
| { |
| uint8_t __context_tag = 0; |
| CHIP_ERROR err = __iterator.Next(__context_tag); |
| VerifyOrReturnError(err != CHIP_ERROR_END_OF_TLV, CHIP_NO_ERROR); |
| ReturnErrorOnFailure(err); |
| |
| if (__context_tag == to_underlying(Fields::kMeasurementType)) |
| { |
| err = DataModel::Decode(reader, measurementType); |
| } |
| else if (__context_tag == to_underlying(Fields::kMeasured)) |
| { |
| err = DataModel::Decode(reader, measured); |
| } |
| else if (__context_tag == to_underlying(Fields::kMinMeasuredValue)) |
| { |
| err = DataModel::Decode(reader, minMeasuredValue); |
| } |
| else if (__context_tag == to_underlying(Fields::kMaxMeasuredValue)) |
| { |
| err = DataModel::Decode(reader, maxMeasuredValue); |
| } |
| else if (__context_tag == to_underlying(Fields::kAccuracyRanges)) |
| { |
| err = DataModel::Decode(reader, accuracyRanges); |
| } |
| |
| ReturnErrorOnFailure(err); |
| } |
| } |
| |
| } // namespace MeasurementAccuracyStruct |
| |
| namespace AtomicAttributeStatusStruct { |
| CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const |
| { |
| DataModel::WrappedStructEncoder encoder{ aWriter, aTag }; |
| encoder.Encode(to_underlying(Fields::kAttributeID), attributeID); |
| encoder.Encode(to_underlying(Fields::kStatusCode), statusCode); |
| return encoder.Finalize(); |
| } |
| |
| CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader) |
| { |
| detail::StructDecodeIterator __iterator(reader); |
| while (true) |
| { |
| uint8_t __context_tag = 0; |
| CHIP_ERROR err = __iterator.Next(__context_tag); |
| VerifyOrReturnError(err != CHIP_ERROR_END_OF_TLV, CHIP_NO_ERROR); |
| ReturnErrorOnFailure(err); |
| |
| if (__context_tag == to_underlying(Fields::kAttributeID)) |
| { |
| err = DataModel::Decode(reader, attributeID); |
| } |
| else if (__context_tag == to_underlying(Fields::kStatusCode)) |
| { |
| err = DataModel::Decode(reader, statusCode); |
| } |
| |
| ReturnErrorOnFailure(err); |
| } |
| } |
| |
| } // namespace AtomicAttributeStatusStruct |
| |
| namespace LocationDescriptorStruct { |
| CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const |
| { |
| DataModel::WrappedStructEncoder encoder{ aWriter, aTag }; |
| encoder.Encode(to_underlying(Fields::kLocationName), locationName); |
| encoder.Encode(to_underlying(Fields::kFloorNumber), floorNumber); |
| encoder.Encode(to_underlying(Fields::kAreaType), areaType); |
| return encoder.Finalize(); |
| } |
| |
| CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader) |
| { |
| detail::StructDecodeIterator __iterator(reader); |
| while (true) |
| { |
| uint8_t __context_tag = 0; |
| CHIP_ERROR err = __iterator.Next(__context_tag); |
| VerifyOrReturnError(err != CHIP_ERROR_END_OF_TLV, CHIP_NO_ERROR); |
| ReturnErrorOnFailure(err); |
| |
| if (__context_tag == to_underlying(Fields::kLocationName)) |
| { |
| err = DataModel::Decode(reader, locationName); |
| } |
| else if (__context_tag == to_underlying(Fields::kFloorNumber)) |
| { |
| err = DataModel::Decode(reader, floorNumber); |
| } |
| else if (__context_tag == to_underlying(Fields::kAreaType)) |
| { |
| err = DataModel::Decode(reader, areaType); |
| } |
| |
| ReturnErrorOnFailure(err); |
| } |
| } |
| |
| } // namespace LocationDescriptorStruct |
| |
| namespace PowerThresholdStruct { |
| CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const |
| { |
| DataModel::WrappedStructEncoder encoder{ aWriter, aTag }; |
| encoder.Encode(to_underlying(Fields::kPowerThreshold), powerThreshold); |
| encoder.Encode(to_underlying(Fields::kApparentPowerThreshold), apparentPowerThreshold); |
| encoder.Encode(to_underlying(Fields::kPowerThresholdSource), powerThresholdSource); |
| return encoder.Finalize(); |
| } |
| |
| CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader) |
| { |
| detail::StructDecodeIterator __iterator(reader); |
| while (true) |
| { |
| uint8_t __context_tag = 0; |
| CHIP_ERROR err = __iterator.Next(__context_tag); |
| VerifyOrReturnError(err != CHIP_ERROR_END_OF_TLV, CHIP_NO_ERROR); |
| ReturnErrorOnFailure(err); |
| |
| if (__context_tag == to_underlying(Fields::kPowerThreshold)) |
| { |
| err = DataModel::Decode(reader, powerThreshold); |
| } |
| else if (__context_tag == to_underlying(Fields::kApparentPowerThreshold)) |
| { |
| err = DataModel::Decode(reader, apparentPowerThreshold); |
| } |
| else if (__context_tag == to_underlying(Fields::kPowerThresholdSource)) |
| { |
| err = DataModel::Decode(reader, powerThresholdSource); |
| } |
| |
| ReturnErrorOnFailure(err); |
| } |
| } |
| |
| } // namespace PowerThresholdStruct |
| |
| namespace TestGlobalStruct { |
| CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const |
| { |
| DataModel::WrappedStructEncoder encoder{ aWriter, aTag }; |
| encoder.Encode(to_underlying(Fields::kName), name); |
| encoder.Encode(to_underlying(Fields::kMyBitmap), myBitmap); |
| encoder.Encode(to_underlying(Fields::kMyEnum), myEnum); |
| return encoder.Finalize(); |
| } |
| |
| CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader) |
| { |
| detail::StructDecodeIterator __iterator(reader); |
| while (true) |
| { |
| uint8_t __context_tag = 0; |
| CHIP_ERROR err = __iterator.Next(__context_tag); |
| VerifyOrReturnError(err != CHIP_ERROR_END_OF_TLV, CHIP_NO_ERROR); |
| ReturnErrorOnFailure(err); |
| |
| if (__context_tag == to_underlying(Fields::kName)) |
| { |
| err = DataModel::Decode(reader, name); |
| } |
| else if (__context_tag == to_underlying(Fields::kMyBitmap)) |
| { |
| err = DataModel::Decode(reader, myBitmap); |
| } |
| else if (__context_tag == to_underlying(Fields::kMyEnum)) |
| { |
| err = DataModel::Decode(reader, myEnum); |
| } |
| |
| ReturnErrorOnFailure(err); |
| } |
| } |
| |
| } // namespace TestGlobalStruct |
| |
| } // namespace Structs |
| } // namespace Globals |
| } // namespace Clusters |
| } // namespace app |
| } // namespace chip |