diff --git a/src/app/AttributePathParams.h b/src/app/AttributePathParams.h index 5feb14e5cc989b..7c79585a027433 100644 --- a/src/app/AttributePathParams.h +++ b/src/app/AttributePathParams.h @@ -33,7 +33,7 @@ struct AttributePathParams // // TODO: (#11420) This class is overlapped with ClusterInfo class, need to do a clean up. AttributePathParams(EndpointId aEndpointId, ClusterId aClusterId) : - AttributePathParams(aEndpointId, aClusterId, ClusterInfo::kInvalidAttributeId, kInvalidListIndex) + AttributePathParams(aEndpointId, aClusterId, kInvalidAttributeId, kInvalidListIndex) {} AttributePathParams(EndpointId aEndpointId, ClusterId aClusterId, AttributeId aAttributeId) : @@ -61,13 +61,13 @@ struct AttributePathParams bool IsValidAttributePath() const { return HasWildcardListIndex() || !HasWildcardAttributeId(); } inline bool HasWildcardEndpointId() const { return mEndpointId == kInvalidEndpointId; } - inline bool HasWildcardClusterId() const { return mClusterId == ClusterInfo::kInvalidClusterId; } - inline bool HasWildcardAttributeId() const { return mAttributeId == ClusterInfo::kInvalidAttributeId; } + inline bool HasWildcardClusterId() const { return mClusterId == kInvalidClusterId; } + inline bool HasWildcardAttributeId() const { return mAttributeId == kInvalidAttributeId; } inline bool HasWildcardListIndex() const { return mListIndex == kInvalidListIndex; } EndpointId mEndpointId = kInvalidEndpointId; - ClusterId mClusterId = ClusterInfo::kInvalidClusterId; - AttributeId mAttributeId = ClusterInfo::kInvalidAttributeId; + ClusterId mClusterId = kInvalidClusterId; + AttributeId mAttributeId = kInvalidAttributeId; ListIndex mListIndex = kInvalidListIndex; }; } // namespace app diff --git a/src/app/ClusterInfo.h b/src/app/ClusterInfo.h index 8eb5649fc5939c..55e7d7ec403823 100644 --- a/src/app/ClusterInfo.h +++ b/src/app/ClusterInfo.h @@ -38,17 +38,6 @@ namespace app { // Note: The change will happen after #11171 with a better linked list. struct ClusterInfo { -private: - // Allow AttributePathParams access these constants. - friend struct AttributePathParams; - friend struct EventPathParams; - - // The ClusterId, AttributeId and EventId are MEIs, - // 0xFFFF is not a valid manufacturer code, thus 0xFFFF'FFFF is not a valid MEI - static constexpr ClusterId kInvalidClusterId = 0xFFFF'FFFF; - static constexpr AttributeId kInvalidAttributeId = 0xFFFF'FFFF; - static constexpr EventId kInvalidEventId = 0xFFFF'FFFF; - public: bool IsAttributePathSupersetOf(const ClusterInfo & other) const { diff --git a/src/app/EventPathParams.h b/src/app/EventPathParams.h index 32420970b40e30..7a3675a372bd41 100644 --- a/src/app/EventPathParams.h +++ b/src/app/EventPathParams.h @@ -41,12 +41,12 @@ struct EventPathParams bool IsValidEventPath() const { return !(HasWildcardClusterId() && !HasWildcardEventId()); } inline bool HasWildcardEndpointId() const { return mEndpointId == kInvalidEndpointId; } - inline bool HasWildcardClusterId() const { return mClusterId == ClusterInfo::kInvalidClusterId; } - inline bool HasWildcardEventId() const { return mEventId == ClusterInfo::kInvalidEventId; } + inline bool HasWildcardClusterId() const { return mClusterId == kInvalidClusterId; } + inline bool HasWildcardEventId() const { return mEventId == kInvalidEventId; } EndpointId mEndpointId = kInvalidEndpointId; - ClusterId mClusterId = ClusterInfo::kInvalidClusterId; - EventId mEventId = ClusterInfo::kInvalidEventId; + ClusterId mClusterId = kInvalidClusterId; + EventId mEventId = kInvalidEventId; }; } // namespace app } // namespace chip diff --git a/src/app/tests/TestClusterInfo.cpp b/src/app/tests/TestClusterInfo.cpp index 951ae8da191f5d..91be2de055ab68 100644 --- a/src/app/tests/TestClusterInfo.cpp +++ b/src/app/tests/TestClusterInfo.cpp @@ -99,11 +99,11 @@ void TestAttributePathIncludedDifferentClusterId(nlTestSuite * apSuite, void * a } /* -{ClusterInfo::kInvalidEndpointId, ClusterInfo::kInvalidClusterId, ClusterInfo::kInvalidEventId}, -{ClusterInfo::kInvalidEndpointId, MockClusterId(1), ClusterInfo::kInvalidEventId}, -{ClusterInfo::kInvalidEndpointId, MockClusterId(1), MockEventId(1)}, -{kMockEndpoint1, ClusterInfo::kInvalidClusterId, ClusterInfo::kInvalidEventId}, -{kMockEndpoint1, MockClusterId(1), ClusterInfo::kInvalidEventId}, +{kInvalidEndpointId, ClusterInfo::kInvalidClusterId, ClusterInfo::kInvalidEventId}, +{kInvalidEndpointId, MockClusterId(1), ClusterInfo::kInvalidEventId}, +{kInvalidEndpointId, MockClusterId(1), MockEventId(1)}, +{kMockEndpoint1, kInvalidClusterId, ClusterInfo::kInvalidEventId}, +{kMockEndpoint1, MockClusterId(1), kInvalidEventId}, {kMockEndpoint1, MockClusterId(1), MockEventId(1)}, */ chip::app::ClusterInfo validEventpaths[6]; diff --git a/src/app/tests/suites/TestBasicInformation.yaml b/src/app/tests/suites/TestBasicInformation.yaml index e964cb8c09cd4b..78b396892e7a72 100644 --- a/src/app/tests/suites/TestBasicInformation.yaml +++ b/src/app/tests/suites/TestBasicInformation.yaml @@ -46,3 +46,32 @@ tests: attribute: "location" arguments: value: "" + + - label: "Read AttributeList value" + command: "readAttribute" + attribute: "AttributeList" + response: + value: + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 0xFFFB, + 0xFFFD, + ] diff --git a/src/app/util/ember-compatibility-functions.cpp b/src/app/util/ember-compatibility-functions.cpp index cf196ddf61748c..ab8e9271d672fe 100644 --- a/src/app/util/ember-compatibility-functions.cpp +++ b/src/app/util/ember-compatibility-functions.cpp @@ -250,6 +250,84 @@ CHIP_ERROR SendFailureStatus(const ConcreteAttributePath & aPath, AttributeRepor return aAttributeReport.EndOfAttributeReportIB().GetError(); } +// This reader should never actually be registered; we do manual dispatch to it +// for the one attribute it handles. +class MandatoryGlobalAttributeReader : public AttributeAccessInterface +{ +public: + MandatoryGlobalAttributeReader(const EmberAfCluster * aCluster) : + AttributeAccessInterface(MakeOptional(kInvalidEndpointId), kInvalidClusterId), mCluster(aCluster) + {} + +protected: + const EmberAfCluster * mCluster; +}; + +class AttributeListReader : public MandatoryGlobalAttributeReader +{ +public: + AttributeListReader(const EmberAfCluster * aCluster) : MandatoryGlobalAttributeReader(aCluster) {} + + CHIP_ERROR Read(const ConcreteReadAttributePath & aPath, AttributeValueEncoder & aEncoder) override; +}; + +CHIP_ERROR AttributeListReader::Read(const ConcreteReadAttributePath & aPath, AttributeValueEncoder & aEncoder) +{ + // The id of AttributeList is not in the attribute metadata. + // TODO: This does not play nicely with wildcard reads. Need to fix ZAP to + // put it in the metadata, or fix wildcard expansion to add it. + constexpr AttributeId ourId = Clusters::Globals::Attributes::AttributeList::Id; + return aEncoder.EncodeList([this](const auto & encoder) { + const size_t count = mCluster->attributeCount; + bool addedOurId = false; + for (size_t i = 0; i < count; ++i) + { + AttributeId id = mCluster->attributes[i].attributeId; + if (!addedOurId && id > ourId) + { + ReturnErrorOnFailure(encoder.Encode(ourId)); + addedOurId = true; + } + ReturnErrorOnFailure(encoder.Encode(id)); + } + if (!addedOurId) + { + ReturnErrorOnFailure(encoder.Encode(ourId)); + } + return CHIP_NO_ERROR; + }); +} + +// Helper function for trying to read an attribute value via an +// AttributeAccessInterface. On failure, the read has failed. On success, the +// aTriedEncode outparam is set to whether the AttributeAccessInterface tried to encode a value. +CHIP_ERROR ReadViaAccessInterface(FabricIndex aAccessingFabricIndex, const ConcreteReadAttributePath & aPath, + AttributeReportIBs::Builder & aAttributeReports, + AttributeValueEncoder::AttributeEncodeState * aEncoderState, + AttributeAccessInterface * aAccessInterface, bool * aTriedEncode) +{ + // TODO: We should probably clone the writer and convert failures here + // into status responses, unless our caller already does that. + AttributeValueEncoder::AttributeEncodeState state = + (aEncoderState == nullptr ? AttributeValueEncoder::AttributeEncodeState() : *aEncoderState); + AttributeValueEncoder valueEncoder(aAttributeReports, aAccessingFabricIndex, aPath, kTemporaryDataVersion, state); + CHIP_ERROR err = aAccessInterface->Read(aPath, valueEncoder); + + if (err != CHIP_NO_ERROR) + { + // If the err is not CHIP_NO_ERROR, means the encoding was aborted, then the valueEncoder may save its state. + // The state is used by list chunking feature for now. + if (aEncoderState != nullptr) + { + *aEncoderState = valueEncoder.GetState(); + } + return err; + } + + *aTriedEncode = valueEncoder.TriedEncode(); + return CHIP_NO_ERROR; +} + } // anonymous namespace CHIP_ERROR ReadSingleClusterData(FabricIndex aAccessingFabricIndex, const ConcreteReadAttributePath & aPath, @@ -260,6 +338,22 @@ CHIP_ERROR ReadSingleClusterData(FabricIndex aAccessingFabricIndex, const Concre "Reading attribute: Cluster=" ChipLogFormatMEI " Endpoint=%" PRIx16 " AttributeId=" ChipLogFormatMEI, ChipLogValueMEI(aPath.mClusterId), aPath.mEndpointId, ChipLogValueMEI(aPath.mAttributeId)); + if (aPath.mAttributeId == Clusters::Globals::Attributes::AttributeList::Id) + { + // This is not in our attribute metadata, so we just check for this + // endpoint+path existing. + EmberAfCluster * cluster = emberAfFindCluster(aPath.mEndpointId, aPath.mClusterId, CLUSTER_MASK_SERVER); + if (cluster) + { + AttributeListReader reader(cluster); + bool ignored; // Our reader always tries to encode + return ReadViaAccessInterface(aAccessingFabricIndex, aPath, aAttributeReports, apEncoderState, &reader, &ignored); + } + + // else to save codesize just fall through and do the metadata search + // (which we know will fail and error out); + } + EmberAfAttributeMetadata * attributeMetadata = emberAfLocateAttributeMetadata(aPath.mEndpointId, aPath.mClusterId, aPath.mAttributeId, CLUSTER_MASK_SERVER, 0); @@ -277,27 +371,11 @@ CHIP_ERROR ReadSingleClusterData(FabricIndex aAccessingFabricIndex, const Concre // The AttributeValueEncoder may encode more than one AttributeReportIB for the list chunking feature. if (attrOverride != nullptr) { - // TODO: We should probably clone the writer and convert failures here - // into status responses, unless our caller already does that. - AttributeValueEncoder::AttributeEncodeState state = - (apEncoderState == nullptr ? AttributeValueEncoder::AttributeEncodeState() : *apEncoderState); - AttributeValueEncoder valueEncoder(aAttributeReports, aAccessingFabricIndex, - ConcreteAttributePath(aPath.mEndpointId, aPath.mClusterId, aPath.mAttributeId), - kTemporaryDataVersion, state); - CHIP_ERROR err = attrOverride->Read(aPath, valueEncoder); - - if (err != CHIP_NO_ERROR) - { - // If the err is not CHIP_NO_ERROR, means the encoding was aborted, then the valueEncoder may save its state. - // The state is used by list chunking feature for now. - if (apEncoderState != nullptr) - { - *apEncoderState = valueEncoder.GetState(); - } - return err; - } + bool triedEncode; + ReturnErrorOnFailure( + ReadViaAccessInterface(aAccessingFabricIndex, aPath, aAttributeReports, apEncoderState, attrOverride, &triedEncode)); - if (valueEncoder.TriedEncode()) + if (triedEncode) { return CHIP_NO_ERROR; } diff --git a/src/app/zap-templates/common/ClustersHelper.js b/src/app/zap-templates/common/ClustersHelper.js index 939d5cc14c7d1e..4943fe576caec8 100644 --- a/src/app/zap-templates/common/ClustersHelper.js +++ b/src/app/zap-templates/common/ClustersHelper.js @@ -462,6 +462,48 @@ Clusters.init = function(context, packageId) { return Promise.all(promises).then(([types, clusters, commands, attributes, globalAttributes]) => { this._clusters = clusters; this._commands = enhancedCommands(commands, types); + // Work around ZAP's not-great support for mandatory global attributes by + // synthesizing them here. + // TODO: This should happen at the ZAP DB construction stage. + clusters.map(cluster => { + // Add AttributeList attribute. + const attrDef = { + // id should be unused, I think + id: "DO NOT USE THIS", + clusterId: cluster.id, + code: 0xFFFB, + manufacturerCode: 0, + hexCode: '0xFFFB', + name: "AttributeList", + side: "server", + type: "array", + entryType: "attrib_id", + minLength: 0, + maxLength: undefined, + min: undefined, + max: undefined, + storage: "External", + isIncluded: true, + isSingleton: false, + isBound: false, + isWritable: false, + isNullable: false, + mustUseTimedWrite: false, + defaultValue: undefined, + includedReportable: true, + minInterval: undefined, + maxInterval: undefined, + reportableChange: undefined, + define: "DO NOT USE THIS", + }; + let index = attributes.findIndex(a => a.code > 0xFFFB); + if (index != -1) { + attributes.splice(index, 0, attrDef); + } else { + attributes.push(attrDef); + } + }); + globalAttributes.push(0xFFFB); this._attributes = enhancedAttributes(attributes, globalAttributes, types); return this.ready.resolve(); diff --git a/src/app/zap-templates/templates/app/cluster-objects.zapt b/src/app/zap-templates/templates/app/cluster-objects.zapt index cebc068d344229..928b1e33aa6c9a 100644 --- a/src/app/zap-templates/templates/app/cluster-objects.zapt +++ b/src/app/zap-templates/templates/app/cluster-objects.zapt @@ -181,7 +181,19 @@ namespace {{asUpperCamelCase label}} { static constexpr bool MustUseTimedWrite() { return {{mustUseTimedWrite}}; } }; } // namespace {{asUpperCamelCase label}} + {{#last}} +namespace AttributeList { + struct TypeInfo { + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::{{asUpperCamelCase parent.name}}::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } + }; +} + } // namespace Attributes {{/last}} {{/zcl_attributes_server}} diff --git a/src/app/zap-templates/templates/app/ids/Attributes.zapt b/src/app/zap-templates/templates/app/ids/Attributes.zapt index 159499bf2986a8..977ec2e6b46072 100644 --- a/src/app/zap-templates/templates/app/ids/Attributes.zapt +++ b/src/app/zap-templates/templates/app/ids/Attributes.zapt @@ -19,6 +19,10 @@ static constexpr AttributeId Id = {{asMEI manufacturerCode code}}; {{/unless}} {{/zcl_attributes_server}} +namespace AttributeList { +static constexpr AttributeId Id = 0x0000FFFB; +} // namespace AttributeList + } // namespace Attributes } // namespace Globals @@ -39,6 +43,10 @@ static constexpr AttributeId Id = Globals::Attributes::{{asUpperCamelCase label} } // namespace {{asUpperCamelCase label}} {{#last}} +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace {{asUpperCamelCase parent.label}} diff --git a/src/controller/java/zap-generated/CHIPCallbackTypes.h b/src/controller/java/zap-generated/CHIPCallbackTypes.h index 566a03f3bfadef..f45071c91b85b6 100644 --- a/src/controller/java/zap-generated/CHIPCallbackTypes.h +++ b/src/controller/java/zap-generated/CHIPCallbackTypes.h @@ -27,14 +27,20 @@ typedef void (*CHIPAccessControlClusterAclAttributeCallbackType)( void *, const chip::app::Clusters::AccessControl::Attributes::Acl::TypeInfo::DecodableType &); typedef void (*CHIPAccessControlClusterExtensionAttributeCallbackType)( void *, const chip::app::Clusters::AccessControl::Attributes::Extension::TypeInfo::DecodableType &); +typedef void (*CHIPAccessControlClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::AccessControl::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPAccessControlClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::AccessControl::Attributes::ClusterRevision::TypeInfo::DecodableArgType); typedef void (*CHIPAccountLoginClusterGetSetupPINResponseCallbackType)( void *, const chip::app::Clusters::AccountLogin::Commands::GetSetupPINResponse::DecodableType &); +typedef void (*CHIPAccountLoginClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::AccountLogin::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPAccountLoginClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::AccountLogin::Attributes::ClusterRevision::TypeInfo::DecodableArgType); +typedef void (*CHIPAdministratorCommissioningClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::AdministratorCommissioning::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPAdministratorCommissioningClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::AdministratorCommissioning::Attributes::ClusterRevision::TypeInfo::DecodableArgType); @@ -52,6 +58,8 @@ typedef void (*CHIPApplicationBasicClusterCatalogVendorIdAttributeCallbackType)( void *, chip::app::Clusters::ApplicationBasic::Attributes::CatalogVendorId::TypeInfo::DecodableArgType); typedef void (*CHIPApplicationBasicClusterApplicationStatusAttributeCallbackType)( void *, chip::app::Clusters::ApplicationBasic::Attributes::ApplicationStatus::TypeInfo::DecodableArgType); +typedef void (*CHIPApplicationBasicClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::ApplicationBasic::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPApplicationBasicClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::ApplicationBasic::Attributes::ClusterRevision::TypeInfo::DecodableArgType); typedef void (*CHIPApplicationLauncherClusterLaunchAppResponseCallbackType)( @@ -63,6 +71,8 @@ typedef void (*CHIPApplicationLauncherClusterCatalogVendorIdAttributeCallbackTyp void *, chip::app::Clusters::ApplicationLauncher::Attributes::CatalogVendorId::TypeInfo::DecodableArgType); typedef void (*CHIPApplicationLauncherClusterApplicationIdAttributeCallbackType)( void *, chip::app::Clusters::ApplicationLauncher::Attributes::ApplicationId::TypeInfo::DecodableArgType); +typedef void (*CHIPApplicationLauncherClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::ApplicationLauncher::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPApplicationLauncherClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::ApplicationLauncher::Attributes::ClusterRevision::TypeInfo::DecodableArgType); @@ -70,6 +80,8 @@ typedef void (*CHIPAudioOutputClusterAudioOutputListAttributeCallbackType)( void *, const chip::app::Clusters::AudioOutput::Attributes::AudioOutputList::TypeInfo::DecodableType &); typedef void (*CHIPAudioOutputClusterCurrentAudioOutputAttributeCallbackType)( void *, chip::app::Clusters::AudioOutput::Attributes::CurrentAudioOutput::TypeInfo::DecodableArgType); +typedef void (*CHIPAudioOutputClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::AudioOutput::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPAudioOutputClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::AudioOutput::Attributes::ClusterRevision::TypeInfo::DecodableArgType); @@ -81,6 +93,8 @@ typedef void (*CHIPBarrierControlClusterBarrierCapabilitiesAttributeCallbackType void *, chip::app::Clusters::BarrierControl::Attributes::BarrierCapabilities::TypeInfo::DecodableArgType); typedef void (*CHIPBarrierControlClusterBarrierPositionAttributeCallbackType)( void *, chip::app::Clusters::BarrierControl::Attributes::BarrierPosition::TypeInfo::DecodableArgType); +typedef void (*CHIPBarrierControlClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::BarrierControl::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPBarrierControlClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::BarrierControl::Attributes::ClusterRevision::TypeInfo::DecodableArgType); @@ -122,6 +136,8 @@ typedef void (*CHIPBasicClusterReachableAttributeCallbackType)( void *, chip::app::Clusters::Basic::Attributes::Reachable::TypeInfo::DecodableArgType); typedef void (*CHIPBasicClusterUniqueIDAttributeCallbackType)( void *, chip::app::Clusters::Basic::Attributes::UniqueID::TypeInfo::DecodableArgType); +typedef void (*CHIPBasicClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::Basic::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPBasicClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::Basic::Attributes::ClusterRevision::TypeInfo::DecodableArgType); @@ -131,14 +147,20 @@ typedef void (*CHIPBinaryInputBasicClusterPresentValueAttributeCallbackType)( void *, chip::app::Clusters::BinaryInputBasic::Attributes::PresentValue::TypeInfo::DecodableArgType); typedef void (*CHIPBinaryInputBasicClusterStatusFlagsAttributeCallbackType)( void *, chip::app::Clusters::BinaryInputBasic::Attributes::StatusFlags::TypeInfo::DecodableArgType); +typedef void (*CHIPBinaryInputBasicClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::BinaryInputBasic::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPBinaryInputBasicClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::BinaryInputBasic::Attributes::ClusterRevision::TypeInfo::DecodableArgType); +typedef void (*CHIPBindingClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::Binding::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPBindingClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::Binding::Attributes::ClusterRevision::TypeInfo::DecodableArgType); typedef void (*CHIPBooleanStateClusterStateValueAttributeCallbackType)( void *, chip::app::Clusters::BooleanState::Attributes::StateValue::TypeInfo::DecodableArgType); +typedef void (*CHIPBooleanStateClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::BooleanState::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPBooleanStateClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::BooleanState::Attributes::ClusterRevision::TypeInfo::DecodableArgType); @@ -148,9 +170,13 @@ typedef void (*CHIPBridgedActionsClusterEndpointListAttributeCallbackType)( void *, const chip::app::Clusters::BridgedActions::Attributes::EndpointList::TypeInfo::DecodableType &); typedef void (*CHIPBridgedActionsClusterSetupUrlAttributeCallbackType)( void *, chip::app::Clusters::BridgedActions::Attributes::SetupUrl::TypeInfo::DecodableArgType); +typedef void (*CHIPBridgedActionsClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::BridgedActions::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPBridgedActionsClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::BridgedActions::Attributes::ClusterRevision::TypeInfo::DecodableArgType); +typedef void (*CHIPBridgedDeviceBasicClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::BridgedDeviceBasic::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPBridgedDeviceBasicClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::BridgedDeviceBasic::Attributes::ClusterRevision::TypeInfo::DecodableArgType); @@ -258,6 +284,8 @@ typedef void (*CHIPColorControlClusterCoupleColorTempToLevelMinMiredsAttributeCa void *, chip::app::Clusters::ColorControl::Attributes::CoupleColorTempToLevelMinMireds::TypeInfo::DecodableArgType); typedef void (*CHIPColorControlClusterStartUpColorTemperatureMiredsAttributeCallbackType)( void *, chip::app::Clusters::ColorControl::Attributes::StartUpColorTemperatureMireds::TypeInfo::DecodableArgType); +typedef void (*CHIPColorControlClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::ColorControl::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPColorControlClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::ColorControl::Attributes::ClusterRevision::TypeInfo::DecodableArgType); typedef void (*CHIPContentLauncherClusterLaunchContentResponseCallbackType)( @@ -269,6 +297,8 @@ typedef void (*CHIPContentLauncherClusterAcceptsHeaderListAttributeCallbackType) void *, const chip::app::Clusters::ContentLauncher::Attributes::AcceptsHeaderList::TypeInfo::DecodableType &); typedef void (*CHIPContentLauncherClusterSupportedStreamingTypesAttributeCallbackType)( void *, const chip::app::Clusters::ContentLauncher::Attributes::SupportedStreamingTypes::TypeInfo::DecodableType &); +typedef void (*CHIPContentLauncherClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::ContentLauncher::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPContentLauncherClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::ContentLauncher::Attributes::ClusterRevision::TypeInfo::DecodableArgType); @@ -280,11 +310,15 @@ typedef void (*CHIPDescriptorClusterClientListAttributeCallbackType)( void *, const chip::app::Clusters::Descriptor::Attributes::ClientList::TypeInfo::DecodableType &); typedef void (*CHIPDescriptorClusterPartsListAttributeCallbackType)( void *, const chip::app::Clusters::Descriptor::Attributes::PartsList::TypeInfo::DecodableType &); +typedef void (*CHIPDescriptorClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::Descriptor::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPDescriptorClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::Descriptor::Attributes::ClusterRevision::TypeInfo::DecodableArgType); typedef void (*CHIPDiagnosticLogsClusterRetrieveLogsResponseCallbackType)( void *, const chip::app::Clusters::DiagnosticLogs::Commands::RetrieveLogsResponse::DecodableType &); +typedef void (*CHIPDiagnosticLogsClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::DiagnosticLogs::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPDoorLockClusterGetHolidayScheduleResponseCallbackType)( void *, const chip::app::Clusters::DoorLock::Commands::GetHolidayScheduleResponse::DecodableType &); typedef void (*CHIPDoorLockClusterGetLogRecordResponseCallbackType)( @@ -306,6 +340,8 @@ typedef void (*CHIPDoorLockClusterLockTypeAttributeCallbackType)( void *, chip::app::Clusters::DoorLock::Attributes::LockType::TypeInfo::DecodableArgType); typedef void (*CHIPDoorLockClusterActuatorEnabledAttributeCallbackType)( void *, chip::app::Clusters::DoorLock::Attributes::ActuatorEnabled::TypeInfo::DecodableArgType); +typedef void (*CHIPDoorLockClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::DoorLock::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPDoorLockClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::DoorLock::Attributes::ClusterRevision::TypeInfo::DecodableArgType); @@ -331,6 +367,8 @@ typedef void (*CHIPElectricalMeasurementClusterActivePowerMinAttributeCallbackTy void *, chip::app::Clusters::ElectricalMeasurement::Attributes::ActivePowerMin::TypeInfo::DecodableArgType); typedef void (*CHIPElectricalMeasurementClusterActivePowerMaxAttributeCallbackType)( void *, chip::app::Clusters::ElectricalMeasurement::Attributes::ActivePowerMax::TypeInfo::DecodableArgType); +typedef void (*CHIPElectricalMeasurementClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::ElectricalMeasurement::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPElectricalMeasurementClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::ElectricalMeasurement::Attributes::ClusterRevision::TypeInfo::DecodableArgType); @@ -352,6 +390,8 @@ typedef void (*CHIPEthernetNetworkDiagnosticsClusterCarrierDetectAttributeCallba void *, chip::app::Clusters::EthernetNetworkDiagnostics::Attributes::CarrierDetect::TypeInfo::DecodableArgType); typedef void (*CHIPEthernetNetworkDiagnosticsClusterTimeSinceResetAttributeCallbackType)( void *, chip::app::Clusters::EthernetNetworkDiagnostics::Attributes::TimeSinceReset::TypeInfo::DecodableArgType); +typedef void (*CHIPEthernetNetworkDiagnosticsClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::EthernetNetworkDiagnostics::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPEthernetNetworkDiagnosticsClusterFeatureMapAttributeCallbackType)( void *, chip::app::Clusters::EthernetNetworkDiagnostics::Attributes::FeatureMap::TypeInfo::DecodableArgType); typedef void (*CHIPEthernetNetworkDiagnosticsClusterClusterRevisionAttributeCallbackType)( @@ -359,6 +399,8 @@ typedef void (*CHIPEthernetNetworkDiagnosticsClusterClusterRevisionAttributeCall typedef void (*CHIPFixedLabelClusterLabelListAttributeCallbackType)( void *, const chip::app::Clusters::FixedLabel::Attributes::LabelList::TypeInfo::DecodableType &); +typedef void (*CHIPFixedLabelClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::FixedLabel::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPFixedLabelClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::FixedLabel::Attributes::ClusterRevision::TypeInfo::DecodableArgType); @@ -370,6 +412,8 @@ typedef void (*CHIPFlowMeasurementClusterMaxMeasuredValueAttributeCallbackType)( void *, chip::app::Clusters::FlowMeasurement::Attributes::MaxMeasuredValue::TypeInfo::DecodableArgType); typedef void (*CHIPFlowMeasurementClusterToleranceAttributeCallbackType)( void *, chip::app::Clusters::FlowMeasurement::Attributes::Tolerance::TypeInfo::DecodableArgType); +typedef void (*CHIPFlowMeasurementClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::FlowMeasurement::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPFlowMeasurementClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::FlowMeasurement::Attributes::ClusterRevision::TypeInfo::DecodableArgType); typedef void (*CHIPGeneralCommissioningClusterArmFailSafeResponseCallbackType)( @@ -387,6 +431,8 @@ typedef void (*CHIPGeneralCommissioningClusterRegulatoryConfigAttributeCallbackT void *, chip::app::Clusters::GeneralCommissioning::Attributes::RegulatoryConfig::TypeInfo::DecodableArgType); typedef void (*CHIPGeneralCommissioningClusterLocationCapabilityAttributeCallbackType)( void *, chip::app::Clusters::GeneralCommissioning::Attributes::LocationCapability::TypeInfo::DecodableArgType); +typedef void (*CHIPGeneralCommissioningClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::GeneralCommissioning::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPGeneralCommissioningClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::GeneralCommissioning::Attributes::ClusterRevision::TypeInfo::DecodableArgType); @@ -406,6 +452,8 @@ typedef void (*CHIPGeneralDiagnosticsClusterActiveRadioFaultsAttributeCallbackTy void *, const chip::app::Clusters::GeneralDiagnostics::Attributes::ActiveRadioFaults::TypeInfo::DecodableType &); typedef void (*CHIPGeneralDiagnosticsClusterActiveNetworkFaultsAttributeCallbackType)( void *, const chip::app::Clusters::GeneralDiagnostics::Attributes::ActiveNetworkFaults::TypeInfo::DecodableType &); +typedef void (*CHIPGeneralDiagnosticsClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::GeneralDiagnostics::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPGeneralDiagnosticsClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::GeneralDiagnostics::Attributes::ClusterRevision::TypeInfo::DecodableArgType); @@ -413,6 +461,8 @@ typedef void (*CHIPGroupKeyManagementClusterGroupsAttributeCallbackType)( void *, const chip::app::Clusters::GroupKeyManagement::Attributes::Groups::TypeInfo::DecodableType &); typedef void (*CHIPGroupKeyManagementClusterGroupKeysAttributeCallbackType)( void *, const chip::app::Clusters::GroupKeyManagement::Attributes::GroupKeys::TypeInfo::DecodableType &); +typedef void (*CHIPGroupKeyManagementClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::GroupKeyManagement::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPGroupKeyManagementClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::GroupKeyManagement::Attributes::ClusterRevision::TypeInfo::DecodableArgType); typedef void (*CHIPGroupsClusterAddGroupResponseCallbackType)( @@ -426,6 +476,8 @@ typedef void (*CHIPGroupsClusterViewGroupResponseCallbackType)( typedef void (*CHIPGroupsClusterNameSupportAttributeCallbackType)( void *, chip::app::Clusters::Groups::Attributes::NameSupport::TypeInfo::DecodableArgType); +typedef void (*CHIPGroupsClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::Groups::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPGroupsClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::Groups::Attributes::ClusterRevision::TypeInfo::DecodableArgType); typedef void (*CHIPIdentifyClusterIdentifyQueryResponseCallbackType)( @@ -435,6 +487,8 @@ typedef void (*CHIPIdentifyClusterIdentifyTimeAttributeCallbackType)( void *, chip::app::Clusters::Identify::Attributes::IdentifyTime::TypeInfo::DecodableArgType); typedef void (*CHIPIdentifyClusterIdentifyTypeAttributeCallbackType)( void *, chip::app::Clusters::Identify::Attributes::IdentifyType::TypeInfo::DecodableArgType); +typedef void (*CHIPIdentifyClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::Identify::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPIdentifyClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::Identify::Attributes::ClusterRevision::TypeInfo::DecodableArgType); @@ -448,11 +502,15 @@ typedef void (*CHIPIlluminanceMeasurementClusterToleranceAttributeCallbackType)( void *, chip::app::Clusters::IlluminanceMeasurement::Attributes::Tolerance::TypeInfo::DecodableArgType); typedef void (*CHIPIlluminanceMeasurementClusterLightSensorTypeAttributeCallbackType)( void *, chip::app::Clusters::IlluminanceMeasurement::Attributes::LightSensorType::TypeInfo::DecodableArgType); +typedef void (*CHIPIlluminanceMeasurementClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::IlluminanceMeasurement::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPIlluminanceMeasurementClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::IlluminanceMeasurement::Attributes::ClusterRevision::TypeInfo::DecodableArgType); typedef void (*CHIPKeypadInputClusterSendKeyResponseCallbackType)( void *, const chip::app::Clusters::KeypadInput::Commands::SendKeyResponse::DecodableType &); +typedef void (*CHIPKeypadInputClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::KeypadInput::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPKeypadInputClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::KeypadInput::Attributes::ClusterRevision::TypeInfo::DecodableArgType); @@ -484,9 +542,13 @@ typedef void (*CHIPLevelControlClusterDefaultMoveRateAttributeCallbackType)( void *, chip::app::Clusters::LevelControl::Attributes::DefaultMoveRate::TypeInfo::DecodableArgType); typedef void (*CHIPLevelControlClusterStartUpCurrentLevelAttributeCallbackType)( void *, chip::app::Clusters::LevelControl::Attributes::StartUpCurrentLevel::TypeInfo::DecodableArgType); +typedef void (*CHIPLevelControlClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::LevelControl::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPLevelControlClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::LevelControl::Attributes::ClusterRevision::TypeInfo::DecodableArgType); +typedef void (*CHIPLowPowerClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::LowPower::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPLowPowerClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::LowPower::Attributes::ClusterRevision::TypeInfo::DecodableArgType); @@ -494,6 +556,8 @@ typedef void (*CHIPMediaInputClusterMediaInputListAttributeCallbackType)( void *, const chip::app::Clusters::MediaInput::Attributes::MediaInputList::TypeInfo::DecodableType &); typedef void (*CHIPMediaInputClusterCurrentMediaInputAttributeCallbackType)( void *, chip::app::Clusters::MediaInput::Attributes::CurrentMediaInput::TypeInfo::DecodableArgType); +typedef void (*CHIPMediaInputClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::MediaInput::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPMediaInputClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::MediaInput::Attributes::ClusterRevision::TypeInfo::DecodableArgType); typedef void (*CHIPMediaPlaybackClusterMediaFastForwardResponseCallbackType)( @@ -535,6 +599,8 @@ typedef void (*CHIPMediaPlaybackClusterSeekRangeEndAttributeCallbackType)( void *, chip::app::Clusters::MediaPlayback::Attributes::SeekRangeEnd::TypeInfo::DecodableArgType); typedef void (*CHIPMediaPlaybackClusterSeekRangeStartAttributeCallbackType)( void *, chip::app::Clusters::MediaPlayback::Attributes::SeekRangeStart::TypeInfo::DecodableArgType); +typedef void (*CHIPMediaPlaybackClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::MediaPlayback::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPMediaPlaybackClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::MediaPlayback::Attributes::ClusterRevision::TypeInfo::DecodableArgType); @@ -548,6 +614,8 @@ typedef void (*CHIPModeSelectClusterStartUpModeAttributeCallbackType)( void *, chip::app::Clusters::ModeSelect::Attributes::StartUpMode::TypeInfo::DecodableArgType); typedef void (*CHIPModeSelectClusterDescriptionAttributeCallbackType)( void *, chip::app::Clusters::ModeSelect::Attributes::Description::TypeInfo::DecodableArgType); +typedef void (*CHIPModeSelectClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::ModeSelect::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPModeSelectClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::ModeSelect::Attributes::ClusterRevision::TypeInfo::DecodableArgType); typedef void (*CHIPNetworkCommissioningClusterAddThreadNetworkResponseCallbackType)( @@ -567,6 +635,8 @@ typedef void (*CHIPNetworkCommissioningClusterUpdateThreadNetworkResponseCallbac typedef void (*CHIPNetworkCommissioningClusterUpdateWiFiNetworkResponseCallbackType)( void *, const chip::app::Clusters::NetworkCommissioning::Commands::UpdateWiFiNetworkResponse::DecodableType &); +typedef void (*CHIPNetworkCommissioningClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::NetworkCommissioning::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPNetworkCommissioningClusterFeatureMapAttributeCallbackType)( void *, chip::app::Clusters::NetworkCommissioning::Attributes::FeatureMap::TypeInfo::DecodableArgType); typedef void (*CHIPNetworkCommissioningClusterClusterRevisionAttributeCallbackType)( @@ -576,6 +646,8 @@ typedef void (*CHIPOtaSoftwareUpdateProviderClusterApplyUpdateResponseCallbackTy typedef void (*CHIPOtaSoftwareUpdateProviderClusterQueryImageResponseCallbackType)( void *, const chip::app::Clusters::OtaSoftwareUpdateProvider::Commands::QueryImageResponse::DecodableType &); +typedef void (*CHIPOtaSoftwareUpdateProviderClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::OtaSoftwareUpdateProvider::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPOtaSoftwareUpdateProviderClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::OtaSoftwareUpdateProvider::Attributes::ClusterRevision::TypeInfo::DecodableArgType); @@ -583,6 +655,8 @@ typedef void (*CHIPOtaSoftwareUpdateRequestorClusterDefaultOtaProviderAttributeC void *, chip::app::Clusters::OtaSoftwareUpdateRequestor::Attributes::DefaultOtaProvider::TypeInfo::DecodableArgType); typedef void (*CHIPOtaSoftwareUpdateRequestorClusterUpdatePossibleAttributeCallbackType)( void *, chip::app::Clusters::OtaSoftwareUpdateRequestor::Attributes::UpdatePossible::TypeInfo::DecodableArgType); +typedef void (*CHIPOtaSoftwareUpdateRequestorClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::OtaSoftwareUpdateRequestor::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPOtaSoftwareUpdateRequestorClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::OtaSoftwareUpdateRequestor::Attributes::ClusterRevision::TypeInfo::DecodableArgType); @@ -592,6 +666,8 @@ typedef void (*CHIPOccupancySensingClusterOccupancySensorTypeAttributeCallbackTy void *, chip::app::Clusters::OccupancySensing::Attributes::OccupancySensorType::TypeInfo::DecodableArgType); typedef void (*CHIPOccupancySensingClusterOccupancySensorTypeBitmapAttributeCallbackType)( void *, chip::app::Clusters::OccupancySensing::Attributes::OccupancySensorTypeBitmap::TypeInfo::DecodableArgType); +typedef void (*CHIPOccupancySensingClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::OccupancySensing::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPOccupancySensingClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::OccupancySensing::Attributes::ClusterRevision::TypeInfo::DecodableArgType); @@ -605,6 +681,8 @@ typedef void (*CHIPOnOffClusterOffWaitTimeAttributeCallbackType)( void *, chip::app::Clusters::OnOff::Attributes::OffWaitTime::TypeInfo::DecodableArgType); typedef void (*CHIPOnOffClusterStartUpOnOffAttributeCallbackType)( void *, chip::app::Clusters::OnOff::Attributes::StartUpOnOff::TypeInfo::DecodableArgType); +typedef void (*CHIPOnOffClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::OnOff::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPOnOffClusterFeatureMapAttributeCallbackType)( void *, chip::app::Clusters::OnOff::Attributes::FeatureMap::TypeInfo::DecodableArgType); typedef void (*CHIPOnOffClusterClusterRevisionAttributeCallbackType)( @@ -614,6 +692,8 @@ typedef void (*CHIPOnOffSwitchConfigurationClusterSwitchTypeAttributeCallbackTyp void *, chip::app::Clusters::OnOffSwitchConfiguration::Attributes::SwitchType::TypeInfo::DecodableArgType); typedef void (*CHIPOnOffSwitchConfigurationClusterSwitchActionsAttributeCallbackType)( void *, chip::app::Clusters::OnOffSwitchConfiguration::Attributes::SwitchActions::TypeInfo::DecodableArgType); +typedef void (*CHIPOnOffSwitchConfigurationClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::OnOffSwitchConfiguration::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPOnOffSwitchConfigurationClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::OnOffSwitchConfiguration::Attributes::ClusterRevision::TypeInfo::DecodableArgType); typedef void (*CHIPOperationalCredentialsClusterAttestationResponseCallbackType)( @@ -635,6 +715,8 @@ typedef void (*CHIPOperationalCredentialsClusterTrustedRootCertificatesAttribute void *, const chip::app::Clusters::OperationalCredentials::Attributes::TrustedRootCertificates::TypeInfo::DecodableType &); typedef void (*CHIPOperationalCredentialsClusterCurrentFabricIndexAttributeCallbackType)( void *, chip::app::Clusters::OperationalCredentials::Attributes::CurrentFabricIndex::TypeInfo::DecodableArgType); +typedef void (*CHIPOperationalCredentialsClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::OperationalCredentials::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPOperationalCredentialsClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::OperationalCredentials::Attributes::ClusterRevision::TypeInfo::DecodableArgType); @@ -656,6 +738,8 @@ typedef void (*CHIPPowerSourceClusterActiveBatteryFaultsAttributeCallbackType)( void *, const chip::app::Clusters::PowerSource::Attributes::ActiveBatteryFaults::TypeInfo::DecodableType &); typedef void (*CHIPPowerSourceClusterBatteryChargeStateAttributeCallbackType)( void *, chip::app::Clusters::PowerSource::Attributes::BatteryChargeState::TypeInfo::DecodableArgType); +typedef void (*CHIPPowerSourceClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::PowerSource::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPPowerSourceClusterFeatureMapAttributeCallbackType)( void *, chip::app::Clusters::PowerSource::Attributes::FeatureMap::TypeInfo::DecodableArgType); typedef void (*CHIPPowerSourceClusterClusterRevisionAttributeCallbackType)( @@ -663,6 +747,8 @@ typedef void (*CHIPPowerSourceClusterClusterRevisionAttributeCallbackType)( typedef void (*CHIPPowerSourceConfigurationClusterSourcesAttributeCallbackType)( void *, const chip::app::Clusters::PowerSourceConfiguration::Attributes::Sources::TypeInfo::DecodableType &); +typedef void (*CHIPPowerSourceConfigurationClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::PowerSourceConfiguration::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPPowerSourceConfigurationClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::PowerSourceConfiguration::Attributes::ClusterRevision::TypeInfo::DecodableArgType); @@ -672,6 +758,8 @@ typedef void (*CHIPPressureMeasurementClusterMinMeasuredValueAttributeCallbackTy void *, chip::app::Clusters::PressureMeasurement::Attributes::MinMeasuredValue::TypeInfo::DecodableArgType); typedef void (*CHIPPressureMeasurementClusterMaxMeasuredValueAttributeCallbackType)( void *, chip::app::Clusters::PressureMeasurement::Attributes::MaxMeasuredValue::TypeInfo::DecodableArgType); +typedef void (*CHIPPressureMeasurementClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::PressureMeasurement::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPPressureMeasurementClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::PressureMeasurement::Attributes::ClusterRevision::TypeInfo::DecodableArgType); @@ -723,6 +811,8 @@ typedef void (*CHIPPumpConfigurationAndControlClusterControlModeAttributeCallbac void *, chip::app::Clusters::PumpConfigurationAndControl::Attributes::ControlMode::TypeInfo::DecodableArgType); typedef void (*CHIPPumpConfigurationAndControlClusterAlarmMaskAttributeCallbackType)( void *, chip::app::Clusters::PumpConfigurationAndControl::Attributes::AlarmMask::TypeInfo::DecodableArgType); +typedef void (*CHIPPumpConfigurationAndControlClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::PumpConfigurationAndControl::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPPumpConfigurationAndControlClusterFeatureMapAttributeCallbackType)( void *, chip::app::Clusters::PumpConfigurationAndControl::Attributes::FeatureMap::TypeInfo::DecodableArgType); typedef void (*CHIPPumpConfigurationAndControlClusterClusterRevisionAttributeCallbackType)( @@ -736,6 +826,8 @@ typedef void (*CHIPRelativeHumidityMeasurementClusterMaxMeasuredValueAttributeCa void *, chip::app::Clusters::RelativeHumidityMeasurement::Attributes::MaxMeasuredValue::TypeInfo::DecodableArgType); typedef void (*CHIPRelativeHumidityMeasurementClusterToleranceAttributeCallbackType)( void *, chip::app::Clusters::RelativeHumidityMeasurement::Attributes::Tolerance::TypeInfo::DecodableArgType); +typedef void (*CHIPRelativeHumidityMeasurementClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::RelativeHumidityMeasurement::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPRelativeHumidityMeasurementClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::RelativeHumidityMeasurement::Attributes::ClusterRevision::TypeInfo::DecodableArgType); typedef void (*CHIPScenesClusterAddSceneResponseCallbackType)( @@ -761,6 +853,8 @@ typedef void (*CHIPScenesClusterSceneValidAttributeCallbackType)( void *, chip::app::Clusters::Scenes::Attributes::SceneValid::TypeInfo::DecodableArgType); typedef void (*CHIPScenesClusterNameSupportAttributeCallbackType)( void *, chip::app::Clusters::Scenes::Attributes::NameSupport::TypeInfo::DecodableArgType); +typedef void (*CHIPScenesClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::Scenes::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPScenesClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::Scenes::Attributes::ClusterRevision::TypeInfo::DecodableArgType); @@ -772,6 +866,8 @@ typedef void (*CHIPSoftwareDiagnosticsClusterCurrentHeapUsedAttributeCallbackTyp void *, chip::app::Clusters::SoftwareDiagnostics::Attributes::CurrentHeapUsed::TypeInfo::DecodableArgType); typedef void (*CHIPSoftwareDiagnosticsClusterCurrentHeapHighWatermarkAttributeCallbackType)( void *, chip::app::Clusters::SoftwareDiagnostics::Attributes::CurrentHeapHighWatermark::TypeInfo::DecodableArgType); +typedef void (*CHIPSoftwareDiagnosticsClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::SoftwareDiagnostics::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPSoftwareDiagnosticsClusterFeatureMapAttributeCallbackType)( void *, chip::app::Clusters::SoftwareDiagnostics::Attributes::FeatureMap::TypeInfo::DecodableArgType); typedef void (*CHIPSoftwareDiagnosticsClusterClusterRevisionAttributeCallbackType)( @@ -783,6 +879,8 @@ typedef void (*CHIPSwitchClusterCurrentPositionAttributeCallbackType)( void *, chip::app::Clusters::Switch::Attributes::CurrentPosition::TypeInfo::DecodableArgType); typedef void (*CHIPSwitchClusterMultiPressMaxAttributeCallbackType)( void *, chip::app::Clusters::Switch::Attributes::MultiPressMax::TypeInfo::DecodableArgType); +typedef void (*CHIPSwitchClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::Switch::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPSwitchClusterFeatureMapAttributeCallbackType)( void *, chip::app::Clusters::Switch::Attributes::FeatureMap::TypeInfo::DecodableArgType); typedef void (*CHIPSwitchClusterClusterRevisionAttributeCallbackType)( @@ -796,6 +894,8 @@ typedef void (*CHIPTvChannelClusterTvChannelLineupAttributeCallbackType)( void *, chip::app::Clusters::TvChannel::Attributes::TvChannelLineup::TypeInfo::DecodableArgType); typedef void (*CHIPTvChannelClusterCurrentTvChannelAttributeCallbackType)( void *, chip::app::Clusters::TvChannel::Attributes::CurrentTvChannel::TypeInfo::DecodableArgType); +typedef void (*CHIPTvChannelClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::TvChannel::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPTvChannelClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::TvChannel::Attributes::ClusterRevision::TypeInfo::DecodableArgType); typedef void (*CHIPTargetNavigatorClusterNavigateTargetResponseCallbackType)( @@ -803,6 +903,8 @@ typedef void (*CHIPTargetNavigatorClusterNavigateTargetResponseCallbackType)( typedef void (*CHIPTargetNavigatorClusterTargetNavigatorListAttributeCallbackType)( void *, const chip::app::Clusters::TargetNavigator::Attributes::TargetNavigatorList::TypeInfo::DecodableType &); +typedef void (*CHIPTargetNavigatorClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::TargetNavigator::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPTargetNavigatorClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::TargetNavigator::Attributes::ClusterRevision::TypeInfo::DecodableArgType); @@ -814,6 +916,8 @@ typedef void (*CHIPTemperatureMeasurementClusterMaxMeasuredValueAttributeCallbac void *, chip::app::Clusters::TemperatureMeasurement::Attributes::MaxMeasuredValue::TypeInfo::DecodableArgType); typedef void (*CHIPTemperatureMeasurementClusterToleranceAttributeCallbackType)( void *, chip::app::Clusters::TemperatureMeasurement::Attributes::Tolerance::TypeInfo::DecodableArgType); +typedef void (*CHIPTemperatureMeasurementClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::TemperatureMeasurement::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPTemperatureMeasurementClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::TemperatureMeasurement::Attributes::ClusterRevision::TypeInfo::DecodableArgType); typedef void (*CHIPTestClusterClusterBooleanResponseCallbackType)( @@ -987,6 +1091,8 @@ typedef void (*CHIPTestClusterClusterNullableRangeRestrictedInt16uAttributeCallb void *, chip::app::Clusters::TestCluster::Attributes::NullableRangeRestrictedInt16u::TypeInfo::DecodableArgType); typedef void (*CHIPTestClusterClusterNullableRangeRestrictedInt16sAttributeCallbackType)( void *, chip::app::Clusters::TestCluster::Attributes::NullableRangeRestrictedInt16s::TypeInfo::DecodableArgType); +typedef void (*CHIPTestClusterClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::TestCluster::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPTestClusterClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::TestCluster::Attributes::ClusterRevision::TypeInfo::DecodableArgType); @@ -1024,6 +1130,8 @@ typedef void (*CHIPThermostatClusterNumberOfWeeklyTransitionsAttributeCallbackTy void *, chip::app::Clusters::Thermostat::Attributes::NumberOfWeeklyTransitions::TypeInfo::DecodableArgType); typedef void (*CHIPThermostatClusterNumberOfDailyTransitionsAttributeCallbackType)( void *, chip::app::Clusters::Thermostat::Attributes::NumberOfDailyTransitions::TypeInfo::DecodableArgType); +typedef void (*CHIPThermostatClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::Thermostat::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPThermostatClusterFeatureMapAttributeCallbackType)( void *, chip::app::Clusters::Thermostat::Attributes::FeatureMap::TypeInfo::DecodableArgType); typedef void (*CHIPThermostatClusterClusterRevisionAttributeCallbackType)( @@ -1038,6 +1146,8 @@ typedef void (*CHIPThermostatUserInterfaceConfigurationClusterScheduleProgrammin void *, chip::app::Clusters::ThermostatUserInterfaceConfiguration::Attributes::ScheduleProgrammingVisibility::TypeInfo:: DecodableArgType); +typedef void (*CHIPThermostatUserInterfaceConfigurationClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::ThermostatUserInterfaceConfiguration::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPThermostatUserInterfaceConfigurationClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::ThermostatUserInterfaceConfiguration::Attributes::ClusterRevision::TypeInfo::DecodableArgType); @@ -1169,6 +1279,8 @@ typedef void (*CHIPThreadNetworkDiagnosticsClusterOperationalDatasetComponentsAt const chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::OperationalDatasetComponents::TypeInfo::DecodableType &); typedef void (*CHIPThreadNetworkDiagnosticsClusterActiveNetworkFaultsListAttributeCallbackType)( void *, const chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::ActiveNetworkFaultsList::TypeInfo::DecodableType &); +typedef void (*CHIPThreadNetworkDiagnosticsClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPThreadNetworkDiagnosticsClusterFeatureMapAttributeCallbackType)( void *, chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::FeatureMap::TypeInfo::DecodableArgType); typedef void (*CHIPThreadNetworkDiagnosticsClusterClusterRevisionAttributeCallbackType)( @@ -1176,6 +1288,8 @@ typedef void (*CHIPThreadNetworkDiagnosticsClusterClusterRevisionAttributeCallba typedef void (*CHIPWakeOnLanClusterWakeOnLanMacAddressAttributeCallbackType)( void *, chip::app::Clusters::WakeOnLan::Attributes::WakeOnLanMacAddress::TypeInfo::DecodableArgType); +typedef void (*CHIPWakeOnLanClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::WakeOnLan::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPWakeOnLanClusterClusterRevisionAttributeCallbackType)( void *, chip::app::Clusters::WakeOnLan::Attributes::ClusterRevision::TypeInfo::DecodableArgType); @@ -1205,6 +1319,8 @@ typedef void (*CHIPWiFiNetworkDiagnosticsClusterCurrentMaxRateAttributeCallbackT void *, chip::app::Clusters::WiFiNetworkDiagnostics::Attributes::CurrentMaxRate::TypeInfo::DecodableArgType); typedef void (*CHIPWiFiNetworkDiagnosticsClusterOverrunCountAttributeCallbackType)( void *, chip::app::Clusters::WiFiNetworkDiagnostics::Attributes::OverrunCount::TypeInfo::DecodableArgType); +typedef void (*CHIPWiFiNetworkDiagnosticsClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::WiFiNetworkDiagnostics::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPWiFiNetworkDiagnosticsClusterFeatureMapAttributeCallbackType)( void *, chip::app::Clusters::WiFiNetworkDiagnostics::Attributes::FeatureMap::TypeInfo::DecodableArgType); typedef void (*CHIPWiFiNetworkDiagnosticsClusterClusterRevisionAttributeCallbackType)( @@ -1246,6 +1362,8 @@ typedef void (*CHIPWindowCoveringClusterModeAttributeCallbackType)( void *, chip::app::Clusters::WindowCovering::Attributes::Mode::TypeInfo::DecodableArgType); typedef void (*CHIPWindowCoveringClusterSafetyStatusAttributeCallbackType)( void *, chip::app::Clusters::WindowCovering::Attributes::SafetyStatus::TypeInfo::DecodableArgType); +typedef void (*CHIPWindowCoveringClusterAttributeListAttributeCallbackType)( + void *, const chip::app::Clusters::WindowCovering::Attributes::AttributeList::TypeInfo::DecodableType &); typedef void (*CHIPWindowCoveringClusterFeatureMapAttributeCallbackType)( void *, chip::app::Clusters::WindowCovering::Attributes::FeatureMap::TypeInfo::DecodableArgType); typedef void (*CHIPWindowCoveringClusterClusterRevisionAttributeCallbackType)( diff --git a/src/controller/java/zap-generated/CHIPClustersRead-JNI.cpp b/src/controller/java/zap-generated/CHIPClustersRead-JNI.cpp index 997cb6e0235056..7932e8208dc8e3 100644 --- a/src/controller/java/zap-generated/CHIPClustersRead-JNI.cpp +++ b/src/controller/java/zap-generated/CHIPClustersRead-JNI.cpp @@ -100,6 +100,41 @@ JNI_METHOD(void, AccessControlCluster, readExtensionAttribute)(JNIEnv * env, job onFailure.release(); } +JNI_METHOD(void, AccessControlCluster, readAttributeListAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::AccessControl::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::AccessControlCluster * cppCluster = reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = + chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, AccessControlCluster, readClusterRevisionAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { chip::DeviceLayer::StackLock lock; @@ -134,6 +169,41 @@ JNI_METHOD(void, AccessControlCluster, readClusterRevisionAttribute)(JNIEnv * en onFailure.release(); } +JNI_METHOD(void, AccountLoginCluster, readAttributeListAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::AccountLogin::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::AccountLoginCluster * cppCluster = reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = + chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, AccountLoginCluster, readClusterRevisionAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { chip::DeviceLayer::StackLock lock; @@ -168,6 +238,45 @@ JNI_METHOD(void, AccountLoginCluster, readClusterRevisionAttribute)(JNIEnv * env onFailure.release(); } +JNI_METHOD(void, AdministratorCommissioningCluster, readAttributeListAttribute) +(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::AdministratorCommissioning::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::AdministratorCommissioningCluster * cppCluster = + reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = + chip::Callback::Callback::FromCancelable( + onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, AdministratorCommissioningCluster, readClusterRevisionAttribute) (JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { @@ -457,6 +566,44 @@ JNI_METHOD(void, ApplicationBasicCluster, readApplicationStatusAttribute) onFailure.release(); } +JNI_METHOD(void, ApplicationBasicCluster, readAttributeListAttribute) +(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::ApplicationBasic::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::ApplicationBasicCluster * cppCluster = + reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = chip::Callback::Callback::FromCancelable( + onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, ApplicationBasicCluster, readClusterRevisionAttribute) (JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { @@ -604,6 +751,44 @@ JNI_METHOD(void, ApplicationLauncherCluster, readApplicationIdAttribute) onFailure.release(); } +JNI_METHOD(void, ApplicationLauncherCluster, readAttributeListAttribute) +(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::ApplicationLauncher::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::ApplicationLauncherCluster * cppCluster = + reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = chip::Callback::Callback::FromCancelable( + onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, ApplicationLauncherCluster, readClusterRevisionAttribute) (JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { @@ -710,6 +895,41 @@ JNI_METHOD(void, AudioOutputCluster, readCurrentAudioOutputAttribute) onFailure.release(); } +JNI_METHOD(void, AudioOutputCluster, readAttributeListAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::AudioOutput::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::AudioOutputCluster * cppCluster = reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = + chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, AudioOutputCluster, readClusterRevisionAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { chip::DeviceLayer::StackLock lock; @@ -884,6 +1104,41 @@ JNI_METHOD(void, BarrierControlCluster, readBarrierPositionAttribute) onFailure.release(); } +JNI_METHOD(void, BarrierControlCluster, readAttributeListAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::BarrierControl::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::BarrierControlCluster * cppCluster = reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = + chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, BarrierControlCluster, readClusterRevisionAttribute) (JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { @@ -1568,6 +1823,41 @@ JNI_METHOD(void, BasicCluster, readUniqueIDAttribute)(JNIEnv * env, jobject self onFailure.release(); } +JNI_METHOD(void, BasicCluster, readAttributeListAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::Basic::Attributes::AttributeList::TypeInfo; + std::unique_ptr onSuccess( + chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::BasicCluster * cppCluster = reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = + chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, BasicCluster, readClusterRevisionAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { chip::DeviceLayer::StackLock lock; @@ -1707,13 +1997,15 @@ JNI_METHOD(void, BinaryInputBasicCluster, readStatusFlagsAttribute)(JNIEnv * env onFailure.release(); } -JNI_METHOD(void, BinaryInputBasicCluster, readClusterRevisionAttribute) +JNI_METHOD(void, BinaryInputBasicCluster, readAttributeListAttribute) (JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { chip::DeviceLayer::StackLock lock; - using TypeInfo = chip::app::Clusters::BinaryInputBasic::Attributes::ClusterRevision::TypeInfo; - std::unique_ptr onSuccess( - chip::Platform::New(callback, false), chip::Platform::Delete); + using TypeInfo = chip::app::Clusters::BinaryInputBasic::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); VerifyOrReturn(onSuccess.get() != nullptr, chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); @@ -1731,7 +2023,7 @@ JNI_METHOD(void, BinaryInputBasicCluster, readClusterRevisionAttribute) chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); - auto successFn = chip::Callback::Callback::FromCancelable( + auto successFn = chip::Callback::Callback::FromCancelable( onSuccess->Cancel()); auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); @@ -1743,10 +2035,11 @@ JNI_METHOD(void, BinaryInputBasicCluster, readClusterRevisionAttribute) onFailure.release(); } -JNI_METHOD(void, BindingCluster, readClusterRevisionAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +JNI_METHOD(void, BinaryInputBasicCluster, readClusterRevisionAttribute) +(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { chip::DeviceLayer::StackLock lock; - using TypeInfo = chip::app::Clusters::Binding::Attributes::ClusterRevision::TypeInfo; + using TypeInfo = chip::app::Clusters::BinaryInputBasic::Attributes::ClusterRevision::TypeInfo; std::unique_ptr onSuccess( chip::Platform::New(callback, false), chip::Platform::Delete); VerifyOrReturn(onSuccess.get() != nullptr, @@ -1759,14 +2052,84 @@ JNI_METHOD(void, BindingCluster, readClusterRevisionAttribute)(JNIEnv * env, job chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); - CHIP_ERROR err = CHIP_NO_ERROR; - chip::Controller::BindingCluster * cppCluster = reinterpret_cast(clusterPtr); + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::BinaryInputBasicCluster * cppCluster = + reinterpret_cast(clusterPtr); VerifyOrReturn(cppCluster != nullptr, chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); - auto successFn = - chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); + auto successFn = chip::Callback::Callback::FromCancelable( + onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + +JNI_METHOD(void, BindingCluster, readAttributeListAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::Binding::Attributes::AttributeList::TypeInfo; + std::unique_ptr onSuccess( + chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::BindingCluster * cppCluster = reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = + chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + +JNI_METHOD(void, BindingCluster, readClusterRevisionAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::Binding::Attributes::ClusterRevision::TypeInfo; + std::unique_ptr onSuccess( + chip::Platform::New(callback, false), chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::BindingCluster * cppCluster = reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = + chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); VerifyOrReturn( @@ -1811,6 +2174,41 @@ JNI_METHOD(void, BooleanStateCluster, readStateValueAttribute)(JNIEnv * env, job onFailure.release(); } +JNI_METHOD(void, BooleanStateCluster, readAttributeListAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::BooleanState::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::BooleanStateCluster * cppCluster = reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = + chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, BooleanStateCluster, readClusterRevisionAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { chip::DeviceLayer::StackLock lock; @@ -1950,6 +2348,41 @@ JNI_METHOD(void, BridgedActionsCluster, readSetupUrlAttribute)(JNIEnv * env, job onFailure.release(); } +JNI_METHOD(void, BridgedActionsCluster, readAttributeListAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::BridgedActions::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::BridgedActionsCluster * cppCluster = reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = + chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, BridgedActionsCluster, readClusterRevisionAttribute) (JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { @@ -1985,6 +2418,44 @@ JNI_METHOD(void, BridgedActionsCluster, readClusterRevisionAttribute) onFailure.release(); } +JNI_METHOD(void, BridgedDeviceBasicCluster, readAttributeListAttribute) +(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::BridgedDeviceBasic::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::BridgedDeviceBasicCluster * cppCluster = + reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = chip::Callback::Callback::FromCancelable( + onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, BridgedDeviceBasicCluster, readClusterRevisionAttribute) (JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { @@ -3817,6 +4288,41 @@ JNI_METHOD(void, ColorControlCluster, readStartUpColorTemperatureMiredsAttribute onFailure.release(); } +JNI_METHOD(void, ColorControlCluster, readAttributeListAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::ColorControl::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::ColorControlCluster * cppCluster = reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = + chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, ColorControlCluster, readClusterRevisionAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { chip::DeviceLayer::StackLock lock; @@ -3928,6 +4434,43 @@ JNI_METHOD(void, ContentLauncherCluster, readSupportedStreamingTypesAttribute) onFailure.release(); } +JNI_METHOD(void, ContentLauncherCluster, readAttributeListAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::ContentLauncher::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::ContentLauncherCluster * cppCluster = + reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = + chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, ContentLauncherCluster, readClusterRevisionAttribute) (JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { @@ -4104,12 +4647,13 @@ JNI_METHOD(void, DescriptorCluster, readPartsListAttribute)(JNIEnv * env, jobjec onFailure.release(); } -JNI_METHOD(void, DescriptorCluster, readClusterRevisionAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +JNI_METHOD(void, DescriptorCluster, readAttributeListAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { chip::DeviceLayer::StackLock lock; - using TypeInfo = chip::app::Clusters::Descriptor::Attributes::ClusterRevision::TypeInfo; - std::unique_ptr onSuccess( - chip::Platform::New(callback, false), chip::Platform::Delete); + using TypeInfo = chip::app::Clusters::Descriptor::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); VerifyOrReturn(onSuccess.get() != nullptr, chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); @@ -4127,7 +4671,7 @@ JNI_METHOD(void, DescriptorCluster, readClusterRevisionAttribute)(JNIEnv * env, env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); auto successFn = - chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); + chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); VerifyOrReturn( @@ -4138,12 +4682,12 @@ JNI_METHOD(void, DescriptorCluster, readClusterRevisionAttribute)(JNIEnv * env, onFailure.release(); } -JNI_METHOD(void, DoorLockCluster, readActuatorEnabledAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +JNI_METHOD(void, DescriptorCluster, readClusterRevisionAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { chip::DeviceLayer::StackLock lock; - using TypeInfo = chip::app::Clusters::DoorLock::Attributes::ActuatorEnabled::TypeInfo; - std::unique_ptr onSuccess( - chip::Platform::New(callback, false), chip::Platform::Delete); + using TypeInfo = chip::app::Clusters::Descriptor::Attributes::ClusterRevision::TypeInfo; + std::unique_ptr onSuccess( + chip::Platform::New(callback, false), chip::Platform::Delete); VerifyOrReturn(onSuccess.get() != nullptr, chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); @@ -4154,14 +4698,14 @@ JNI_METHOD(void, DoorLockCluster, readActuatorEnabledAttribute)(JNIEnv * env, jo chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); - CHIP_ERROR err = CHIP_NO_ERROR; - chip::Controller::DoorLockCluster * cppCluster = reinterpret_cast(clusterPtr); + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::DescriptorCluster * cppCluster = reinterpret_cast(clusterPtr); VerifyOrReturn(cppCluster != nullptr, chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); auto successFn = - chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); + chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); VerifyOrReturn( @@ -4172,12 +4716,13 @@ JNI_METHOD(void, DoorLockCluster, readActuatorEnabledAttribute)(JNIEnv * env, jo onFailure.release(); } -JNI_METHOD(void, DoorLockCluster, readClusterRevisionAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +JNI_METHOD(void, DiagnosticLogsCluster, readAttributeListAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { chip::DeviceLayer::StackLock lock; - using TypeInfo = chip::app::Clusters::DoorLock::Attributes::ClusterRevision::TypeInfo; - std::unique_ptr onSuccess( - chip::Platform::New(callback, false), chip::Platform::Delete); + using TypeInfo = chip::app::Clusters::DiagnosticLogs::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); VerifyOrReturn(onSuccess.get() != nullptr, chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); @@ -4188,14 +4733,14 @@ JNI_METHOD(void, DoorLockCluster, readClusterRevisionAttribute)(JNIEnv * env, jo chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); - CHIP_ERROR err = CHIP_NO_ERROR; - chip::Controller::DoorLockCluster * cppCluster = reinterpret_cast(clusterPtr); + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::DiagnosticLogsCluster * cppCluster = reinterpret_cast(clusterPtr); VerifyOrReturn(cppCluster != nullptr, chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); auto successFn = - chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); + chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); VerifyOrReturn( @@ -4206,13 +4751,12 @@ JNI_METHOD(void, DoorLockCluster, readClusterRevisionAttribute)(JNIEnv * env, jo onFailure.release(); } -JNI_METHOD(void, ElectricalMeasurementCluster, readMeasurementTypeAttribute) -(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +JNI_METHOD(void, DoorLockCluster, readActuatorEnabledAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { chip::DeviceLayer::StackLock lock; - using TypeInfo = chip::app::Clusters::ElectricalMeasurement::Attributes::MeasurementType::TypeInfo; - std::unique_ptr onSuccess( - chip::Platform::New(callback, false), chip::Platform::Delete); + using TypeInfo = chip::app::Clusters::DoorLock::Attributes::ActuatorEnabled::TypeInfo; + std::unique_ptr onSuccess( + chip::Platform::New(callback, false), chip::Platform::Delete); VerifyOrReturn(onSuccess.get() != nullptr, chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); @@ -4223,15 +4767,119 @@ JNI_METHOD(void, ElectricalMeasurementCluster, readMeasurementTypeAttribute) chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); - CHIP_ERROR err = CHIP_NO_ERROR; - chip::Controller::ElectricalMeasurementCluster * cppCluster = - reinterpret_cast(clusterPtr); + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::DoorLockCluster * cppCluster = reinterpret_cast(clusterPtr); VerifyOrReturn(cppCluster != nullptr, chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); - auto successFn = chip::Callback::Callback::FromCancelable( - onSuccess->Cancel()); + auto successFn = + chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + +JNI_METHOD(void, DoorLockCluster, readAttributeListAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::DoorLock::Attributes::AttributeList::TypeInfo; + std::unique_ptr onSuccess( + chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::DoorLockCluster * cppCluster = reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = + chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + +JNI_METHOD(void, DoorLockCluster, readClusterRevisionAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::DoorLock::Attributes::ClusterRevision::TypeInfo; + std::unique_ptr onSuccess( + chip::Platform::New(callback, false), chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::DoorLockCluster * cppCluster = reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = + chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + +JNI_METHOD(void, ElectricalMeasurementCluster, readMeasurementTypeAttribute) +(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::ElectricalMeasurement::Attributes::MeasurementType::TypeInfo; + std::unique_ptr onSuccess( + chip::Platform::New(callback, false), chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::ElectricalMeasurementCluster * cppCluster = + reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = chip::Callback::Callback::FromCancelable( + onSuccess->Cancel()); auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); VerifyOrReturn( @@ -4603,6 +5251,44 @@ JNI_METHOD(void, ElectricalMeasurementCluster, readActivePowerMaxAttribute) onFailure.release(); } +JNI_METHOD(void, ElectricalMeasurementCluster, readAttributeListAttribute) +(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::ElectricalMeasurement::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::ElectricalMeasurementCluster * cppCluster = + reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = chip::Callback::Callback::FromCancelable( + onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, ElectricalMeasurementCluster, readClusterRevisionAttribute) (JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { @@ -4969,6 +5655,45 @@ JNI_METHOD(void, EthernetNetworkDiagnosticsCluster, readTimeSinceResetAttribute) onFailure.release(); } +JNI_METHOD(void, EthernetNetworkDiagnosticsCluster, readAttributeListAttribute) +(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::EthernetNetworkDiagnostics::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::EthernetNetworkDiagnosticsCluster * cppCluster = + reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = + chip::Callback::Callback::FromCancelable( + onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, EthernetNetworkDiagnosticsCluster, readFeatureMapAttribute) (JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { @@ -5077,6 +5802,41 @@ JNI_METHOD(void, FixedLabelCluster, readLabelListAttribute)(JNIEnv * env, jobjec onFailure.release(); } +JNI_METHOD(void, FixedLabelCluster, readAttributeListAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::FixedLabel::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::FixedLabelCluster * cppCluster = reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = + chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, FixedLabelCluster, readClusterRevisionAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { chip::DeviceLayer::StackLock lock; @@ -5253,6 +6013,43 @@ JNI_METHOD(void, FlowMeasurementCluster, readToleranceAttribute)(JNIEnv * env, j onFailure.release(); } +JNI_METHOD(void, FlowMeasurementCluster, readAttributeListAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::FlowMeasurement::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::FlowMeasurementCluster * cppCluster = + reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = + chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, FlowMeasurementCluster, readClusterRevisionAttribute) (JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { @@ -5437,6 +6234,44 @@ JNI_METHOD(void, GeneralCommissioningCluster, readLocationCapabilityAttribute) onFailure.release(); } +JNI_METHOD(void, GeneralCommissioningCluster, readAttributeListAttribute) +(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::GeneralCommissioning::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::GeneralCommissioningCluster * cppCluster = + reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = chip::Callback::Callback::FromCancelable( + onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, GeneralCommissioningCluster, readClusterRevisionAttribute) (JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { @@ -5771,11 +6606,49 @@ JNI_METHOD(void, GeneralDiagnosticsCluster, readActiveNetworkFaultsAttribute) onFailure.release(); } -JNI_METHOD(void, GeneralDiagnosticsCluster, readClusterRevisionAttribute) +JNI_METHOD(void, GeneralDiagnosticsCluster, readAttributeListAttribute) (JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { chip::DeviceLayer::StackLock lock; - using TypeInfo = chip::app::Clusters::GeneralDiagnostics::Attributes::ClusterRevision::TypeInfo; + using TypeInfo = chip::app::Clusters::GeneralDiagnostics::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::GeneralDiagnosticsCluster * cppCluster = + reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = chip::Callback::Callback::FromCancelable( + onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + +JNI_METHOD(void, GeneralDiagnosticsCluster, readClusterRevisionAttribute) +(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::GeneralDiagnostics::Attributes::ClusterRevision::TypeInfo; std::unique_ptr onSuccess( chip::Platform::New(callback, false), chip::Platform::Delete); VerifyOrReturn(onSuccess.get() != nullptr, @@ -5879,6 +6752,44 @@ JNI_METHOD(void, GroupKeyManagementCluster, readGroupKeysAttribute)(JNIEnv * env onFailure.release(); } +JNI_METHOD(void, GroupKeyManagementCluster, readAttributeListAttribute) +(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::GroupKeyManagement::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::GroupKeyManagementCluster * cppCluster = + reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = chip::Callback::Callback::FromCancelable( + onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, GroupKeyManagementCluster, readClusterRevisionAttribute) (JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { @@ -5949,6 +6860,41 @@ JNI_METHOD(void, GroupsCluster, readNameSupportAttribute)(JNIEnv * env, jobject onFailure.release(); } +JNI_METHOD(void, GroupsCluster, readAttributeListAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::Groups::Attributes::AttributeList::TypeInfo; + std::unique_ptr onSuccess( + chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::GroupsCluster * cppCluster = reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = + chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, GroupsCluster, readClusterRevisionAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { chip::DeviceLayer::StackLock lock; @@ -6051,6 +6997,41 @@ JNI_METHOD(void, IdentifyCluster, readIdentifyTypeAttribute)(JNIEnv * env, jobje onFailure.release(); } +JNI_METHOD(void, IdentifyCluster, readAttributeListAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::Identify::Attributes::AttributeList::TypeInfo; + std::unique_ptr onSuccess( + chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::IdentifyCluster * cppCluster = reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = + chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, IdentifyCluster, readClusterRevisionAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { chip::DeviceLayer::StackLock lock; @@ -6274,6 +7255,44 @@ JNI_METHOD(void, IlluminanceMeasurementCluster, readLightSensorTypeAttribute) onFailure.release(); } +JNI_METHOD(void, IlluminanceMeasurementCluster, readAttributeListAttribute) +(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::IlluminanceMeasurement::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::IlluminanceMeasurementCluster * cppCluster = + reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = chip::Callback::Callback::FromCancelable( + onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, IlluminanceMeasurementCluster, readClusterRevisionAttribute) (JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { @@ -6311,6 +7330,41 @@ JNI_METHOD(void, IlluminanceMeasurementCluster, readClusterRevisionAttribute) onFailure.release(); } +JNI_METHOD(void, KeypadInputCluster, readAttributeListAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::KeypadInput::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::KeypadInputCluster * cppCluster = reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = + chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, KeypadInputCluster, readClusterRevisionAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { chip::DeviceLayer::StackLock lock; @@ -6828,6 +7882,41 @@ JNI_METHOD(void, LevelControlCluster, readStartUpCurrentLevelAttribute) onFailure.release(); } +JNI_METHOD(void, LevelControlCluster, readAttributeListAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::LevelControl::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::LevelControlCluster * cppCluster = reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = + chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, LevelControlCluster, readClusterRevisionAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { chip::DeviceLayer::StackLock lock; @@ -6862,6 +7951,41 @@ JNI_METHOD(void, LevelControlCluster, readClusterRevisionAttribute)(JNIEnv * env onFailure.release(); } +JNI_METHOD(void, LowPowerCluster, readAttributeListAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::LowPower::Attributes::AttributeList::TypeInfo; + std::unique_ptr onSuccess( + chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::LowPowerCluster * cppCluster = reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = + chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, LowPowerCluster, readClusterRevisionAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { chip::DeviceLayer::StackLock lock; @@ -6965,6 +8089,41 @@ JNI_METHOD(void, MediaInputCluster, readCurrentMediaInputAttribute)(JNIEnv * env onFailure.release(); } +JNI_METHOD(void, MediaInputCluster, readAttributeListAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::MediaInput::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::MediaInputCluster * cppCluster = reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = + chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, MediaInputCluster, readClusterRevisionAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { chip::DeviceLayer::StackLock lock; @@ -7272,6 +8431,41 @@ JNI_METHOD(void, MediaPlaybackCluster, readSeekRangeStartAttribute)(JNIEnv * env onFailure.release(); } +JNI_METHOD(void, MediaPlaybackCluster, readAttributeListAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::MediaPlayback::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::MediaPlaybackCluster * cppCluster = reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = + chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, MediaPlaybackCluster, readClusterRevisionAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { chip::DeviceLayer::StackLock lock; @@ -7478,6 +8672,41 @@ JNI_METHOD(void, ModeSelectCluster, readDescriptionAttribute)(JNIEnv * env, jobj onFailure.release(); } +JNI_METHOD(void, ModeSelectCluster, readAttributeListAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::ModeSelect::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::ModeSelectCluster * cppCluster = reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = + chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, ModeSelectCluster, readClusterRevisionAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { chip::DeviceLayer::StackLock lock; @@ -7494,14 +8723,52 @@ JNI_METHOD(void, ModeSelectCluster, readClusterRevisionAttribute)(JNIEnv * env, chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); - CHIP_ERROR err = CHIP_NO_ERROR; - chip::Controller::ModeSelectCluster * cppCluster = reinterpret_cast(clusterPtr); + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::ModeSelectCluster * cppCluster = reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = + chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + +JNI_METHOD(void, NetworkCommissioningCluster, readAttributeListAttribute) +(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::NetworkCommissioning::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::NetworkCommissioningCluster * cppCluster = + reinterpret_cast(clusterPtr); VerifyOrReturn(cppCluster != nullptr, chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); - auto successFn = - chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); + auto successFn = chip::Callback::Callback::FromCancelable( + onSuccess->Cancel()); auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); VerifyOrReturn( @@ -7584,6 +8851,45 @@ JNI_METHOD(void, NetworkCommissioningCluster, readClusterRevisionAttribute) onFailure.release(); } +JNI_METHOD(void, OtaSoftwareUpdateProviderCluster, readAttributeListAttribute) +(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::OtaSoftwareUpdateProvider::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::OtaSoftwareUpdateProviderCluster * cppCluster = + reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = + chip::Callback::Callback::FromCancelable( + onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, OtaSoftwareUpdateProviderCluster, readClusterRevisionAttribute) (JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { @@ -7696,6 +9002,45 @@ JNI_METHOD(void, OtaSoftwareUpdateRequestorCluster, readUpdatePossibleAttribute) onFailure.release(); } +JNI_METHOD(void, OtaSoftwareUpdateRequestorCluster, readAttributeListAttribute) +(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::OtaSoftwareUpdateRequestor::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::OtaSoftwareUpdateRequestorCluster * cppCluster = + reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = + chip::Callback::Callback::FromCancelable( + onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, OtaSoftwareUpdateRequestorCluster, readClusterRevisionAttribute) (JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { @@ -7841,6 +9186,44 @@ JNI_METHOD(void, OccupancySensingCluster, readOccupancySensorTypeBitmapAttribute onFailure.release(); } +JNI_METHOD(void, OccupancySensingCluster, readAttributeListAttribute) +(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::OccupancySensing::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::OccupancySensingCluster * cppCluster = + reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = chip::Callback::Callback::FromCancelable( + onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, OccupancySensingCluster, readClusterRevisionAttribute) (JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { @@ -8045,6 +9428,41 @@ JNI_METHOD(void, OnOffCluster, readStartUpOnOffAttribute)(JNIEnv * env, jobject onFailure.release(); } +JNI_METHOD(void, OnOffCluster, readAttributeListAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::OnOff::Attributes::AttributeList::TypeInfo; + std::unique_ptr onSuccess( + chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::OnOffCluster * cppCluster = reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = + chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, OnOffCluster, readFeatureMapAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { chip::DeviceLayer::StackLock lock; @@ -8185,6 +9603,45 @@ JNI_METHOD(void, OnOffSwitchConfigurationCluster, readSwitchActionsAttribute) onFailure.release(); } +JNI_METHOD(void, OnOffSwitchConfigurationCluster, readAttributeListAttribute) +(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::OnOffSwitchConfiguration::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::OnOffSwitchConfigurationCluster * cppCluster = + reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = + chip::Callback::Callback::FromCancelable( + onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, OnOffSwitchConfigurationCluster, readClusterRevisionAttribute) (JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { @@ -8412,6 +9869,44 @@ JNI_METHOD(void, OperationalCredentialsCluster, readCurrentFabricIndexAttribute) onFailure.release(); } +JNI_METHOD(void, OperationalCredentialsCluster, readAttributeListAttribute) +(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::OperationalCredentials::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::OperationalCredentialsCluster * cppCluster = + reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = chip::Callback::Callback::FromCancelable( + onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, OperationalCredentialsCluster, readClusterRevisionAttribute) (JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { @@ -8763,6 +10258,41 @@ JNI_METHOD(void, PowerSourceCluster, readBatteryChargeStateAttribute) onFailure.release(); } +JNI_METHOD(void, PowerSourceCluster, readAttributeListAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::PowerSource::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::PowerSourceCluster * cppCluster = reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = + chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, PowerSourceCluster, readFeatureMapAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { chip::DeviceLayer::StackLock lock; @@ -8857,8 +10387,47 @@ JNI_METHOD(void, PowerSourceConfigurationCluster, readSourcesAttribute) chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); - auto successFn = chip::Callback::Callback::FromCancelable( - onSuccess->Cancel()); + auto successFn = chip::Callback::Callback::FromCancelable( + onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + +JNI_METHOD(void, PowerSourceConfigurationCluster, readAttributeListAttribute) +(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::PowerSourceConfiguration::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::PowerSourceConfigurationCluster * cppCluster = + reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = + chip::Callback::Callback::FromCancelable( + onSuccess->Cancel()); auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); VerifyOrReturn( @@ -9014,6 +10583,44 @@ JNI_METHOD(void, PressureMeasurementCluster, readMaxMeasuredValueAttribute) onFailure.release(); } +JNI_METHOD(void, PressureMeasurementCluster, readAttributeListAttribute) +(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::PressureMeasurement::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::PressureMeasurementCluster * cppCluster = + reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = chip::Callback::Callback::FromCancelable( + onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, PressureMeasurementCluster, readClusterRevisionAttribute) (JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { @@ -9936,6 +11543,45 @@ JNI_METHOD(void, PumpConfigurationAndControlCluster, readAlarmMaskAttribute) onFailure.release(); } +JNI_METHOD(void, PumpConfigurationAndControlCluster, readAttributeListAttribute) +(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::PumpConfigurationAndControl::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::PumpConfigurationAndControlCluster * cppCluster = + reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = + chip::Callback::Callback::FromCancelable( + onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, PumpConfigurationAndControlCluster, readFeatureMapAttribute) (JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { @@ -10157,6 +11803,45 @@ JNI_METHOD(void, RelativeHumidityMeasurementCluster, readToleranceAttribute) onFailure.release(); } +JNI_METHOD(void, RelativeHumidityMeasurementCluster, readAttributeListAttribute) +(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::RelativeHumidityMeasurement::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::RelativeHumidityMeasurementCluster * cppCluster = + reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = + chip::Callback::Callback::FromCancelable( + onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, RelativeHumidityMeasurementCluster, readClusterRevisionAttribute) (JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { @@ -10364,6 +12049,41 @@ JNI_METHOD(void, ScenesCluster, readNameSupportAttribute)(JNIEnv * env, jobject onFailure.release(); } +JNI_METHOD(void, ScenesCluster, readAttributeListAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::Scenes::Attributes::AttributeList::TypeInfo; + std::unique_ptr onSuccess( + chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::ScenesCluster * cppCluster = reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = + chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, ScenesCluster, readClusterRevisionAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { chip::DeviceLayer::StackLock lock; @@ -10545,6 +12265,44 @@ JNI_METHOD(void, SoftwareDiagnosticsCluster, readCurrentHeapHighWatermarkAttribu onFailure.release(); } +JNI_METHOD(void, SoftwareDiagnosticsCluster, readAttributeListAttribute) +(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::SoftwareDiagnostics::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::SoftwareDiagnosticsCluster * cppCluster = + reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = chip::Callback::Callback::FromCancelable( + onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, SoftwareDiagnosticsCluster, readFeatureMapAttribute) (JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { @@ -10719,6 +12477,41 @@ JNI_METHOD(void, SwitchCluster, readMultiPressMaxAttribute)(JNIEnv * env, jobjec onFailure.release(); } +JNI_METHOD(void, SwitchCluster, readAttributeListAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::Switch::Attributes::AttributeList::TypeInfo; + std::unique_ptr onSuccess( + chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::SwitchCluster * cppCluster = reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = + chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, SwitchCluster, readFeatureMapAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { chip::DeviceLayer::StackLock lock; @@ -10892,6 +12685,41 @@ JNI_METHOD(void, TvChannelCluster, readCurrentTvChannelAttribute)(JNIEnv * env, onFailure.release(); } +JNI_METHOD(void, TvChannelCluster, readAttributeListAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::TvChannel::Attributes::AttributeList::TypeInfo; + std::unique_ptr onSuccess( + chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::TvChannelCluster * cppCluster = reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = + chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, TvChannelCluster, readClusterRevisionAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { chip::DeviceLayer::StackLock lock; @@ -10914,8 +12742,46 @@ JNI_METHOD(void, TvChannelCluster, readClusterRevisionAttribute)(JNIEnv * env, j chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); - auto successFn = - chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); + auto successFn = + chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + +JNI_METHOD(void, TargetNavigatorCluster, readTargetNavigatorListAttribute) +(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::TargetNavigator::Attributes::TargetNavigatorList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::TargetNavigatorCluster * cppCluster = + reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = chip::Callback::Callback::FromCancelable( + onSuccess->Cancel()); auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); VerifyOrReturn( @@ -10926,15 +12792,14 @@ JNI_METHOD(void, TvChannelCluster, readClusterRevisionAttribute)(JNIEnv * env, j onFailure.release(); } -JNI_METHOD(void, TargetNavigatorCluster, readTargetNavigatorListAttribute) -(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +JNI_METHOD(void, TargetNavigatorCluster, readAttributeListAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { chip::DeviceLayer::StackLock lock; - using TypeInfo = chip::app::Clusters::TargetNavigator::Attributes::TargetNavigatorList::TypeInfo; - std::unique_ptr - onSuccess(chip::Platform::New(callback, false), - chip::Platform::Delete); + using TypeInfo = chip::app::Clusters::TargetNavigator::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); VerifyOrReturn(onSuccess.get() != nullptr, chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); @@ -10952,8 +12817,8 @@ JNI_METHOD(void, TargetNavigatorCluster, readTargetNavigatorListAttribute) chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); - auto successFn = chip::Callback::Callback::FromCancelable( - onSuccess->Cancel()); + auto successFn = + chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); VerifyOrReturn( @@ -11146,6 +13011,44 @@ JNI_METHOD(void, TemperatureMeasurementCluster, readToleranceAttribute) onFailure.release(); } +JNI_METHOD(void, TemperatureMeasurementCluster, readAttributeListAttribute) +(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::TemperatureMeasurement::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::TemperatureMeasurementCluster * cppCluster = + reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = chip::Callback::Callback::FromCancelable( + onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, TemperatureMeasurementCluster, readClusterRevisionAttribute) (JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { @@ -13766,6 +15669,41 @@ JNI_METHOD(void, TestClusterCluster, readNullableRangeRestrictedInt16sAttribute) onFailure.release(); } +JNI_METHOD(void, TestClusterCluster, readAttributeListAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::TestCluster::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::TestClusterCluster * cppCluster = reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = + chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, TestClusterCluster, readClusterRevisionAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { chip::DeviceLayer::StackLock lock; @@ -14392,6 +16330,41 @@ JNI_METHOD(void, ThermostatCluster, readNumberOfDailyTransitionsAttribute) onFailure.release(); } +JNI_METHOD(void, ThermostatCluster, readAttributeListAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::Thermostat::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::ThermostatCluster * cppCluster = reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = + chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, ThermostatCluster, readFeatureMapAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { chip::DeviceLayer::StackLock lock; @@ -14571,6 +16544,45 @@ JNI_METHOD(void, ThermostatUserInterfaceConfigurationCluster, readScheduleProgra onFailure.release(); } +JNI_METHOD(void, ThermostatUserInterfaceConfigurationCluster, readAttributeListAttribute) +(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::ThermostatUserInterfaceConfiguration::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::ThermostatUserInterfaceConfigurationCluster * cppCluster = + reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = + chip::Callback::Callback::FromCancelable( + onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, ThermostatUserInterfaceConfigurationCluster, readClusterRevisionAttribute) (JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { @@ -16930,6 +18942,45 @@ JNI_METHOD(void, ThreadNetworkDiagnosticsCluster, readActiveNetworkFaultsListAtt onFailure.release(); } +JNI_METHOD(void, ThreadNetworkDiagnosticsCluster, readAttributeListAttribute) +(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::ThreadNetworkDiagnostics::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::ThreadNetworkDiagnosticsCluster * cppCluster = + reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = + chip::Callback::Callback::FromCancelable( + onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, ThreadNetworkDiagnosticsCluster, readFeatureMapAttribute) (JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { @@ -17038,6 +19089,41 @@ JNI_METHOD(void, WakeOnLanCluster, readWakeOnLanMacAddressAttribute)(JNIEnv * en onFailure.release(); } +JNI_METHOD(void, WakeOnLanCluster, readAttributeListAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::WakeOnLan::Attributes::AttributeList::TypeInfo; + std::unique_ptr onSuccess( + chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::WakeOnLanCluster * cppCluster = reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = + chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, WakeOnLanCluster, readClusterRevisionAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { chip::DeviceLayer::StackLock lock; @@ -17544,6 +19630,44 @@ JNI_METHOD(void, WiFiNetworkDiagnosticsCluster, readOverrunCountAttribute) onFailure.release(); } +JNI_METHOD(void, WiFiNetworkDiagnosticsCluster, readAttributeListAttribute) +(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::WiFiNetworkDiagnostics::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::WiFiNetworkDiagnosticsCluster * cppCluster = + reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = chip::Callback::Callback::FromCancelable( + onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, WiFiNetworkDiagnosticsCluster, readFeatureMapAttribute) (JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { @@ -18250,6 +20374,41 @@ JNI_METHOD(void, WindowCoveringCluster, readSafetyStatusAttribute)(JNIEnv * env, onFailure.release(); } +JNI_METHOD(void, WindowCoveringCluster, readAttributeListAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) +{ + chip::DeviceLayer::StackLock lock; + using TypeInfo = chip::app::Clusters::WindowCovering::Attributes::AttributeList::TypeInfo; + std::unique_ptr + onSuccess(chip::Platform::New(callback, false), + chip::Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native success callback", CHIP_ERROR_NO_MEMORY)); + + std::unique_ptr onFailure( + chip::Platform::New(callback), chip::Platform::Delete); + VerifyOrReturn(onFailure.get() != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Error creating native failure callback", CHIP_ERROR_NO_MEMORY)); + + CHIP_ERROR err = CHIP_NO_ERROR; + chip::Controller::WindowCoveringCluster * cppCluster = reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException( + env, callback, "Could not get native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = + chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + err = cppCluster->ReadAttribute(onSuccess->mContext, successFn->mCall, failureFn->mCall); + VerifyOrReturn( + err == CHIP_NO_ERROR, + chip::AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error reading attribute", err)); + + onSuccess.release(); + onFailure.release(); +} + JNI_METHOD(void, WindowCoveringCluster, readFeatureMapAttribute)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback) { chip::DeviceLayer::StackLock lock; diff --git a/src/controller/java/zap-generated/CHIPReadCallbacks.cpp b/src/controller/java/zap-generated/CHIPReadCallbacks.cpp index d177606f1fe714..07a201dd25fd87 100644 --- a/src/controller/java/zap-generated/CHIPReadCallbacks.cpp +++ b/src/controller/java/zap-generated/CHIPReadCallbacks.cpp @@ -923,9 +923,9 @@ void CHIPAccessControlExtensionAttributeCallback::CallbackFn( env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPApplicationLauncherApplicationLauncherListAttributeCallback::CHIPApplicationLauncherApplicationLauncherListAttributeCallback( - jobject javaCallback, bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), +CHIPAccessControlAttributeListAttributeCallback::CHIPAccessControlAttributeListAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -942,7 +942,7 @@ CHIPApplicationLauncherApplicationLauncherListAttributeCallback::CHIPApplication } } -CHIPApplicationLauncherApplicationLauncherListAttributeCallback::~CHIPApplicationLauncherApplicationLauncherListAttributeCallback() +CHIPAccessControlAttributeListAttributeCallback::~CHIPAccessControlAttributeListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -953,8 +953,8 @@ CHIPApplicationLauncherApplicationLauncherListAttributeCallback::~CHIPApplicatio env->DeleteGlobalRef(javaCallbackRef); } -void CHIPApplicationLauncherApplicationLauncherListAttributeCallback::CallbackFn( - void * context, const chip::app::DataModel::DecodableList & list) +void CHIPAccessControlAttributeListAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -963,8 +963,8 @@ void CHIPApplicationLauncherApplicationLauncherListAttributeCallback::CallbackFn VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; @@ -989,17 +989,17 @@ void CHIPApplicationLauncherApplicationLauncherListAttributeCallback::CallbackFn auto iter = list.begin(); while (iter.Next()) { - auto & entry = iter.GetValue(); - bool entryNull = false; - uint16_t entryValue = entry; + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; jobject entryObject = nullptr; if (!entryNull) { jclass entryTypeCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", entryTypeCls); + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); chip::JniClass jniClass(entryTypeCls); - jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(I)V"); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); } @@ -1007,15 +1007,15 @@ void CHIPApplicationLauncherApplicationLauncherListAttributeCallback::CallbackFn } VerifyOrReturn( iter.GetStatus() == CHIP_NO_ERROR, - ChipLogError(Zcl, "Error decoding ApplicationLauncherListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); env->ExceptionClear(); env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPAudioOutputAudioOutputListAttributeCallback::CHIPAudioOutputAudioOutputListAttributeCallback(jobject javaCallback, - bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), +CHIPAccountLoginAttributeListAttributeCallback::CHIPAccountLoginAttributeListAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -1032,7 +1032,7 @@ CHIPAudioOutputAudioOutputListAttributeCallback::CHIPAudioOutputAudioOutputListA } } -CHIPAudioOutputAudioOutputListAttributeCallback::~CHIPAudioOutputAudioOutputListAttributeCallback() +CHIPAccountLoginAttributeListAttributeCallback::~CHIPAccountLoginAttributeListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1043,9 +1043,8 @@ CHIPAudioOutputAudioOutputListAttributeCallback::~CHIPAudioOutputAudioOutputList env->DeleteGlobalRef(javaCallbackRef); } -void CHIPAudioOutputAudioOutputListAttributeCallback::CallbackFn( - void * context, - const chip::app::DataModel::DecodableList & list) +void CHIPAccountLoginAttributeListAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -1054,8 +1053,8 @@ void CHIPAudioOutputAudioOutputListAttributeCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; @@ -1077,79 +1076,37 @@ void CHIPAudioOutputAudioOutputListAttributeCallback::CallbackFn( err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jclass attributeClass; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipClusters$AudioOutputCluster$AudioOutputListAttribute", attributeClass); - VerifyOrReturn( - err == CHIP_NO_ERROR, - ChipLogError(Zcl, "Could not find class chip/devicecontroller/ChipClusters$AudioOutputCluster$AudioOutputListAttribute")); - chip::JniClass attributeJniClass(attributeClass); - jmethodID attributeCtor = - env->GetMethodID(attributeClass, "", "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;)V"); - VerifyOrReturn(attributeCtor != nullptr, ChipLogError(Zcl, "Could not find AudioOutputListAttribute constructor")); - auto iter = list.begin(); while (iter.Next()) { - auto & entry = iter.GetValue(); - (void) entry; - bool indexNull = false; - bool indexHasValue = true; - - uint8_t indexValue = entry.index; - - jobject index = nullptr; - if (!indexNull && indexHasValue) - { - jclass indexEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", indexEntryCls); - chip::JniClass indexJniClass(indexEntryCls); - jmethodID indexEntryTypeCtor = env->GetMethodID(indexEntryCls, "", "(I)V"); - index = env->NewObject(indexEntryCls, indexEntryTypeCtor, indexValue); - } - - bool outputTypeNull = false; - bool outputTypeHasValue = true; - - chip::app::Clusters::AudioOutput::AudioOutputType outputTypeValue = entry.outputType; - - jobject outputType = nullptr; - if (!outputTypeNull && outputTypeHasValue) - { - jclass outputTypeEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", outputTypeEntryCls); - chip::JniClass outputTypeJniClass(outputTypeEntryCls); - jmethodID outputTypeEntryTypeCtor = env->GetMethodID(outputTypeEntryCls, "", "(I)V"); - outputType = env->NewObject(outputTypeEntryCls, outputTypeEntryTypeCtor, outputTypeValue); - } - - bool nameNull = false; - bool nameHasValue = true; + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; - chip::CharSpan nameValue = entry.name; - - jstring name = nullptr; - chip::UtfString nameStr(env, nameValue); - if (!nameNull && nameHasValue) + jobject entryObject = nullptr; + if (!entryNull) { - name = jstring(nameStr.jniValue()); + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); } - jobject attributeObj = env->NewObject(attributeClass, attributeCtor, index, outputType, name); - VerifyOrReturn(attributeObj != nullptr, ChipLogError(Zcl, "Could not create AudioOutputListAttribute object")); - - env->CallBooleanMethod(arrayListObj, arrayListAddMethod, attributeObj); + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); } VerifyOrReturn( iter.GetStatus() == CHIP_NO_ERROR, - ChipLogError(Zcl, "Error decoding AudioOutputListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); env->ExceptionClear(); env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPBridgedActionsActionListAttributeCallback::CHIPBridgedActionsActionListAttributeCallback(jobject javaCallback, bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) +CHIPAdministratorCommissioningAttributeListAttributeCallback::CHIPAdministratorCommissioningAttributeListAttributeCallback( + jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1165,7 +1122,7 @@ CHIPBridgedActionsActionListAttributeCallback::CHIPBridgedActionsActionListAttri } } -CHIPBridgedActionsActionListAttributeCallback::~CHIPBridgedActionsActionListAttributeCallback() +CHIPAdministratorCommissioningAttributeListAttributeCallback::~CHIPAdministratorCommissioningAttributeListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1176,9 +1133,8 @@ CHIPBridgedActionsActionListAttributeCallback::~CHIPBridgedActionsActionListAttr env->DeleteGlobalRef(javaCallbackRef); } -void CHIPBridgedActionsActionListAttributeCallback::CallbackFn( - void * context, - const chip::app::DataModel::DecodableList & list) +void CHIPAdministratorCommissioningAttributeListAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -1187,8 +1143,8 @@ void CHIPBridgedActionsActionListAttributeCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; @@ -1210,126 +1166,36 @@ void CHIPBridgedActionsActionListAttributeCallback::CallbackFn( err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jclass attributeClass; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipClusters$BridgedActionsCluster$ActionListAttribute", attributeClass); - VerifyOrReturn( - err == CHIP_NO_ERROR, - ChipLogError(Zcl, "Could not find class chip/devicecontroller/ChipClusters$BridgedActionsCluster$ActionListAttribute")); - chip::JniClass attributeJniClass(attributeClass); - jmethodID attributeCtor = env->GetMethodID( - attributeClass, "", - "(Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V"); - VerifyOrReturn(attributeCtor != nullptr, ChipLogError(Zcl, "Could not find ActionListAttribute constructor")); - auto iter = list.begin(); while (iter.Next()) { - auto & entry = iter.GetValue(); - (void) entry; - bool actionIDNull = false; - bool actionIDHasValue = true; - - uint16_t actionIDValue = entry.actionID; - - jobject actionID = nullptr; - if (!actionIDNull && actionIDHasValue) - { - jclass actionIDEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", actionIDEntryCls); - chip::JniClass actionIDJniClass(actionIDEntryCls); - jmethodID actionIDEntryTypeCtor = env->GetMethodID(actionIDEntryCls, "", "(I)V"); - actionID = env->NewObject(actionIDEntryCls, actionIDEntryTypeCtor, actionIDValue); - } - - bool nameNull = false; - bool nameHasValue = true; - - chip::CharSpan nameValue = entry.name; - - jstring name = nullptr; - chip::UtfString nameStr(env, nameValue); - if (!nameNull && nameHasValue) - { - name = jstring(nameStr.jniValue()); - } - - bool typeNull = false; - bool typeHasValue = true; - - chip::app::Clusters::BridgedActions::ActionTypeEnum typeValue = entry.type; - - jobject type = nullptr; - if (!typeNull && typeHasValue) - { - jclass typeEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", typeEntryCls); - chip::JniClass typeJniClass(typeEntryCls); - jmethodID typeEntryTypeCtor = env->GetMethodID(typeEntryCls, "", "(I)V"); - type = env->NewObject(typeEntryCls, typeEntryTypeCtor, typeValue); - } - - bool endpointListIDNull = false; - bool endpointListIDHasValue = true; - - uint16_t endpointListIDValue = entry.endpointListID; - - jobject endpointListID = nullptr; - if (!endpointListIDNull && endpointListIDHasValue) - { - jclass endpointListIDEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", endpointListIDEntryCls); - chip::JniClass endpointListIDJniClass(endpointListIDEntryCls); - jmethodID endpointListIDEntryTypeCtor = env->GetMethodID(endpointListIDEntryCls, "", "(I)V"); - endpointListID = env->NewObject(endpointListIDEntryCls, endpointListIDEntryTypeCtor, endpointListIDValue); - } - - bool supportedCommandsNull = false; - bool supportedCommandsHasValue = true; - - uint16_t supportedCommandsValue = entry.supportedCommands; + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; - jobject supportedCommands = nullptr; - if (!supportedCommandsNull && supportedCommandsHasValue) - { - jclass supportedCommandsEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", supportedCommandsEntryCls); - chip::JniClass supportedCommandsJniClass(supportedCommandsEntryCls); - jmethodID supportedCommandsEntryTypeCtor = env->GetMethodID(supportedCommandsEntryCls, "", "(I)V"); - supportedCommands = env->NewObject(supportedCommandsEntryCls, supportedCommandsEntryTypeCtor, supportedCommandsValue); - } - - bool statusNull = false; - bool statusHasValue = true; - - chip::app::Clusters::BridgedActions::ActionStatusEnum statusValue = entry.status; - - jobject status = nullptr; - if (!statusNull && statusHasValue) + jobject entryObject = nullptr; + if (!entryNull) { - jclass statusEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", statusEntryCls); - chip::JniClass statusJniClass(statusEntryCls); - jmethodID statusEntryTypeCtor = env->GetMethodID(statusEntryCls, "", "(I)V"); - status = env->NewObject(statusEntryCls, statusEntryTypeCtor, statusValue); + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); } - jobject attributeObj = - env->NewObject(attributeClass, attributeCtor, actionID, name, type, endpointListID, supportedCommands, status); - VerifyOrReturn(attributeObj != nullptr, ChipLogError(Zcl, "Could not create ActionListAttribute object")); - - env->CallBooleanMethod(arrayListObj, arrayListAddMethod, attributeObj); + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); } - VerifyOrReturn(iter.GetStatus() == CHIP_NO_ERROR, - ChipLogError(Zcl, "Error decoding ActionListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); env->ExceptionClear(); env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPBridgedActionsEndpointListAttributeCallback::CHIPBridgedActionsEndpointListAttributeCallback(jobject javaCallback, - bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), +CHIPApplicationBasicAttributeListAttributeCallback::CHIPApplicationBasicAttributeListAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -1346,7 +1212,7 @@ CHIPBridgedActionsEndpointListAttributeCallback::CHIPBridgedActionsEndpointListA } } -CHIPBridgedActionsEndpointListAttributeCallback::~CHIPBridgedActionsEndpointListAttributeCallback() +CHIPApplicationBasicAttributeListAttributeCallback::~CHIPApplicationBasicAttributeListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1357,10 +1223,8 @@ CHIPBridgedActionsEndpointListAttributeCallback::~CHIPBridgedActionsEndpointList env->DeleteGlobalRef(javaCallbackRef); } -void CHIPBridgedActionsEndpointListAttributeCallback::CallbackFn( - void * context, - const chip::app::DataModel::DecodableList & - list) +void CHIPApplicationBasicAttributeListAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -1369,8 +1233,8 @@ void CHIPBridgedActionsEndpointListAttributeCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; @@ -1392,79 +1256,36 @@ void CHIPBridgedActionsEndpointListAttributeCallback::CallbackFn( err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jclass attributeClass; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipClusters$BridgedActionsCluster$EndpointListAttribute", attributeClass); - VerifyOrReturn( - err == CHIP_NO_ERROR, - ChipLogError(Zcl, "Could not find class chip/devicecontroller/ChipClusters$BridgedActionsCluster$EndpointListAttribute")); - chip::JniClass attributeJniClass(attributeClass); - jmethodID attributeCtor = - env->GetMethodID(attributeClass, "", "(Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/Integer;)V"); - VerifyOrReturn(attributeCtor != nullptr, ChipLogError(Zcl, "Could not find EndpointListAttribute constructor")); - auto iter = list.begin(); while (iter.Next()) { - auto & entry = iter.GetValue(); - (void) entry; - bool endpointListIDNull = false; - bool endpointListIDHasValue = true; - - uint16_t endpointListIDValue = entry.endpointListID; + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; - jobject endpointListID = nullptr; - if (!endpointListIDNull && endpointListIDHasValue) + jobject entryObject = nullptr; + if (!entryNull) { - jclass endpointListIDEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", endpointListIDEntryCls); - chip::JniClass endpointListIDJniClass(endpointListIDEntryCls); - jmethodID endpointListIDEntryTypeCtor = env->GetMethodID(endpointListIDEntryCls, "", "(I)V"); - endpointListID = env->NewObject(endpointListIDEntryCls, endpointListIDEntryTypeCtor, endpointListIDValue); - } - - bool nameNull = false; - bool nameHasValue = true; - - chip::CharSpan nameValue = entry.name; - - jstring name = nullptr; - chip::UtfString nameStr(env, nameValue); - if (!nameNull && nameHasValue) - { - name = jstring(nameStr.jniValue()); - } - - bool typeNull = false; - bool typeHasValue = true; - - chip::app::Clusters::BridgedActions::EndpointListTypeEnum typeValue = entry.type; - - jobject type = nullptr; - if (!typeNull && typeHasValue) - { - jclass typeEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", typeEntryCls); - chip::JniClass typeJniClass(typeEntryCls); - jmethodID typeEntryTypeCtor = env->GetMethodID(typeEntryCls, "", "(I)V"); - type = env->NewObject(typeEntryCls, typeEntryTypeCtor, typeValue); + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); } - jobject attributeObj = env->NewObject(attributeClass, attributeCtor, endpointListID, name, type); - VerifyOrReturn(attributeObj != nullptr, ChipLogError(Zcl, "Could not create EndpointListAttribute object")); - - env->CallBooleanMethod(arrayListObj, arrayListAddMethod, attributeObj); + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); } - VerifyOrReturn(iter.GetStatus() == CHIP_NO_ERROR, - ChipLogError(Zcl, "Error decoding EndpointListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); env->ExceptionClear(); env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPContentLauncherAcceptsHeaderListAttributeCallback::CHIPContentLauncherAcceptsHeaderListAttributeCallback(jobject javaCallback, - bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), +CHIPApplicationLauncherApplicationLauncherListAttributeCallback::CHIPApplicationLauncherApplicationLauncherListAttributeCallback( + jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -1481,7 +1302,7 @@ CHIPContentLauncherAcceptsHeaderListAttributeCallback::CHIPContentLauncherAccept } } -CHIPContentLauncherAcceptsHeaderListAttributeCallback::~CHIPContentLauncherAcceptsHeaderListAttributeCallback() +CHIPApplicationLauncherApplicationLauncherListAttributeCallback::~CHIPApplicationLauncherApplicationLauncherListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1492,8 +1313,8 @@ CHIPContentLauncherAcceptsHeaderListAttributeCallback::~CHIPContentLauncherAccep env->DeleteGlobalRef(javaCallbackRef); } -void CHIPContentLauncherAcceptsHeaderListAttributeCallback::CallbackFn( - void * context, const chip::app::DataModel::DecodableList & list) +void CHIPApplicationLauncherApplicationLauncherListAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -1502,8 +1323,8 @@ void CHIPContentLauncherAcceptsHeaderListAttributeCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; @@ -1528,30 +1349,33 @@ void CHIPContentLauncherAcceptsHeaderListAttributeCallback::CallbackFn( auto iter = list.begin(); while (iter.Next()) { - auto & entry = iter.GetValue(); - bool entryNull = false; - chip::ByteSpan entryValue = entry; + auto & entry = iter.GetValue(); + bool entryNull = false; + uint16_t entryValue = entry; - jbyteArray entryObject = nullptr; + jobject entryObject = nullptr; if (!entryNull) { - entryObject = env->NewByteArray(entryValue.size()); - env->SetByteArrayRegion(entryObject, 0, entryValue.size(), reinterpret_cast(entryValue.data())); + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(I)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); } env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); } VerifyOrReturn( iter.GetStatus() == CHIP_NO_ERROR, - ChipLogError(Zcl, "Error decoding AcceptsHeaderListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + ChipLogError(Zcl, "Error decoding ApplicationLauncherListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); env->ExceptionClear(); env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPContentLauncherSupportedStreamingTypesAttributeCallback::CHIPContentLauncherSupportedStreamingTypesAttributeCallback( - jobject javaCallback, bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), +CHIPApplicationLauncherAttributeListAttributeCallback::CHIPApplicationLauncherAttributeListAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -1568,7 +1392,7 @@ CHIPContentLauncherSupportedStreamingTypesAttributeCallback::CHIPContentLauncher } } -CHIPContentLauncherSupportedStreamingTypesAttributeCallback::~CHIPContentLauncherSupportedStreamingTypesAttributeCallback() +CHIPApplicationLauncherAttributeListAttributeCallback::~CHIPApplicationLauncherAttributeListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1579,9 +1403,8 @@ CHIPContentLauncherSupportedStreamingTypesAttributeCallback::~CHIPContentLaunche env->DeleteGlobalRef(javaCallbackRef); } -void CHIPContentLauncherSupportedStreamingTypesAttributeCallback::CallbackFn( - void * context, - const chip::app::DataModel::DecodableList & list) +void CHIPApplicationLauncherAttributeListAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -1590,8 +1413,8 @@ void CHIPContentLauncherSupportedStreamingTypesAttributeCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; @@ -1616,17 +1439,17 @@ void CHIPContentLauncherSupportedStreamingTypesAttributeCallback::CallbackFn( auto iter = list.begin(); while (iter.Next()) { - auto & entry = iter.GetValue(); - bool entryNull = false; - chip::app::Clusters::ContentLauncher::ContentLaunchStreamingType entryValue = entry; + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; jobject entryObject = nullptr; if (!entryNull) { jclass entryTypeCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", entryTypeCls); + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); chip::JniClass jniClass(entryTypeCls); - jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(I)V"); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); } @@ -1634,14 +1457,16 @@ void CHIPContentLauncherSupportedStreamingTypesAttributeCallback::CallbackFn( } VerifyOrReturn( iter.GetStatus() == CHIP_NO_ERROR, - ChipLogError(Zcl, "Error decoding SupportedStreamingTypesAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); env->ExceptionClear(); env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPDescriptorDeviceListAttributeCallback::CHIPDescriptorDeviceListAttributeCallback(jobject javaCallback, bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) +CHIPAudioOutputAudioOutputListAttributeCallback::CHIPAudioOutputAudioOutputListAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1657,7 +1482,7 @@ CHIPDescriptorDeviceListAttributeCallback::CHIPDescriptorDeviceListAttributeCall } } -CHIPDescriptorDeviceListAttributeCallback::~CHIPDescriptorDeviceListAttributeCallback() +CHIPAudioOutputAudioOutputListAttributeCallback::~CHIPAudioOutputAudioOutputListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1668,9 +1493,9 @@ CHIPDescriptorDeviceListAttributeCallback::~CHIPDescriptorDeviceListAttributeCal env->DeleteGlobalRef(javaCallbackRef); } -void CHIPDescriptorDeviceListAttributeCallback::CallbackFn( +void CHIPAudioOutputAudioOutputListAttributeCallback::CallbackFn( void * context, - const chip::app::DataModel::DecodableList & list) + const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -1679,8 +1504,8 @@ void CHIPDescriptorDeviceListAttributeCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; @@ -1704,63 +1529,77 @@ void CHIPDescriptorDeviceListAttributeCallback::CallbackFn( jclass attributeClass; err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipClusters$DescriptorCluster$DeviceListAttribute", attributeClass); + env, "chip/devicecontroller/ChipClusters$AudioOutputCluster$AudioOutputListAttribute", attributeClass); VerifyOrReturn( err == CHIP_NO_ERROR, - ChipLogError(Zcl, "Could not find class chip/devicecontroller/ChipClusters$DescriptorCluster$DeviceListAttribute")); + ChipLogError(Zcl, "Could not find class chip/devicecontroller/ChipClusters$AudioOutputCluster$AudioOutputListAttribute")); chip::JniClass attributeJniClass(attributeClass); - jmethodID attributeCtor = env->GetMethodID(attributeClass, "", "(Ljava/lang/Long;Ljava/lang/Integer;)V"); - VerifyOrReturn(attributeCtor != nullptr, ChipLogError(Zcl, "Could not find DeviceListAttribute constructor")); + jmethodID attributeCtor = + env->GetMethodID(attributeClass, "", "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;)V"); + VerifyOrReturn(attributeCtor != nullptr, ChipLogError(Zcl, "Could not find AudioOutputListAttribute constructor")); auto iter = list.begin(); while (iter.Next()) { auto & entry = iter.GetValue(); (void) entry; - bool typeNull = false; - bool typeHasValue = true; + bool indexNull = false; + bool indexHasValue = true; - chip::DeviceTypeId typeValue = entry.type; + uint8_t indexValue = entry.index; - jobject type = nullptr; - if (!typeNull && typeHasValue) + jobject index = nullptr; + if (!indexNull && indexHasValue) { - jclass typeEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", typeEntryCls); - chip::JniClass typeJniClass(typeEntryCls); - jmethodID typeEntryTypeCtor = env->GetMethodID(typeEntryCls, "", "(J)V"); - type = env->NewObject(typeEntryCls, typeEntryTypeCtor, typeValue); + jclass indexEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", indexEntryCls); + chip::JniClass indexJniClass(indexEntryCls); + jmethodID indexEntryTypeCtor = env->GetMethodID(indexEntryCls, "", "(I)V"); + index = env->NewObject(indexEntryCls, indexEntryTypeCtor, indexValue); } - bool revisionNull = false; - bool revisionHasValue = true; + bool outputTypeNull = false; + bool outputTypeHasValue = true; - uint16_t revisionValue = entry.revision; + chip::app::Clusters::AudioOutput::AudioOutputType outputTypeValue = entry.outputType; - jobject revision = nullptr; - if (!revisionNull && revisionHasValue) + jobject outputType = nullptr; + if (!outputTypeNull && outputTypeHasValue) { - jclass revisionEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", revisionEntryCls); - chip::JniClass revisionJniClass(revisionEntryCls); - jmethodID revisionEntryTypeCtor = env->GetMethodID(revisionEntryCls, "", "(I)V"); - revision = env->NewObject(revisionEntryCls, revisionEntryTypeCtor, revisionValue); + jclass outputTypeEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", outputTypeEntryCls); + chip::JniClass outputTypeJniClass(outputTypeEntryCls); + jmethodID outputTypeEntryTypeCtor = env->GetMethodID(outputTypeEntryCls, "", "(I)V"); + outputType = env->NewObject(outputTypeEntryCls, outputTypeEntryTypeCtor, outputTypeValue); } - jobject attributeObj = env->NewObject(attributeClass, attributeCtor, type, revision); - VerifyOrReturn(attributeObj != nullptr, ChipLogError(Zcl, "Could not create DeviceListAttribute object")); + bool nameNull = false; + bool nameHasValue = true; + + chip::CharSpan nameValue = entry.name; + + jstring name = nullptr; + chip::UtfString nameStr(env, nameValue); + if (!nameNull && nameHasValue) + { + name = jstring(nameStr.jniValue()); + } + + jobject attributeObj = env->NewObject(attributeClass, attributeCtor, index, outputType, name); + VerifyOrReturn(attributeObj != nullptr, ChipLogError(Zcl, "Could not create AudioOutputListAttribute object")); env->CallBooleanMethod(arrayListObj, arrayListAddMethod, attributeObj); } - VerifyOrReturn(iter.GetStatus() == CHIP_NO_ERROR, - ChipLogError(Zcl, "Error decoding DeviceListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AudioOutputListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); env->ExceptionClear(); env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPDescriptorServerListAttributeCallback::CHIPDescriptorServerListAttributeCallback(jobject javaCallback, bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) +CHIPAudioOutputAttributeListAttributeCallback::CHIPAudioOutputAttributeListAttributeCallback(jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1776,7 +1615,7 @@ CHIPDescriptorServerListAttributeCallback::CHIPDescriptorServerListAttributeCall } } -CHIPDescriptorServerListAttributeCallback::~CHIPDescriptorServerListAttributeCallback() +CHIPAudioOutputAttributeListAttributeCallback::~CHIPAudioOutputAttributeListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1787,8 +1626,8 @@ CHIPDescriptorServerListAttributeCallback::~CHIPDescriptorServerListAttributeCal env->DeleteGlobalRef(javaCallbackRef); } -void CHIPDescriptorServerListAttributeCallback::CallbackFn(void * context, - const chip::app::DataModel::DecodableList & list) +void CHIPAudioOutputAttributeListAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -1797,8 +1636,8 @@ void CHIPDescriptorServerListAttributeCallback::CallbackFn(void * context, VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; @@ -1823,9 +1662,9 @@ void CHIPDescriptorServerListAttributeCallback::CallbackFn(void * context, auto iter = list.begin(); while (iter.Next()) { - auto & entry = iter.GetValue(); - bool entryNull = false; - chip::ClusterId entryValue = entry; + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; jobject entryObject = nullptr; if (!entryNull) @@ -1839,15 +1678,18 @@ void CHIPDescriptorServerListAttributeCallback::CallbackFn(void * context, env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); } - VerifyOrReturn(iter.GetStatus() == CHIP_NO_ERROR, - ChipLogError(Zcl, "Error decoding ServerListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); env->ExceptionClear(); env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPDescriptorClientListAttributeCallback::CHIPDescriptorClientListAttributeCallback(jobject javaCallback, bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) +CHIPBarrierControlAttributeListAttributeCallback::CHIPBarrierControlAttributeListAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1863,7 +1705,7 @@ CHIPDescriptorClientListAttributeCallback::CHIPDescriptorClientListAttributeCall } } -CHIPDescriptorClientListAttributeCallback::~CHIPDescriptorClientListAttributeCallback() +CHIPBarrierControlAttributeListAttributeCallback::~CHIPBarrierControlAttributeListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1874,8 +1716,8 @@ CHIPDescriptorClientListAttributeCallback::~CHIPDescriptorClientListAttributeCal env->DeleteGlobalRef(javaCallbackRef); } -void CHIPDescriptorClientListAttributeCallback::CallbackFn(void * context, - const chip::app::DataModel::DecodableList & list) +void CHIPBarrierControlAttributeListAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -1884,8 +1726,8 @@ void CHIPDescriptorClientListAttributeCallback::CallbackFn(void * context, VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; @@ -1910,9 +1752,9 @@ void CHIPDescriptorClientListAttributeCallback::CallbackFn(void * context, auto iter = list.begin(); while (iter.Next()) { - auto & entry = iter.GetValue(); - bool entryNull = false; - chip::ClusterId entryValue = entry; + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; jobject entryObject = nullptr; if (!entryNull) @@ -1926,15 +1768,16 @@ void CHIPDescriptorClientListAttributeCallback::CallbackFn(void * context, env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); } - VerifyOrReturn(iter.GetStatus() == CHIP_NO_ERROR, - ChipLogError(Zcl, "Error decoding ClientListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); env->ExceptionClear(); env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPDescriptorPartsListAttributeCallback::CHIPDescriptorPartsListAttributeCallback(jobject javaCallback, bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) +CHIPBasicAttributeListAttributeCallback::CHIPBasicAttributeListAttributeCallback(jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1950,7 +1793,7 @@ CHIPDescriptorPartsListAttributeCallback::CHIPDescriptorPartsListAttributeCallba } } -CHIPDescriptorPartsListAttributeCallback::~CHIPDescriptorPartsListAttributeCallback() +CHIPBasicAttributeListAttributeCallback::~CHIPBasicAttributeListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1961,8 +1804,8 @@ CHIPDescriptorPartsListAttributeCallback::~CHIPDescriptorPartsListAttributeCallb env->DeleteGlobalRef(javaCallbackRef); } -void CHIPDescriptorPartsListAttributeCallback::CallbackFn(void * context, - const chip::app::DataModel::DecodableList & list) +void CHIPBasicAttributeListAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -1971,8 +1814,8 @@ void CHIPDescriptorPartsListAttributeCallback::CallbackFn(void * context, VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; @@ -1997,31 +1840,34 @@ void CHIPDescriptorPartsListAttributeCallback::CallbackFn(void * context, auto iter = list.begin(); while (iter.Next()) { - auto & entry = iter.GetValue(); - bool entryNull = false; - chip::EndpointId entryValue = entry; + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; jobject entryObject = nullptr; if (!entryNull) { jclass entryTypeCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", entryTypeCls); + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); chip::JniClass jniClass(entryTypeCls); - jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(I)V"); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); } env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); } - VerifyOrReturn(iter.GetStatus() == CHIP_NO_ERROR, - ChipLogError(Zcl, "Error decoding PartsListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); env->ExceptionClear(); env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPFixedLabelLabelListAttributeCallback::CHIPFixedLabelLabelListAttributeCallback(jobject javaCallback, bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) +CHIPBinaryInputBasicAttributeListAttributeCallback::CHIPBinaryInputBasicAttributeListAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2037,7 +1883,7 @@ CHIPFixedLabelLabelListAttributeCallback::CHIPFixedLabelLabelListAttributeCallba } } -CHIPFixedLabelLabelListAttributeCallback::~CHIPFixedLabelLabelListAttributeCallback() +CHIPBinaryInputBasicAttributeListAttributeCallback::~CHIPBinaryInputBasicAttributeListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2048,9 +1894,8 @@ CHIPFixedLabelLabelListAttributeCallback::~CHIPFixedLabelLabelListAttributeCallb env->DeleteGlobalRef(javaCallbackRef); } -void CHIPFixedLabelLabelListAttributeCallback::CallbackFn( - void * context, - const chip::app::DataModel::DecodableList & list) +void CHIPBinaryInputBasicAttributeListAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -2059,8 +1904,8 @@ void CHIPFixedLabelLabelListAttributeCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; @@ -2082,61 +1927,35 @@ void CHIPFixedLabelLabelListAttributeCallback::CallbackFn( err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jclass attributeClass; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipClusters$FixedLabelCluster$LabelListAttribute", attributeClass); - VerifyOrReturn( - err == CHIP_NO_ERROR, - ChipLogError(Zcl, "Could not find class chip/devicecontroller/ChipClusters$FixedLabelCluster$LabelListAttribute")); - chip::JniClass attributeJniClass(attributeClass); - jmethodID attributeCtor = env->GetMethodID(attributeClass, "", "(Ljava/lang/String;Ljava/lang/String;)V"); - VerifyOrReturn(attributeCtor != nullptr, ChipLogError(Zcl, "Could not find LabelListAttribute constructor")); - auto iter = list.begin(); while (iter.Next()) { - auto & entry = iter.GetValue(); - (void) entry; - bool labelNull = false; - bool labelHasValue = true; - - chip::CharSpan labelValue = entry.label; + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; - jstring label = nullptr; - chip::UtfString labelStr(env, labelValue); - if (!labelNull && labelHasValue) + jobject entryObject = nullptr; + if (!entryNull) { - label = jstring(labelStr.jniValue()); - } - - bool valueNull = false; - bool valueHasValue = true; - - chip::CharSpan valueValue = entry.value; - - jstring value = nullptr; - chip::UtfString valueStr(env, valueValue); - if (!valueNull && valueHasValue) - { - value = jstring(valueStr.jniValue()); + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); } - jobject attributeObj = env->NewObject(attributeClass, attributeCtor, label, value); - VerifyOrReturn(attributeObj != nullptr, ChipLogError(Zcl, "Could not create LabelListAttribute object")); - - env->CallBooleanMethod(arrayListObj, arrayListAddMethod, attributeObj); + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); } - VerifyOrReturn(iter.GetStatus() == CHIP_NO_ERROR, - ChipLogError(Zcl, "Error decoding LabelListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); env->ExceptionClear(); env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPGeneralCommissioningBasicCommissioningInfoListAttributeCallback:: - CHIPGeneralCommissioningBasicCommissioningInfoListAttributeCallback(jobject javaCallback, bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), - keepAlive(keepAlive) +CHIPBindingAttributeListAttributeCallback::CHIPBindingAttributeListAttributeCallback(jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2152,8 +1971,7 @@ CHIPGeneralCommissioningBasicCommissioningInfoListAttributeCallback:: } } -CHIPGeneralCommissioningBasicCommissioningInfoListAttributeCallback:: - ~CHIPGeneralCommissioningBasicCommissioningInfoListAttributeCallback() +CHIPBindingAttributeListAttributeCallback::~CHIPBindingAttributeListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2164,10 +1982,8 @@ CHIPGeneralCommissioningBasicCommissioningInfoListAttributeCallback:: env->DeleteGlobalRef(javaCallbackRef); } -void CHIPGeneralCommissioningBasicCommissioningInfoListAttributeCallback::CallbackFn( - void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::GeneralCommissioning::Structs::BasicCommissioningInfoType::DecodableType> & list) +void CHIPBindingAttributeListAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -2176,8 +1992,8 @@ void CHIPGeneralCommissioningBasicCommissioningInfoListAttributeCallback::Callba VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; @@ -2199,55 +2015,36 @@ void CHIPGeneralCommissioningBasicCommissioningInfoListAttributeCallback::Callba err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jclass attributeClass; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipClusters$GeneralCommissioningCluster$BasicCommissioningInfoListAttribute", attributeClass); - VerifyOrReturn( - err == CHIP_NO_ERROR, - ChipLogError(Zcl, - "Could not find class " - "chip/devicecontroller/ChipClusters$GeneralCommissioningCluster$BasicCommissioningInfoListAttribute")); - chip::JniClass attributeJniClass(attributeClass); - jmethodID attributeCtor = env->GetMethodID(attributeClass, "", "(Ljava/lang/Long;)V"); - VerifyOrReturn(attributeCtor != nullptr, ChipLogError(Zcl, "Could not find BasicCommissioningInfoListAttribute constructor")); - auto iter = list.begin(); while (iter.Next()) { - auto & entry = iter.GetValue(); - (void) entry; - bool failSafeExpiryLengthMsNull = false; - bool failSafeExpiryLengthMsHasValue = true; + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; - uint32_t failSafeExpiryLengthMsValue = entry.failSafeExpiryLengthMs; - - jobject failSafeExpiryLengthMs = nullptr; - if (!failSafeExpiryLengthMsNull && failSafeExpiryLengthMsHasValue) + jobject entryObject = nullptr; + if (!entryNull) { - jclass failSafeExpiryLengthMsEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", failSafeExpiryLengthMsEntryCls); - chip::JniClass failSafeExpiryLengthMsJniClass(failSafeExpiryLengthMsEntryCls); - jmethodID failSafeExpiryLengthMsEntryTypeCtor = env->GetMethodID(failSafeExpiryLengthMsEntryCls, "", "(J)V"); - failSafeExpiryLengthMs = - env->NewObject(failSafeExpiryLengthMsEntryCls, failSafeExpiryLengthMsEntryTypeCtor, failSafeExpiryLengthMsValue); + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); } - jobject attributeObj = env->NewObject(attributeClass, attributeCtor, failSafeExpiryLengthMs); - VerifyOrReturn(attributeObj != nullptr, ChipLogError(Zcl, "Could not create BasicCommissioningInfoListAttribute object")); - - env->CallBooleanMethod(arrayListObj, arrayListAddMethod, attributeObj); + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); } - VerifyOrReturn(iter.GetStatus() == CHIP_NO_ERROR, - ChipLogError(Zcl, "Error decoding BasicCommissioningInfoListAttribute value: %" CHIP_ERROR_FORMAT, - iter.GetStatus().Format())); + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); env->ExceptionClear(); env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPGeneralDiagnosticsNetworkInterfacesAttributeCallback::CHIPGeneralDiagnosticsNetworkInterfacesAttributeCallback( - jobject javaCallback, bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), +CHIPBooleanStateAttributeListAttributeCallback::CHIPBooleanStateAttributeListAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -2264,7 +2061,7 @@ CHIPGeneralDiagnosticsNetworkInterfacesAttributeCallback::CHIPGeneralDiagnostics } } -CHIPGeneralDiagnosticsNetworkInterfacesAttributeCallback::~CHIPGeneralDiagnosticsNetworkInterfacesAttributeCallback() +CHIPBooleanStateAttributeListAttributeCallback::~CHIPBooleanStateAttributeListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2275,10 +2072,8 @@ CHIPGeneralDiagnosticsNetworkInterfacesAttributeCallback::~CHIPGeneralDiagnostic env->DeleteGlobalRef(javaCallbackRef); } -void CHIPGeneralDiagnosticsNetworkInterfacesAttributeCallback::CallbackFn( - void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::GeneralDiagnostics::Structs::NetworkInterfaceType::DecodableType> & list) +void CHIPBooleanStateAttributeListAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -2287,8 +2082,8 @@ void CHIPGeneralDiagnosticsNetworkInterfacesAttributeCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; @@ -2310,133 +2105,35 @@ void CHIPGeneralDiagnosticsNetworkInterfacesAttributeCallback::CallbackFn( err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jclass attributeClass; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipClusters$GeneralDiagnosticsCluster$NetworkInterfacesAttribute", attributeClass); - VerifyOrReturn( - err == CHIP_NO_ERROR, - ChipLogError( - Zcl, "Could not find class chip/devicecontroller/ChipClusters$GeneralDiagnosticsCluster$NetworkInterfacesAttribute")); - chip::JniClass attributeJniClass(attributeClass); - jmethodID attributeCtor = - env->GetMethodID(attributeClass, "", - "(Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;[BLjava/lang/Integer;)V"); - VerifyOrReturn(attributeCtor != nullptr, ChipLogError(Zcl, "Could not find NetworkInterfacesAttribute constructor")); - auto iter = list.begin(); while (iter.Next()) { - auto & entry = iter.GetValue(); - (void) entry; - bool nameNull = false; - bool nameHasValue = true; - - chip::CharSpan nameValue = entry.name; - - jstring name = nullptr; - chip::UtfString nameStr(env, nameValue); - if (!nameNull && nameHasValue) - { - name = jstring(nameStr.jniValue()); - } - - bool fabricConnectedNull = false; - bool fabricConnectedHasValue = true; - - bool fabricConnectedValue = entry.fabricConnected; - - jobject fabricConnected = nullptr; - if (!fabricConnectedNull && fabricConnectedHasValue) - { - jclass fabricConnectedEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Boolean", fabricConnectedEntryCls); - chip::JniClass fabricConnectedJniClass(fabricConnectedEntryCls); - jmethodID fabricConnectedEntryTypeCtor = env->GetMethodID(fabricConnectedEntryCls, "", "(Z)V"); - fabricConnected = env->NewObject(fabricConnectedEntryCls, fabricConnectedEntryTypeCtor, fabricConnectedValue); - } - - bool offPremiseServicesReachableIPv4Null = false; - bool offPremiseServicesReachableIPv4HasValue = true; - - bool offPremiseServicesReachableIPv4Value = entry.offPremiseServicesReachableIPv4; - - jobject offPremiseServicesReachableIPv4 = nullptr; - if (!offPremiseServicesReachableIPv4Null && offPremiseServicesReachableIPv4HasValue) - { - jclass offPremiseServicesReachableIPv4EntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Boolean", offPremiseServicesReachableIPv4EntryCls); - chip::JniClass offPremiseServicesReachableIPv4JniClass(offPremiseServicesReachableIPv4EntryCls); - jmethodID offPremiseServicesReachableIPv4EntryTypeCtor = - env->GetMethodID(offPremiseServicesReachableIPv4EntryCls, "", "(Z)V"); - offPremiseServicesReachableIPv4 = - env->NewObject(offPremiseServicesReachableIPv4EntryCls, offPremiseServicesReachableIPv4EntryTypeCtor, - offPremiseServicesReachableIPv4Value); - } - - bool offPremiseServicesReachableIPv6Null = false; - bool offPremiseServicesReachableIPv6HasValue = true; - - bool offPremiseServicesReachableIPv6Value = entry.offPremiseServicesReachableIPv6; - - jobject offPremiseServicesReachableIPv6 = nullptr; - if (!offPremiseServicesReachableIPv6Null && offPremiseServicesReachableIPv6HasValue) - { - jclass offPremiseServicesReachableIPv6EntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Boolean", offPremiseServicesReachableIPv6EntryCls); - chip::JniClass offPremiseServicesReachableIPv6JniClass(offPremiseServicesReachableIPv6EntryCls); - jmethodID offPremiseServicesReachableIPv6EntryTypeCtor = - env->GetMethodID(offPremiseServicesReachableIPv6EntryCls, "", "(Z)V"); - offPremiseServicesReachableIPv6 = - env->NewObject(offPremiseServicesReachableIPv6EntryCls, offPremiseServicesReachableIPv6EntryTypeCtor, - offPremiseServicesReachableIPv6Value); - } - - bool hardwareAddressNull = false; - bool hardwareAddressHasValue = true; - - chip::ByteSpan hardwareAddressValue = entry.hardwareAddress; - - jbyteArray hardwareAddress = nullptr; - if (!hardwareAddressNull && hardwareAddressHasValue) - { - hardwareAddress = env->NewByteArray(hardwareAddressValue.size()); - env->SetByteArrayRegion(hardwareAddress, 0, hardwareAddressValue.size(), - reinterpret_cast(hardwareAddressValue.data())); - } - - bool typeNull = false; - bool typeHasValue = true; - - chip::app::Clusters::GeneralDiagnostics::InterfaceType typeValue = entry.type; + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; - jobject type = nullptr; - if (!typeNull && typeHasValue) + jobject entryObject = nullptr; + if (!entryNull) { - jclass typeEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", typeEntryCls); - chip::JniClass typeJniClass(typeEntryCls); - jmethodID typeEntryTypeCtor = env->GetMethodID(typeEntryCls, "", "(I)V"); - type = env->NewObject(typeEntryCls, typeEntryTypeCtor, typeValue); + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); } - jobject attributeObj = env->NewObject(attributeClass, attributeCtor, name, fabricConnected, offPremiseServicesReachableIPv4, - offPremiseServicesReachableIPv6, hardwareAddress, type); - VerifyOrReturn(attributeObj != nullptr, ChipLogError(Zcl, "Could not create NetworkInterfacesAttribute object")); - - env->CallBooleanMethod(arrayListObj, arrayListAddMethod, attributeObj); + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); } VerifyOrReturn( iter.GetStatus() == CHIP_NO_ERROR, - ChipLogError(Zcl, "Error decoding NetworkInterfacesAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); env->ExceptionClear(); env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPGeneralDiagnosticsActiveHardwareFaultsAttributeCallback::CHIPGeneralDiagnosticsActiveHardwareFaultsAttributeCallback( - jobject javaCallback, bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), - keepAlive(keepAlive) +CHIPBridgedActionsActionListAttributeCallback::CHIPBridgedActionsActionListAttributeCallback(jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2452,7 +2149,7 @@ CHIPGeneralDiagnosticsActiveHardwareFaultsAttributeCallback::CHIPGeneralDiagnost } } -CHIPGeneralDiagnosticsActiveHardwareFaultsAttributeCallback::~CHIPGeneralDiagnosticsActiveHardwareFaultsAttributeCallback() +CHIPBridgedActionsActionListAttributeCallback::~CHIPBridgedActionsActionListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2463,8 +2160,9 @@ CHIPGeneralDiagnosticsActiveHardwareFaultsAttributeCallback::~CHIPGeneralDiagnos env->DeleteGlobalRef(javaCallbackRef); } -void CHIPGeneralDiagnosticsActiveHardwareFaultsAttributeCallback::CallbackFn( - void * context, const chip::app::DataModel::DecodableList & list) +void CHIPBridgedActionsActionListAttributeCallback::CallbackFn( + void * context, + const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -2473,8 +2171,8 @@ void CHIPGeneralDiagnosticsActiveHardwareFaultsAttributeCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; @@ -2496,36 +2194,126 @@ void CHIPGeneralDiagnosticsActiveHardwareFaultsAttributeCallback::CallbackFn( err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + jclass attributeClass; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipClusters$BridgedActionsCluster$ActionListAttribute", attributeClass); + VerifyOrReturn( + err == CHIP_NO_ERROR, + ChipLogError(Zcl, "Could not find class chip/devicecontroller/ChipClusters$BridgedActionsCluster$ActionListAttribute")); + chip::JniClass attributeJniClass(attributeClass); + jmethodID attributeCtor = env->GetMethodID( + attributeClass, "", + "(Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V"); + VerifyOrReturn(attributeCtor != nullptr, ChipLogError(Zcl, "Could not find ActionListAttribute constructor")); + auto iter = list.begin(); while (iter.Next()) { - auto & entry = iter.GetValue(); - bool entryNull = false; - uint8_t entryValue = entry; + auto & entry = iter.GetValue(); + (void) entry; + bool actionIDNull = false; + bool actionIDHasValue = true; - jobject entryObject = nullptr; - if (!entryNull) - { - jclass entryTypeCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", entryTypeCls); - chip::JniClass jniClass(entryTypeCls); - jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(I)V"); - entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); - } + uint16_t actionIDValue = entry.actionID; - env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); - } - VerifyOrReturn( - iter.GetStatus() == CHIP_NO_ERROR, - ChipLogError(Zcl, "Error decoding ActiveHardwareFaultsAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + jobject actionID = nullptr; + if (!actionIDNull && actionIDHasValue) + { + jclass actionIDEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", actionIDEntryCls); + chip::JniClass actionIDJniClass(actionIDEntryCls); + jmethodID actionIDEntryTypeCtor = env->GetMethodID(actionIDEntryCls, "", "(I)V"); + actionID = env->NewObject(actionIDEntryCls, actionIDEntryTypeCtor, actionIDValue); + } + + bool nameNull = false; + bool nameHasValue = true; + + chip::CharSpan nameValue = entry.name; + + jstring name = nullptr; + chip::UtfString nameStr(env, nameValue); + if (!nameNull && nameHasValue) + { + name = jstring(nameStr.jniValue()); + } + + bool typeNull = false; + bool typeHasValue = true; + + chip::app::Clusters::BridgedActions::ActionTypeEnum typeValue = entry.type; + + jobject type = nullptr; + if (!typeNull && typeHasValue) + { + jclass typeEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", typeEntryCls); + chip::JniClass typeJniClass(typeEntryCls); + jmethodID typeEntryTypeCtor = env->GetMethodID(typeEntryCls, "", "(I)V"); + type = env->NewObject(typeEntryCls, typeEntryTypeCtor, typeValue); + } + + bool endpointListIDNull = false; + bool endpointListIDHasValue = true; + + uint16_t endpointListIDValue = entry.endpointListID; + + jobject endpointListID = nullptr; + if (!endpointListIDNull && endpointListIDHasValue) + { + jclass endpointListIDEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", endpointListIDEntryCls); + chip::JniClass endpointListIDJniClass(endpointListIDEntryCls); + jmethodID endpointListIDEntryTypeCtor = env->GetMethodID(endpointListIDEntryCls, "", "(I)V"); + endpointListID = env->NewObject(endpointListIDEntryCls, endpointListIDEntryTypeCtor, endpointListIDValue); + } + + bool supportedCommandsNull = false; + bool supportedCommandsHasValue = true; + + uint16_t supportedCommandsValue = entry.supportedCommands; + + jobject supportedCommands = nullptr; + if (!supportedCommandsNull && supportedCommandsHasValue) + { + jclass supportedCommandsEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", supportedCommandsEntryCls); + chip::JniClass supportedCommandsJniClass(supportedCommandsEntryCls); + jmethodID supportedCommandsEntryTypeCtor = env->GetMethodID(supportedCommandsEntryCls, "", "(I)V"); + supportedCommands = env->NewObject(supportedCommandsEntryCls, supportedCommandsEntryTypeCtor, supportedCommandsValue); + } + + bool statusNull = false; + bool statusHasValue = true; + + chip::app::Clusters::BridgedActions::ActionStatusEnum statusValue = entry.status; + + jobject status = nullptr; + if (!statusNull && statusHasValue) + { + jclass statusEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", statusEntryCls); + chip::JniClass statusJniClass(statusEntryCls); + jmethodID statusEntryTypeCtor = env->GetMethodID(statusEntryCls, "", "(I)V"); + status = env->NewObject(statusEntryCls, statusEntryTypeCtor, statusValue); + } + + jobject attributeObj = + env->NewObject(attributeClass, attributeCtor, actionID, name, type, endpointListID, supportedCommands, status); + VerifyOrReturn(attributeObj != nullptr, ChipLogError(Zcl, "Could not create ActionListAttribute object")); + + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, attributeObj); + } + VerifyOrReturn(iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding ActionListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); env->ExceptionClear(); env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPGeneralDiagnosticsActiveRadioFaultsAttributeCallback::CHIPGeneralDiagnosticsActiveRadioFaultsAttributeCallback( - jobject javaCallback, bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), +CHIPBridgedActionsEndpointListAttributeCallback::CHIPBridgedActionsEndpointListAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -2542,7 +2330,7 @@ CHIPGeneralDiagnosticsActiveRadioFaultsAttributeCallback::CHIPGeneralDiagnostics } } -CHIPGeneralDiagnosticsActiveRadioFaultsAttributeCallback::~CHIPGeneralDiagnosticsActiveRadioFaultsAttributeCallback() +CHIPBridgedActionsEndpointListAttributeCallback::~CHIPBridgedActionsEndpointListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2553,8 +2341,10 @@ CHIPGeneralDiagnosticsActiveRadioFaultsAttributeCallback::~CHIPGeneralDiagnostic env->DeleteGlobalRef(javaCallbackRef); } -void CHIPGeneralDiagnosticsActiveRadioFaultsAttributeCallback::CallbackFn(void * context, - const chip::app::DataModel::DecodableList & list) +void CHIPBridgedActionsEndpointListAttributeCallback::CallbackFn( + void * context, + const chip::app::DataModel::DecodableList & + list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -2563,8 +2353,8 @@ void CHIPGeneralDiagnosticsActiveRadioFaultsAttributeCallback::CallbackFn(void * VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; @@ -2586,36 +2376,79 @@ void CHIPGeneralDiagnosticsActiveRadioFaultsAttributeCallback::CallbackFn(void * err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + jclass attributeClass; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipClusters$BridgedActionsCluster$EndpointListAttribute", attributeClass); + VerifyOrReturn( + err == CHIP_NO_ERROR, + ChipLogError(Zcl, "Could not find class chip/devicecontroller/ChipClusters$BridgedActionsCluster$EndpointListAttribute")); + chip::JniClass attributeJniClass(attributeClass); + jmethodID attributeCtor = + env->GetMethodID(attributeClass, "", "(Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/Integer;)V"); + VerifyOrReturn(attributeCtor != nullptr, ChipLogError(Zcl, "Could not find EndpointListAttribute constructor")); + auto iter = list.begin(); while (iter.Next()) { - auto & entry = iter.GetValue(); - bool entryNull = false; - uint8_t entryValue = entry; + auto & entry = iter.GetValue(); + (void) entry; + bool endpointListIDNull = false; + bool endpointListIDHasValue = true; - jobject entryObject = nullptr; - if (!entryNull) + uint16_t endpointListIDValue = entry.endpointListID; + + jobject endpointListID = nullptr; + if (!endpointListIDNull && endpointListIDHasValue) { - jclass entryTypeCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", entryTypeCls); - chip::JniClass jniClass(entryTypeCls); - jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(I)V"); - entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); + jclass endpointListIDEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", endpointListIDEntryCls); + chip::JniClass endpointListIDJniClass(endpointListIDEntryCls); + jmethodID endpointListIDEntryTypeCtor = env->GetMethodID(endpointListIDEntryCls, "", "(I)V"); + endpointListID = env->NewObject(endpointListIDEntryCls, endpointListIDEntryTypeCtor, endpointListIDValue); } - env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + bool nameNull = false; + bool nameHasValue = true; + + chip::CharSpan nameValue = entry.name; + + jstring name = nullptr; + chip::UtfString nameStr(env, nameValue); + if (!nameNull && nameHasValue) + { + name = jstring(nameStr.jniValue()); + } + + bool typeNull = false; + bool typeHasValue = true; + + chip::app::Clusters::BridgedActions::EndpointListTypeEnum typeValue = entry.type; + + jobject type = nullptr; + if (!typeNull && typeHasValue) + { + jclass typeEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", typeEntryCls); + chip::JniClass typeJniClass(typeEntryCls); + jmethodID typeEntryTypeCtor = env->GetMethodID(typeEntryCls, "", "(I)V"); + type = env->NewObject(typeEntryCls, typeEntryTypeCtor, typeValue); + } + + jobject attributeObj = env->NewObject(attributeClass, attributeCtor, endpointListID, name, type); + VerifyOrReturn(attributeObj != nullptr, ChipLogError(Zcl, "Could not create EndpointListAttribute object")); + + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, attributeObj); } - VerifyOrReturn( - iter.GetStatus() == CHIP_NO_ERROR, - ChipLogError(Zcl, "Error decoding ActiveRadioFaultsAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + VerifyOrReturn(iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding EndpointListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); env->ExceptionClear(); env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPGeneralDiagnosticsActiveNetworkFaultsAttributeCallback::CHIPGeneralDiagnosticsActiveNetworkFaultsAttributeCallback( - jobject javaCallback, bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), +CHIPBridgedActionsAttributeListAttributeCallback::CHIPBridgedActionsAttributeListAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -2632,7 +2465,7 @@ CHIPGeneralDiagnosticsActiveNetworkFaultsAttributeCallback::CHIPGeneralDiagnosti } } -CHIPGeneralDiagnosticsActiveNetworkFaultsAttributeCallback::~CHIPGeneralDiagnosticsActiveNetworkFaultsAttributeCallback() +CHIPBridgedActionsAttributeListAttributeCallback::~CHIPBridgedActionsAttributeListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2643,8 +2476,8 @@ CHIPGeneralDiagnosticsActiveNetworkFaultsAttributeCallback::~CHIPGeneralDiagnost env->DeleteGlobalRef(javaCallbackRef); } -void CHIPGeneralDiagnosticsActiveNetworkFaultsAttributeCallback::CallbackFn( - void * context, const chip::app::DataModel::DecodableList & list) +void CHIPBridgedActionsAttributeListAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -2653,8 +2486,8 @@ void CHIPGeneralDiagnosticsActiveNetworkFaultsAttributeCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; @@ -2679,17 +2512,17 @@ void CHIPGeneralDiagnosticsActiveNetworkFaultsAttributeCallback::CallbackFn( auto iter = list.begin(); while (iter.Next()) { - auto & entry = iter.GetValue(); - bool entryNull = false; - uint8_t entryValue = entry; + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; jobject entryObject = nullptr; if (!entryNull) { jclass entryTypeCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", entryTypeCls); + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); chip::JniClass jniClass(entryTypeCls); - jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(I)V"); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); } @@ -2697,14 +2530,16 @@ void CHIPGeneralDiagnosticsActiveNetworkFaultsAttributeCallback::CallbackFn( } VerifyOrReturn( iter.GetStatus() == CHIP_NO_ERROR, - ChipLogError(Zcl, "Error decoding ActiveNetworkFaultsAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); env->ExceptionClear(); env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPGroupKeyManagementGroupsAttributeCallback::CHIPGroupKeyManagementGroupsAttributeCallback(jobject javaCallback, bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) +CHIPBridgedDeviceBasicAttributeListAttributeCallback::CHIPBridgedDeviceBasicAttributeListAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2720,7 +2555,7 @@ CHIPGroupKeyManagementGroupsAttributeCallback::CHIPGroupKeyManagementGroupsAttri } } -CHIPGroupKeyManagementGroupsAttributeCallback::~CHIPGroupKeyManagementGroupsAttributeCallback() +CHIPBridgedDeviceBasicAttributeListAttributeCallback::~CHIPBridgedDeviceBasicAttributeListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2731,9 +2566,8 @@ CHIPGroupKeyManagementGroupsAttributeCallback::~CHIPGroupKeyManagementGroupsAttr env->DeleteGlobalRef(javaCallbackRef); } -void CHIPGroupKeyManagementGroupsAttributeCallback::CallbackFn( - void * context, - const chip::app::DataModel::DecodableList & list) +void CHIPBridgedDeviceBasicAttributeListAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -2742,8 +2576,8 @@ void CHIPGroupKeyManagementGroupsAttributeCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; @@ -2765,82 +2599,36 @@ void CHIPGroupKeyManagementGroupsAttributeCallback::CallbackFn( err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jclass attributeClass; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipClusters$GroupKeyManagementCluster$GroupsAttribute", attributeClass); - VerifyOrReturn( - err == CHIP_NO_ERROR, - ChipLogError(Zcl, "Could not find class chip/devicecontroller/ChipClusters$GroupKeyManagementCluster$GroupsAttribute")); - chip::JniClass attributeJniClass(attributeClass); - jmethodID attributeCtor = - env->GetMethodID(attributeClass, "", "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V"); - VerifyOrReturn(attributeCtor != nullptr, ChipLogError(Zcl, "Could not find GroupsAttribute constructor")); - auto iter = list.begin(); while (iter.Next()) { - auto & entry = iter.GetValue(); - (void) entry; - bool vendorIdNull = false; - bool vendorIdHasValue = true; - - uint16_t vendorIdValue = entry.vendorId; + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; - jobject vendorId = nullptr; - if (!vendorIdNull && vendorIdHasValue) + jobject entryObject = nullptr; + if (!entryNull) { - jclass vendorIdEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", vendorIdEntryCls); - chip::JniClass vendorIdJniClass(vendorIdEntryCls); - jmethodID vendorIdEntryTypeCtor = env->GetMethodID(vendorIdEntryCls, "", "(I)V"); - vendorId = env->NewObject(vendorIdEntryCls, vendorIdEntryTypeCtor, vendorIdValue); + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); } - bool vendorGroupIdNull = false; - bool vendorGroupIdHasValue = true; + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); - uint16_t vendorGroupIdValue = entry.vendorGroupId; + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); +} - jobject vendorGroupId = nullptr; - if (!vendorGroupIdNull && vendorGroupIdHasValue) - { - jclass vendorGroupIdEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", vendorGroupIdEntryCls); - chip::JniClass vendorGroupIdJniClass(vendorGroupIdEntryCls); - jmethodID vendorGroupIdEntryTypeCtor = env->GetMethodID(vendorGroupIdEntryCls, "", "(I)V"); - vendorGroupId = env->NewObject(vendorGroupIdEntryCls, vendorGroupIdEntryTypeCtor, vendorGroupIdValue); - } - - bool groupKeySetIndexNull = false; - bool groupKeySetIndexHasValue = true; - - uint16_t groupKeySetIndexValue = entry.groupKeySetIndex; - - jobject groupKeySetIndex = nullptr; - if (!groupKeySetIndexNull && groupKeySetIndexHasValue) - { - jclass groupKeySetIndexEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", groupKeySetIndexEntryCls); - chip::JniClass groupKeySetIndexJniClass(groupKeySetIndexEntryCls); - jmethodID groupKeySetIndexEntryTypeCtor = env->GetMethodID(groupKeySetIndexEntryCls, "", "(I)V"); - groupKeySetIndex = env->NewObject(groupKeySetIndexEntryCls, groupKeySetIndexEntryTypeCtor, groupKeySetIndexValue); - } - - jobject attributeObj = env->NewObject(attributeClass, attributeCtor, vendorId, vendorGroupId, groupKeySetIndex); - VerifyOrReturn(attributeObj != nullptr, ChipLogError(Zcl, "Could not create GroupsAttribute object")); - - env->CallBooleanMethod(arrayListObj, arrayListAddMethod, attributeObj); - } - VerifyOrReturn(iter.GetStatus() == CHIP_NO_ERROR, - ChipLogError(Zcl, "Error decoding GroupsAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); - - env->ExceptionClear(); - env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); -} - -CHIPGroupKeyManagementGroupKeysAttributeCallback::CHIPGroupKeyManagementGroupKeysAttributeCallback(jobject javaCallback, - bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), +CHIPColorControlAttributeListAttributeCallback::CHIPColorControlAttributeListAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -2857,7 +2645,7 @@ CHIPGroupKeyManagementGroupKeysAttributeCallback::CHIPGroupKeyManagementGroupKey } } -CHIPGroupKeyManagementGroupKeysAttributeCallback::~CHIPGroupKeyManagementGroupKeysAttributeCallback() +CHIPColorControlAttributeListAttributeCallback::~CHIPColorControlAttributeListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2868,9 +2656,8 @@ CHIPGroupKeyManagementGroupKeysAttributeCallback::~CHIPGroupKeyManagementGroupKe env->DeleteGlobalRef(javaCallbackRef); } -void CHIPGroupKeyManagementGroupKeysAttributeCallback::CallbackFn( - void * context, - const chip::app::DataModel::DecodableList & list) +void CHIPColorControlAttributeListAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -2879,8 +2666,8 @@ void CHIPGroupKeyManagementGroupKeysAttributeCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; @@ -2902,113 +2689,36 @@ void CHIPGroupKeyManagementGroupKeysAttributeCallback::CallbackFn( err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jclass attributeClass; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipClusters$GroupKeyManagementCluster$GroupKeysAttribute", attributeClass); - VerifyOrReturn( - err == CHIP_NO_ERROR, - ChipLogError(Zcl, "Could not find class chip/devicecontroller/ChipClusters$GroupKeyManagementCluster$GroupKeysAttribute")); - chip::JniClass attributeJniClass(attributeClass); - jmethodID attributeCtor = env->GetMethodID(attributeClass, "", - "(Ljava/lang/Integer;Ljava/lang/Integer;[BLjava/lang/Long;Ljava/lang/Integer;)V"); - VerifyOrReturn(attributeCtor != nullptr, ChipLogError(Zcl, "Could not find GroupKeysAttribute constructor")); - auto iter = list.begin(); while (iter.Next()) { - auto & entry = iter.GetValue(); - (void) entry; - bool vendorIdNull = false; - bool vendorIdHasValue = true; - - uint16_t vendorIdValue = entry.vendorId; - - jobject vendorId = nullptr; - if (!vendorIdNull && vendorIdHasValue) - { - jclass vendorIdEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", vendorIdEntryCls); - chip::JniClass vendorIdJniClass(vendorIdEntryCls); - jmethodID vendorIdEntryTypeCtor = env->GetMethodID(vendorIdEntryCls, "", "(I)V"); - vendorId = env->NewObject(vendorIdEntryCls, vendorIdEntryTypeCtor, vendorIdValue); - } - - bool groupKeyIndexNull = false; - bool groupKeyIndexHasValue = true; - - uint16_t groupKeyIndexValue = entry.groupKeyIndex; - - jobject groupKeyIndex = nullptr; - if (!groupKeyIndexNull && groupKeyIndexHasValue) - { - jclass groupKeyIndexEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", groupKeyIndexEntryCls); - chip::JniClass groupKeyIndexJniClass(groupKeyIndexEntryCls); - jmethodID groupKeyIndexEntryTypeCtor = env->GetMethodID(groupKeyIndexEntryCls, "", "(I)V"); - groupKeyIndex = env->NewObject(groupKeyIndexEntryCls, groupKeyIndexEntryTypeCtor, groupKeyIndexValue); - } - - bool groupKeyRootNull = false; - bool groupKeyRootHasValue = true; - - chip::ByteSpan groupKeyRootValue = entry.groupKeyRoot; - - jbyteArray groupKeyRoot = nullptr; - if (!groupKeyRootNull && groupKeyRootHasValue) - { - groupKeyRoot = env->NewByteArray(groupKeyRootValue.size()); - env->SetByteArrayRegion(groupKeyRoot, 0, groupKeyRootValue.size(), - reinterpret_cast(groupKeyRootValue.data())); - } - - bool groupKeyEpochStartTimeNull = false; - bool groupKeyEpochStartTimeHasValue = true; - - uint64_t groupKeyEpochStartTimeValue = entry.groupKeyEpochStartTime; - - jobject groupKeyEpochStartTime = nullptr; - if (!groupKeyEpochStartTimeNull && groupKeyEpochStartTimeHasValue) - { - jclass groupKeyEpochStartTimeEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", groupKeyEpochStartTimeEntryCls); - chip::JniClass groupKeyEpochStartTimeJniClass(groupKeyEpochStartTimeEntryCls); - jmethodID groupKeyEpochStartTimeEntryTypeCtor = env->GetMethodID(groupKeyEpochStartTimeEntryCls, "", "(J)V"); - groupKeyEpochStartTime = - env->NewObject(groupKeyEpochStartTimeEntryCls, groupKeyEpochStartTimeEntryTypeCtor, groupKeyEpochStartTimeValue); - } - - bool groupKeySecurityPolicyNull = false; - bool groupKeySecurityPolicyHasValue = true; - - chip::app::Clusters::GroupKeyManagement::GroupKeySecurityPolicy groupKeySecurityPolicyValue = entry.groupKeySecurityPolicy; + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; - jobject groupKeySecurityPolicy = nullptr; - if (!groupKeySecurityPolicyNull && groupKeySecurityPolicyHasValue) + jobject entryObject = nullptr; + if (!entryNull) { - jclass groupKeySecurityPolicyEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", groupKeySecurityPolicyEntryCls); - chip::JniClass groupKeySecurityPolicyJniClass(groupKeySecurityPolicyEntryCls); - jmethodID groupKeySecurityPolicyEntryTypeCtor = env->GetMethodID(groupKeySecurityPolicyEntryCls, "", "(I)V"); - groupKeySecurityPolicy = - env->NewObject(groupKeySecurityPolicyEntryCls, groupKeySecurityPolicyEntryTypeCtor, groupKeySecurityPolicyValue); + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); } - jobject attributeObj = env->NewObject(attributeClass, attributeCtor, vendorId, groupKeyIndex, groupKeyRoot, - groupKeyEpochStartTime, groupKeySecurityPolicy); - VerifyOrReturn(attributeObj != nullptr, ChipLogError(Zcl, "Could not create GroupKeysAttribute object")); - - env->CallBooleanMethod(arrayListObj, arrayListAddMethod, attributeObj); + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); } - VerifyOrReturn(iter.GetStatus() == CHIP_NO_ERROR, - ChipLogError(Zcl, "Error decoding GroupKeysAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); env->ExceptionClear(); env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPIlluminanceMeasurementMeasuredValueAttributeCallback::CHIPIlluminanceMeasurementMeasuredValueAttributeCallback( - jobject javaCallback, bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), +CHIPContentLauncherAcceptsHeaderListAttributeCallback::CHIPContentLauncherAcceptsHeaderListAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -3025,7 +2735,7 @@ CHIPIlluminanceMeasurementMeasuredValueAttributeCallback::CHIPIlluminanceMeasure } } -CHIPIlluminanceMeasurementMeasuredValueAttributeCallback::~CHIPIlluminanceMeasurementMeasuredValueAttributeCallback() +CHIPContentLauncherAcceptsHeaderListAttributeCallback::~CHIPContentLauncherAcceptsHeaderListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3036,8 +2746,8 @@ CHIPIlluminanceMeasurementMeasuredValueAttributeCallback::~CHIPIlluminanceMeasur env->DeleteGlobalRef(javaCallbackRef); } -void CHIPIlluminanceMeasurementMeasuredValueAttributeCallback::CallbackFn(void * context, - const chip::app::DataModel::Nullable & value) +void CHIPContentLauncherAcceptsHeaderListAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -3045,31 +2755,57 @@ void CHIPIlluminanceMeasurementMeasuredValueAttributeCallback::CallbackFn(void * jobject javaCallbackRef; VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; VerifyOrReturn(javaCallbackRef != nullptr, ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + jmethodID javaMethod; - err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jobject javaValue; + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::ByteSpan entryValue = entry; - std::string javaValueClassName = "java/lang/Integer"; - std::string javaValueCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), - value.Value(), javaValue); + jbyteArray entryObject = nullptr; + if (!entryNull) + { + entryObject = env->NewByteArray(entryValue.size()); + env->SetByteArrayRegion(entryObject, 0, entryValue.size(), reinterpret_cast(entryValue.data())); + } - env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AcceptsHeaderListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPIlluminanceMeasurementMinMeasuredValueAttributeCallback::CHIPIlluminanceMeasurementMinMeasuredValueAttributeCallback( +CHIPContentLauncherSupportedStreamingTypesAttributeCallback::CHIPContentLauncherSupportedStreamingTypesAttributeCallback( jobject javaCallback, bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -3086,7 +2822,7 @@ CHIPIlluminanceMeasurementMinMeasuredValueAttributeCallback::CHIPIlluminanceMeas } } -CHIPIlluminanceMeasurementMinMeasuredValueAttributeCallback::~CHIPIlluminanceMeasurementMinMeasuredValueAttributeCallback() +CHIPContentLauncherSupportedStreamingTypesAttributeCallback::~CHIPContentLauncherSupportedStreamingTypesAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3097,8 +2833,9 @@ CHIPIlluminanceMeasurementMinMeasuredValueAttributeCallback::~CHIPIlluminanceMea env->DeleteGlobalRef(javaCallbackRef); } -void CHIPIlluminanceMeasurementMinMeasuredValueAttributeCallback::CallbackFn(void * context, - const chip::app::DataModel::Nullable & value) +void CHIPContentLauncherSupportedStreamingTypesAttributeCallback::CallbackFn( + void * context, + const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -3106,31 +2843,60 @@ void CHIPIlluminanceMeasurementMinMeasuredValueAttributeCallback::CallbackFn(voi jobject javaCallbackRef; VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; VerifyOrReturn(javaCallbackRef != nullptr, ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + jmethodID javaMethod; - err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jobject javaValue; + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::app::Clusters::ContentLauncher::ContentLaunchStreamingType entryValue = entry; - std::string javaValueClassName = "java/lang/Integer"; - std::string javaValueCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), - value.Value(), javaValue); + jobject entryObject = nullptr; + if (!entryNull) + { + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(I)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); + } - env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding SupportedStreamingTypesAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPIlluminanceMeasurementMaxMeasuredValueAttributeCallback::CHIPIlluminanceMeasurementMaxMeasuredValueAttributeCallback( - jobject javaCallback, bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), +CHIPContentLauncherAttributeListAttributeCallback::CHIPContentLauncherAttributeListAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -3147,7 +2913,7 @@ CHIPIlluminanceMeasurementMaxMeasuredValueAttributeCallback::CHIPIlluminanceMeas } } -CHIPIlluminanceMeasurementMaxMeasuredValueAttributeCallback::~CHIPIlluminanceMeasurementMaxMeasuredValueAttributeCallback() +CHIPContentLauncherAttributeListAttributeCallback::~CHIPContentLauncherAttributeListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3158,8 +2924,8 @@ CHIPIlluminanceMeasurementMaxMeasuredValueAttributeCallback::~CHIPIlluminanceMea env->DeleteGlobalRef(javaCallbackRef); } -void CHIPIlluminanceMeasurementMaxMeasuredValueAttributeCallback::CallbackFn(void * context, - const chip::app::DataModel::Nullable & value) +void CHIPContentLauncherAttributeListAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -3167,32 +2933,59 @@ void CHIPIlluminanceMeasurementMaxMeasuredValueAttributeCallback::CallbackFn(voi jobject javaCallbackRef; VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; VerifyOrReturn(javaCallbackRef != nullptr, ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + jmethodID javaMethod; - err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jobject javaValue; + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; - std::string javaValueClassName = "java/lang/Integer"; - std::string javaValueCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), - value.Value(), javaValue); + jobject entryObject = nullptr; + if (!entryNull) + { + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); + } - env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPLevelControlOnTransitionTimeAttributeCallback::CHIPLevelControlOnTransitionTimeAttributeCallback(jobject javaCallback, - bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), - keepAlive(keepAlive) +CHIPDescriptorDeviceListAttributeCallback::CHIPDescriptorDeviceListAttributeCallback(jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3208,7 +3001,7 @@ CHIPLevelControlOnTransitionTimeAttributeCallback::CHIPLevelControlOnTransitionT } } -CHIPLevelControlOnTransitionTimeAttributeCallback::~CHIPLevelControlOnTransitionTimeAttributeCallback() +CHIPDescriptorDeviceListAttributeCallback::~CHIPDescriptorDeviceListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3219,8 +3012,9 @@ CHIPLevelControlOnTransitionTimeAttributeCallback::~CHIPLevelControlOnTransition env->DeleteGlobalRef(javaCallbackRef); } -void CHIPLevelControlOnTransitionTimeAttributeCallback::CallbackFn(void * context, - const chip::app::DataModel::Nullable & value) +void CHIPDescriptorDeviceListAttributeCallback::CallbackFn( + void * context, + const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -3228,32 +3022,89 @@ void CHIPLevelControlOnTransitionTimeAttributeCallback::CallbackFn(void * contex jobject javaCallbackRef; VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; VerifyOrReturn(javaCallbackRef != nullptr, ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + jmethodID javaMethod; - err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jobject javaValue; + jclass attributeClass; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipClusters$DescriptorCluster$DeviceListAttribute", attributeClass); + VerifyOrReturn( + err == CHIP_NO_ERROR, + ChipLogError(Zcl, "Could not find class chip/devicecontroller/ChipClusters$DescriptorCluster$DeviceListAttribute")); + chip::JniClass attributeJniClass(attributeClass); + jmethodID attributeCtor = env->GetMethodID(attributeClass, "", "(Ljava/lang/Long;Ljava/lang/Integer;)V"); + VerifyOrReturn(attributeCtor != nullptr, ChipLogError(Zcl, "Could not find DeviceListAttribute constructor")); - std::string javaValueClassName = "java/lang/Integer"; - std::string javaValueCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), - value.Value(), javaValue); + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + (void) entry; + bool typeNull = false; + bool typeHasValue = true; - env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); + chip::DeviceTypeId typeValue = entry.type; + + jobject type = nullptr; + if (!typeNull && typeHasValue) + { + jclass typeEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", typeEntryCls); + chip::JniClass typeJniClass(typeEntryCls); + jmethodID typeEntryTypeCtor = env->GetMethodID(typeEntryCls, "", "(J)V"); + type = env->NewObject(typeEntryCls, typeEntryTypeCtor, typeValue); + } + + bool revisionNull = false; + bool revisionHasValue = true; + + uint16_t revisionValue = entry.revision; + + jobject revision = nullptr; + if (!revisionNull && revisionHasValue) + { + jclass revisionEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", revisionEntryCls); + chip::JniClass revisionJniClass(revisionEntryCls); + jmethodID revisionEntryTypeCtor = env->GetMethodID(revisionEntryCls, "", "(I)V"); + revision = env->NewObject(revisionEntryCls, revisionEntryTypeCtor, revisionValue); + } + + jobject attributeObj = env->NewObject(attributeClass, attributeCtor, type, revision); + VerifyOrReturn(attributeObj != nullptr, ChipLogError(Zcl, "Could not create DeviceListAttribute object")); + + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, attributeObj); + } + VerifyOrReturn(iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding DeviceListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPLevelControlOffTransitionTimeAttributeCallback::CHIPLevelControlOffTransitionTimeAttributeCallback(jobject javaCallback, - bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), - keepAlive(keepAlive) +CHIPDescriptorServerListAttributeCallback::CHIPDescriptorServerListAttributeCallback(jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3269,7 +3120,7 @@ CHIPLevelControlOffTransitionTimeAttributeCallback::CHIPLevelControlOffTransitio } } -CHIPLevelControlOffTransitionTimeAttributeCallback::~CHIPLevelControlOffTransitionTimeAttributeCallback() +CHIPDescriptorServerListAttributeCallback::~CHIPDescriptorServerListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3280,8 +3131,8 @@ CHIPLevelControlOffTransitionTimeAttributeCallback::~CHIPLevelControlOffTransiti env->DeleteGlobalRef(javaCallbackRef); } -void CHIPLevelControlOffTransitionTimeAttributeCallback::CallbackFn(void * context, - const chip::app::DataModel::Nullable & value) +void CHIPDescriptorServerListAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -3289,30 +3140,58 @@ void CHIPLevelControlOffTransitionTimeAttributeCallback::CallbackFn(void * conte jobject javaCallbackRef; VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; VerifyOrReturn(javaCallbackRef != nullptr, ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + jmethodID javaMethod; - err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jobject javaValue; + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::ClusterId entryValue = entry; - std::string javaValueClassName = "java/lang/Integer"; - std::string javaValueCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), - value.Value(), javaValue); + jobject entryObject = nullptr; + if (!entryNull) + { + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); + } - env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn(iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding ServerListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPMediaInputMediaInputListAttributeCallback::CHIPMediaInputMediaInputListAttributeCallback(jobject javaCallback, bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) +CHIPDescriptorClientListAttributeCallback::CHIPDescriptorClientListAttributeCallback(jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3328,7 +3207,7 @@ CHIPMediaInputMediaInputListAttributeCallback::CHIPMediaInputMediaInputListAttri } } -CHIPMediaInputMediaInputListAttributeCallback::~CHIPMediaInputMediaInputListAttributeCallback() +CHIPDescriptorClientListAttributeCallback::~CHIPDescriptorClientListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3339,9 +3218,8 @@ CHIPMediaInputMediaInputListAttributeCallback::~CHIPMediaInputMediaInputListAttr env->DeleteGlobalRef(javaCallbackRef); } -void CHIPMediaInputMediaInputListAttributeCallback::CallbackFn( - void * context, - const chip::app::DataModel::DecodableList & list) +void CHIPDescriptorClientListAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -3350,8 +3228,8 @@ void CHIPMediaInputMediaInputListAttributeCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; @@ -3373,91 +3251,121 @@ void CHIPMediaInputMediaInputListAttributeCallback::CallbackFn( err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jclass attributeClass; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipClusters$MediaInputCluster$MediaInputListAttribute", attributeClass); - VerifyOrReturn( - err == CHIP_NO_ERROR, - ChipLogError(Zcl, "Could not find class chip/devicecontroller/ChipClusters$MediaInputCluster$MediaInputListAttribute")); - chip::JniClass attributeJniClass(attributeClass); - jmethodID attributeCtor = - env->GetMethodID(attributeClass, "", "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;)V"); - VerifyOrReturn(attributeCtor != nullptr, ChipLogError(Zcl, "Could not find MediaInputListAttribute constructor")); - auto iter = list.begin(); while (iter.Next()) { - auto & entry = iter.GetValue(); - (void) entry; - bool indexNull = false; - bool indexHasValue = true; - - uint8_t indexValue = entry.index; + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::ClusterId entryValue = entry; - jobject index = nullptr; - if (!indexNull && indexHasValue) + jobject entryObject = nullptr; + if (!entryNull) { - jclass indexEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", indexEntryCls); - chip::JniClass indexJniClass(indexEntryCls); - jmethodID indexEntryTypeCtor = env->GetMethodID(indexEntryCls, "", "(I)V"); - index = env->NewObject(indexEntryCls, indexEntryTypeCtor, indexValue); + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); } - bool inputTypeNull = false; - bool inputTypeHasValue = true; + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn(iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding ClientListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); - chip::app::Clusters::MediaInput::MediaInputType inputTypeValue = entry.inputType; + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); +} - jobject inputType = nullptr; - if (!inputTypeNull && inputTypeHasValue) - { - jclass inputTypeEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", inputTypeEntryCls); - chip::JniClass inputTypeJniClass(inputTypeEntryCls); - jmethodID inputTypeEntryTypeCtor = env->GetMethodID(inputTypeEntryCls, "", "(I)V"); - inputType = env->NewObject(inputTypeEntryCls, inputTypeEntryTypeCtor, inputTypeValue); - } +CHIPDescriptorPartsListAttributeCallback::CHIPDescriptorPartsListAttributeCallback(jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } - bool nameNull = false; - bool nameHasValue = true; + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} - chip::CharSpan nameValue = entry.name; +CHIPDescriptorPartsListAttributeCallback::~CHIPDescriptorPartsListAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} - jstring name = nullptr; - chip::UtfString nameStr(env, nameValue); - if (!nameNull && nameHasValue) - { - name = jstring(nameStr.jniValue()); - } +void CHIPDescriptorPartsListAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::DecodableList & list) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; - bool descriptionNull = false; - bool descriptionHasValue = true; + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - chip::CharSpan descriptionValue = entry.description; + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); - jstring description = nullptr; - chip::UtfString descriptionStr(env, descriptionValue); - if (!descriptionNull && descriptionHasValue) + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::EndpointId entryValue = entry; + + jobject entryObject = nullptr; + if (!entryNull) { - description = jstring(descriptionStr.jniValue()); + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(I)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); } - jobject attributeObj = env->NewObject(attributeClass, attributeCtor, index, inputType, name, description); - VerifyOrReturn(attributeObj != nullptr, ChipLogError(Zcl, "Could not create MediaInputListAttribute object")); - - env->CallBooleanMethod(arrayListObj, arrayListAddMethod, attributeObj); + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); } - VerifyOrReturn( - iter.GetStatus() == CHIP_NO_ERROR, - ChipLogError(Zcl, "Error decoding MediaInputListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + VerifyOrReturn(iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding PartsListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); env->ExceptionClear(); env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPModeSelectSupportedModesAttributeCallback::CHIPModeSelectSupportedModesAttributeCallback(jobject javaCallback, bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) +CHIPDescriptorAttributeListAttributeCallback::CHIPDescriptorAttributeListAttributeCallback(jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3473,7 +3381,7 @@ CHIPModeSelectSupportedModesAttributeCallback::CHIPModeSelectSupportedModesAttri } } -CHIPModeSelectSupportedModesAttributeCallback::~CHIPModeSelectSupportedModesAttributeCallback() +CHIPDescriptorAttributeListAttributeCallback::~CHIPDescriptorAttributeListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3484,9 +3392,8 @@ CHIPModeSelectSupportedModesAttributeCallback::~CHIPModeSelectSupportedModesAttr env->DeleteGlobalRef(javaCallbackRef); } -void CHIPModeSelectSupportedModesAttributeCallback::CallbackFn( - void * context, - const chip::app::DataModel::DecodableList & list) +void CHIPDescriptorAttributeListAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -3495,8 +3402,8 @@ void CHIPModeSelectSupportedModesAttributeCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; @@ -3518,80 +3425,36 @@ void CHIPModeSelectSupportedModesAttributeCallback::CallbackFn( err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jclass attributeClass; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipClusters$ModeSelectCluster$SupportedModesAttribute", attributeClass); - VerifyOrReturn( - err == CHIP_NO_ERROR, - ChipLogError(Zcl, "Could not find class chip/devicecontroller/ChipClusters$ModeSelectCluster$SupportedModesAttribute")); - chip::JniClass attributeJniClass(attributeClass); - jmethodID attributeCtor = - env->GetMethodID(attributeClass, "", "(Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Long;)V"); - VerifyOrReturn(attributeCtor != nullptr, ChipLogError(Zcl, "Could not find SupportedModesAttribute constructor")); - auto iter = list.begin(); while (iter.Next()) { - auto & entry = iter.GetValue(); - (void) entry; - bool labelNull = false; - bool labelHasValue = true; - - chip::CharSpan labelValue = entry.label; - - jstring label = nullptr; - chip::UtfString labelStr(env, labelValue); - if (!labelNull && labelHasValue) - { - label = jstring(labelStr.jniValue()); - } - - bool modeNull = false; - bool modeHasValue = true; - - uint8_t modeValue = entry.mode; - - jobject mode = nullptr; - if (!modeNull && modeHasValue) - { - jclass modeEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", modeEntryCls); - chip::JniClass modeJniClass(modeEntryCls); - jmethodID modeEntryTypeCtor = env->GetMethodID(modeEntryCls, "", "(I)V"); - mode = env->NewObject(modeEntryCls, modeEntryTypeCtor, modeValue); - } - - bool semanticTagNull = false; - bool semanticTagHasValue = true; - - uint32_t semanticTagValue = entry.semanticTag; + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; - jobject semanticTag = nullptr; - if (!semanticTagNull && semanticTagHasValue) + jobject entryObject = nullptr; + if (!entryNull) { - jclass semanticTagEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", semanticTagEntryCls); - chip::JniClass semanticTagJniClass(semanticTagEntryCls); - jmethodID semanticTagEntryTypeCtor = env->GetMethodID(semanticTagEntryCls, "", "(J)V"); - semanticTag = env->NewObject(semanticTagEntryCls, semanticTagEntryTypeCtor, semanticTagValue); + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); } - jobject attributeObj = env->NewObject(attributeClass, attributeCtor, label, mode, semanticTag); - VerifyOrReturn(attributeObj != nullptr, ChipLogError(Zcl, "Could not create SupportedModesAttribute object")); - - env->CallBooleanMethod(arrayListObj, arrayListAddMethod, attributeObj); + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); } VerifyOrReturn( iter.GetStatus() == CHIP_NO_ERROR, - ChipLogError(Zcl, "Error decoding SupportedModesAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); env->ExceptionClear(); env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPOperationalCredentialsFabricsListAttributeCallback::CHIPOperationalCredentialsFabricsListAttributeCallback(jobject javaCallback, - bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), +CHIPDiagnosticLogsAttributeListAttributeCallback::CHIPDiagnosticLogsAttributeListAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -3608,7 +3471,7 @@ CHIPOperationalCredentialsFabricsListAttributeCallback::CHIPOperationalCredentia } } -CHIPOperationalCredentialsFabricsListAttributeCallback::~CHIPOperationalCredentialsFabricsListAttributeCallback() +CHIPDiagnosticLogsAttributeListAttributeCallback::~CHIPDiagnosticLogsAttributeListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3619,10 +3482,8 @@ CHIPOperationalCredentialsFabricsListAttributeCallback::~CHIPOperationalCredenti env->DeleteGlobalRef(javaCallbackRef); } -void CHIPOperationalCredentialsFabricsListAttributeCallback::CallbackFn( - void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::OperationalCredentials::Structs::FabricDescriptor::DecodableType> & list) +void CHIPDiagnosticLogsAttributeListAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -3631,8 +3492,8 @@ void CHIPOperationalCredentialsFabricsListAttributeCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; @@ -3654,124 +3515,124 @@ void CHIPOperationalCredentialsFabricsListAttributeCallback::CallbackFn( err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jclass attributeClass; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipClusters$OperationalCredentialsCluster$FabricsListAttribute", attributeClass); - VerifyOrReturn( - err == CHIP_NO_ERROR, - ChipLogError(Zcl, - "Could not find class chip/devicecontroller/ChipClusters$OperationalCredentialsCluster$FabricsListAttribute")); - chip::JniClass attributeJniClass(attributeClass); - jmethodID attributeCtor = env->GetMethodID( - attributeClass, "", "(Ljava/lang/Integer;[BLjava/lang/Integer;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;)V"); - VerifyOrReturn(attributeCtor != nullptr, ChipLogError(Zcl, "Could not find FabricsListAttribute constructor")); - auto iter = list.begin(); while (iter.Next()) { - auto & entry = iter.GetValue(); - (void) entry; - bool fabricIndexNull = false; - bool fabricIndexHasValue = true; + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; - uint8_t fabricIndexValue = entry.fabricIndex; - - jobject fabricIndex = nullptr; - if (!fabricIndexNull && fabricIndexHasValue) + jobject entryObject = nullptr; + if (!entryNull) { - jclass fabricIndexEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", fabricIndexEntryCls); - chip::JniClass fabricIndexJniClass(fabricIndexEntryCls); - jmethodID fabricIndexEntryTypeCtor = env->GetMethodID(fabricIndexEntryCls, "", "(I)V"); - fabricIndex = env->NewObject(fabricIndexEntryCls, fabricIndexEntryTypeCtor, fabricIndexValue); + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); } - bool rootPublicKeyNull = false; - bool rootPublicKeyHasValue = true; - - chip::ByteSpan rootPublicKeyValue = entry.rootPublicKey; + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); - jbyteArray rootPublicKey = nullptr; - if (!rootPublicKeyNull && rootPublicKeyHasValue) - { - rootPublicKey = env->NewByteArray(rootPublicKeyValue.size()); - env->SetByteArrayRegion(rootPublicKey, 0, rootPublicKeyValue.size(), - reinterpret_cast(rootPublicKeyValue.data())); - } + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); +} - bool vendorIdNull = false; - bool vendorIdHasValue = true; +CHIPDoorLockAttributeListAttributeCallback::CHIPDoorLockAttributeListAttributeCallback(jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } - uint16_t vendorIdValue = entry.vendorId; + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} - jobject vendorId = nullptr; - if (!vendorIdNull && vendorIdHasValue) - { - jclass vendorIdEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", vendorIdEntryCls); - chip::JniClass vendorIdJniClass(vendorIdEntryCls); - jmethodID vendorIdEntryTypeCtor = env->GetMethodID(vendorIdEntryCls, "", "(I)V"); - vendorId = env->NewObject(vendorIdEntryCls, vendorIdEntryTypeCtor, vendorIdValue); - } - - bool fabricIdNull = false; - bool fabricIdHasValue = true; +CHIPDoorLockAttributeListAttributeCallback::~CHIPDoorLockAttributeListAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} - chip::FabricId fabricIdValue = entry.fabricId; +void CHIPDoorLockAttributeListAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::DecodableList & list) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; - jobject fabricId = nullptr; - if (!fabricIdNull && fabricIdHasValue) - { - jclass fabricIdEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", fabricIdEntryCls); - chip::JniClass fabricIdJniClass(fabricIdEntryCls); - jmethodID fabricIdEntryTypeCtor = env->GetMethodID(fabricIdEntryCls, "", "(J)V"); - fabricId = env->NewObject(fabricIdEntryCls, fabricIdEntryTypeCtor, fabricIdValue); - } + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - bool nodeIdNull = false; - bool nodeIdHasValue = true; + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); - chip::NodeId nodeIdValue = entry.nodeId; + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); - jobject nodeId = nullptr; - if (!nodeIdNull && nodeIdHasValue) - { - jclass nodeIdEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", nodeIdEntryCls); - chip::JniClass nodeIdJniClass(nodeIdEntryCls); - jmethodID nodeIdEntryTypeCtor = env->GetMethodID(nodeIdEntryCls, "", "(J)V"); - nodeId = env->NewObject(nodeIdEntryCls, nodeIdEntryTypeCtor, nodeIdValue); - } + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); - bool labelNull = false; - bool labelHasValue = true; + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - chip::CharSpan labelValue = entry.label; + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; - jstring label = nullptr; - chip::UtfString labelStr(env, labelValue); - if (!labelNull && labelHasValue) + jobject entryObject = nullptr; + if (!entryNull) { - label = jstring(labelStr.jniValue()); + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); } - jobject attributeObj = - env->NewObject(attributeClass, attributeCtor, fabricIndex, rootPublicKey, vendorId, fabricId, nodeId, label); - VerifyOrReturn(attributeObj != nullptr, ChipLogError(Zcl, "Could not create FabricsListAttribute object")); - - env->CallBooleanMethod(arrayListObj, arrayListAddMethod, attributeObj); + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); } - VerifyOrReturn(iter.GetStatus() == CHIP_NO_ERROR, - ChipLogError(Zcl, "Error decoding FabricsListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); env->ExceptionClear(); env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPOperationalCredentialsTrustedRootCertificatesAttributeCallback:: - CHIPOperationalCredentialsTrustedRootCertificatesAttributeCallback(jobject javaCallback, bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), +CHIPElectricalMeasurementAttributeListAttributeCallback::CHIPElectricalMeasurementAttributeListAttributeCallback( + jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -3788,8 +3649,7 @@ CHIPOperationalCredentialsTrustedRootCertificatesAttributeCallback:: } } -CHIPOperationalCredentialsTrustedRootCertificatesAttributeCallback:: - ~CHIPOperationalCredentialsTrustedRootCertificatesAttributeCallback() +CHIPElectricalMeasurementAttributeListAttributeCallback::~CHIPElectricalMeasurementAttributeListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3800,8 +3660,8 @@ CHIPOperationalCredentialsTrustedRootCertificatesAttributeCallback:: env->DeleteGlobalRef(javaCallbackRef); } -void CHIPOperationalCredentialsTrustedRootCertificatesAttributeCallback::CallbackFn( - void * context, const chip::app::DataModel::DecodableList & list) +void CHIPElectricalMeasurementAttributeListAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -3810,8 +3670,8 @@ void CHIPOperationalCredentialsTrustedRootCertificatesAttributeCallback::Callbac VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; @@ -3836,30 +3696,33 @@ void CHIPOperationalCredentialsTrustedRootCertificatesAttributeCallback::Callbac auto iter = list.begin(); while (iter.Next()) { - auto & entry = iter.GetValue(); - bool entryNull = false; - chip::ByteSpan entryValue = entry; + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; - jbyteArray entryObject = nullptr; + jobject entryObject = nullptr; if (!entryNull) { - entryObject = env->NewByteArray(entryValue.size()); - env->SetByteArrayRegion(entryObject, 0, entryValue.size(), reinterpret_cast(entryValue.data())); + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); } env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); } VerifyOrReturn( iter.GetStatus() == CHIP_NO_ERROR, - ChipLogError(Zcl, "Error decoding TrustedRootCertificatesAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); env->ExceptionClear(); env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPOperationalCredentialsCurrentFabricIndexAttributeCallback::CHIPOperationalCredentialsCurrentFabricIndexAttributeCallback( +CHIPEthernetNetworkDiagnosticsAttributeListAttributeCallback::CHIPEthernetNetworkDiagnosticsAttributeListAttributeCallback( jobject javaCallback, bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -3876,7 +3739,7 @@ CHIPOperationalCredentialsCurrentFabricIndexAttributeCallback::CHIPOperationalCr } } -CHIPOperationalCredentialsCurrentFabricIndexAttributeCallback::~CHIPOperationalCredentialsCurrentFabricIndexAttributeCallback() +CHIPEthernetNetworkDiagnosticsAttributeListAttributeCallback::~CHIPEthernetNetworkDiagnosticsAttributeListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3887,7 +3750,8 @@ CHIPOperationalCredentialsCurrentFabricIndexAttributeCallback::~CHIPOperationalC env->DeleteGlobalRef(javaCallbackRef); } -void CHIPOperationalCredentialsCurrentFabricIndexAttributeCallback::CallbackFn(void * context, chip::FabricIndex value) +void CHIPEthernetNetworkDiagnosticsAttributeListAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -3895,32 +3759,59 @@ void CHIPOperationalCredentialsCurrentFabricIndexAttributeCallback::CallbackFn(v jobject javaCallbackRef; VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; VerifyOrReturn(javaCallbackRef != nullptr, ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + jmethodID javaMethod; - err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jobject javaValue; + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; - std::string javaValueClassName = "java/lang/Integer"; - std::string javaValueCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), - javaValueCtorSignature.c_str(), value, javaValue); + jobject entryObject = nullptr; + if (!entryNull) + { + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); + } - env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPPowerSourceActiveBatteryFaultsAttributeCallback::CHIPPowerSourceActiveBatteryFaultsAttributeCallback(jobject javaCallback, - bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), - keepAlive(keepAlive) +CHIPFixedLabelLabelListAttributeCallback::CHIPFixedLabelLabelListAttributeCallback(jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3936,7 +3827,7 @@ CHIPPowerSourceActiveBatteryFaultsAttributeCallback::CHIPPowerSourceActiveBatter } } -CHIPPowerSourceActiveBatteryFaultsAttributeCallback::~CHIPPowerSourceActiveBatteryFaultsAttributeCallback() +CHIPFixedLabelLabelListAttributeCallback::~CHIPFixedLabelLabelListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3947,8 +3838,9 @@ CHIPPowerSourceActiveBatteryFaultsAttributeCallback::~CHIPPowerSourceActiveBatte env->DeleteGlobalRef(javaCallbackRef); } -void CHIPPowerSourceActiveBatteryFaultsAttributeCallback::CallbackFn(void * context, - const chip::app::DataModel::DecodableList & list) +void CHIPFixedLabelLabelListAttributeCallback::CallbackFn( + void * context, + const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -3957,8 +3849,8 @@ void CHIPPowerSourceActiveBatteryFaultsAttributeCallback::CallbackFn(void * cont VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; @@ -3980,37 +3872,59 @@ void CHIPPowerSourceActiveBatteryFaultsAttributeCallback::CallbackFn(void * cont err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + jclass attributeClass; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipClusters$FixedLabelCluster$LabelListAttribute", attributeClass); + VerifyOrReturn( + err == CHIP_NO_ERROR, + ChipLogError(Zcl, "Could not find class chip/devicecontroller/ChipClusters$FixedLabelCluster$LabelListAttribute")); + chip::JniClass attributeJniClass(attributeClass); + jmethodID attributeCtor = env->GetMethodID(attributeClass, "", "(Ljava/lang/String;Ljava/lang/String;)V"); + VerifyOrReturn(attributeCtor != nullptr, ChipLogError(Zcl, "Could not find LabelListAttribute constructor")); + auto iter = list.begin(); while (iter.Next()) { - auto & entry = iter.GetValue(); - bool entryNull = false; - uint8_t entryValue = entry; + auto & entry = iter.GetValue(); + (void) entry; + bool labelNull = false; + bool labelHasValue = true; - jobject entryObject = nullptr; - if (!entryNull) + chip::CharSpan labelValue = entry.label; + + jstring label = nullptr; + chip::UtfString labelStr(env, labelValue); + if (!labelNull && labelHasValue) { - jclass entryTypeCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", entryTypeCls); - chip::JniClass jniClass(entryTypeCls); - jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(I)V"); - entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); + label = jstring(labelStr.jniValue()); } - env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + bool valueNull = false; + bool valueHasValue = true; + + chip::CharSpan valueValue = entry.value; + + jstring value = nullptr; + chip::UtfString valueStr(env, valueValue); + if (!valueNull && valueHasValue) + { + value = jstring(valueStr.jniValue()); + } + + jobject attributeObj = env->NewObject(attributeClass, attributeCtor, label, value); + VerifyOrReturn(attributeObj != nullptr, ChipLogError(Zcl, "Could not create LabelListAttribute object")); + + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, attributeObj); } - VerifyOrReturn( - iter.GetStatus() == CHIP_NO_ERROR, - ChipLogError(Zcl, "Error decoding ActiveBatteryFaultsAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + VerifyOrReturn(iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding LabelListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); env->ExceptionClear(); env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPPowerSourceConfigurationSourcesAttributeCallback::CHIPPowerSourceConfigurationSourcesAttributeCallback(jobject javaCallback, - bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), - keepAlive(keepAlive) +CHIPFixedLabelAttributeListAttributeCallback::CHIPFixedLabelAttributeListAttributeCallback(jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -4026,7 +3940,7 @@ CHIPPowerSourceConfigurationSourcesAttributeCallback::CHIPPowerSourceConfigurati } } -CHIPPowerSourceConfigurationSourcesAttributeCallback::~CHIPPowerSourceConfigurationSourcesAttributeCallback() +CHIPFixedLabelAttributeListAttributeCallback::~CHIPFixedLabelAttributeListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -4037,8 +3951,8 @@ CHIPPowerSourceConfigurationSourcesAttributeCallback::~CHIPPowerSourceConfigurat env->DeleteGlobalRef(javaCallbackRef); } -void CHIPPowerSourceConfigurationSourcesAttributeCallback::CallbackFn(void * context, - const chip::app::DataModel::DecodableList & list) +void CHIPFixedLabelAttributeListAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -4047,8 +3961,8 @@ void CHIPPowerSourceConfigurationSourcesAttributeCallback::CallbackFn(void * con VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; @@ -4073,32 +3987,33 @@ void CHIPPowerSourceConfigurationSourcesAttributeCallback::CallbackFn(void * con auto iter = list.begin(); while (iter.Next()) { - auto & entry = iter.GetValue(); - bool entryNull = false; - uint8_t entryValue = entry; + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; jobject entryObject = nullptr; if (!entryNull) { jclass entryTypeCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", entryTypeCls); + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); chip::JniClass jniClass(entryTypeCls); - jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(I)V"); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); } env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); } - VerifyOrReturn(iter.GetStatus() == CHIP_NO_ERROR, - ChipLogError(Zcl, "Error decoding SourcesAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); env->ExceptionClear(); env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPPumpConfigurationAndControlLifetimeRunningHoursAttributeCallback:: - CHIPPumpConfigurationAndControlLifetimeRunningHoursAttributeCallback(jobject javaCallback, bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), +CHIPFlowMeasurementAttributeListAttributeCallback::CHIPFlowMeasurementAttributeListAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -4115,8 +4030,7 @@ CHIPPumpConfigurationAndControlLifetimeRunningHoursAttributeCallback:: } } -CHIPPumpConfigurationAndControlLifetimeRunningHoursAttributeCallback:: - ~CHIPPumpConfigurationAndControlLifetimeRunningHoursAttributeCallback() +CHIPFlowMeasurementAttributeListAttributeCallback::~CHIPFlowMeasurementAttributeListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -4127,8 +4041,8 @@ CHIPPumpConfigurationAndControlLifetimeRunningHoursAttributeCallback:: env->DeleteGlobalRef(javaCallbackRef); } -void CHIPPumpConfigurationAndControlLifetimeRunningHoursAttributeCallback::CallbackFn( - void * context, const chip::app::DataModel::Nullable & value) +void CHIPFlowMeasurementAttributeListAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -4136,31 +4050,60 @@ void CHIPPumpConfigurationAndControlLifetimeRunningHoursAttributeCallback::Callb jobject javaCallbackRef; VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; VerifyOrReturn(javaCallbackRef != nullptr, ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); - jmethodID javaMethod; - err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod); + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jobject javaValue; + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; - std::string javaValueClassName = "java/lang/Long"; - std::string javaValueCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), - value.Value(), javaValue); + jobject entryObject = nullptr; + if (!entryNull) + { + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); + } - env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPPumpConfigurationAndControlLifetimeEnergyConsumedAttributeCallback:: - CHIPPumpConfigurationAndControlLifetimeEnergyConsumedAttributeCallback(jobject javaCallback, bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), +CHIPGeneralCommissioningBasicCommissioningInfoListAttributeCallback:: + CHIPGeneralCommissioningBasicCommissioningInfoListAttributeCallback(jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -4177,8 +4120,8 @@ CHIPPumpConfigurationAndControlLifetimeEnergyConsumedAttributeCallback:: } } -CHIPPumpConfigurationAndControlLifetimeEnergyConsumedAttributeCallback:: - ~CHIPPumpConfigurationAndControlLifetimeEnergyConsumedAttributeCallback() +CHIPGeneralCommissioningBasicCommissioningInfoListAttributeCallback:: + ~CHIPGeneralCommissioningBasicCommissioningInfoListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -4189,8 +4132,10 @@ CHIPPumpConfigurationAndControlLifetimeEnergyConsumedAttributeCallback:: env->DeleteGlobalRef(javaCallbackRef); } -void CHIPPumpConfigurationAndControlLifetimeEnergyConsumedAttributeCallback::CallbackFn( - void * context, const chip::app::DataModel::Nullable & value) +void CHIPGeneralCommissioningBasicCommissioningInfoListAttributeCallback::CallbackFn( + void * context, + const chip::app::DataModel::DecodableList< + chip::app::Clusters::GeneralCommissioning::Structs::BasicCommissioningInfoType::DecodableType> & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -4198,31 +4143,79 @@ void CHIPPumpConfigurationAndControlLifetimeEnergyConsumedAttributeCallback::Cal jobject javaCallbackRef; VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; VerifyOrReturn(javaCallbackRef != nullptr, ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + jmethodID javaMethod; - err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod); + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jobject javaValue; + jclass attributeClass; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipClusters$GeneralCommissioningCluster$BasicCommissioningInfoListAttribute", attributeClass); + VerifyOrReturn( + err == CHIP_NO_ERROR, + ChipLogError(Zcl, + "Could not find class " + "chip/devicecontroller/ChipClusters$GeneralCommissioningCluster$BasicCommissioningInfoListAttribute")); + chip::JniClass attributeJniClass(attributeClass); + jmethodID attributeCtor = env->GetMethodID(attributeClass, "", "(Ljava/lang/Long;)V"); + VerifyOrReturn(attributeCtor != nullptr, ChipLogError(Zcl, "Could not find BasicCommissioningInfoListAttribute constructor")); - std::string javaValueClassName = "java/lang/Long"; - std::string javaValueCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), - value.Value(), javaValue); + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + (void) entry; + bool failSafeExpiryLengthMsNull = false; + bool failSafeExpiryLengthMsHasValue = true; - env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); + uint32_t failSafeExpiryLengthMsValue = entry.failSafeExpiryLengthMs; + + jobject failSafeExpiryLengthMs = nullptr; + if (!failSafeExpiryLengthMsNull && failSafeExpiryLengthMsHasValue) + { + jclass failSafeExpiryLengthMsEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", failSafeExpiryLengthMsEntryCls); + chip::JniClass failSafeExpiryLengthMsJniClass(failSafeExpiryLengthMsEntryCls); + jmethodID failSafeExpiryLengthMsEntryTypeCtor = env->GetMethodID(failSafeExpiryLengthMsEntryCls, "", "(J)V"); + failSafeExpiryLengthMs = + env->NewObject(failSafeExpiryLengthMsEntryCls, failSafeExpiryLengthMsEntryTypeCtor, failSafeExpiryLengthMsValue); + } + + jobject attributeObj = env->NewObject(attributeClass, attributeCtor, failSafeExpiryLengthMs); + VerifyOrReturn(attributeObj != nullptr, ChipLogError(Zcl, "Could not create BasicCommissioningInfoListAttribute object")); + + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, attributeObj); + } + VerifyOrReturn(iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding BasicCommissioningInfoListAttribute value: %" CHIP_ERROR_FORMAT, + iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPSoftwareDiagnosticsThreadMetricsAttributeCallback::CHIPSoftwareDiagnosticsThreadMetricsAttributeCallback(jobject javaCallback, - bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), +CHIPGeneralCommissioningAttributeListAttributeCallback::CHIPGeneralCommissioningAttributeListAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -4239,7 +4232,7 @@ CHIPSoftwareDiagnosticsThreadMetricsAttributeCallback::CHIPSoftwareDiagnosticsTh } } -CHIPSoftwareDiagnosticsThreadMetricsAttributeCallback::~CHIPSoftwareDiagnosticsThreadMetricsAttributeCallback() +CHIPGeneralCommissioningAttributeListAttributeCallback::~CHIPGeneralCommissioningAttributeListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -4250,10 +4243,8 @@ CHIPSoftwareDiagnosticsThreadMetricsAttributeCallback::~CHIPSoftwareDiagnosticsT env->DeleteGlobalRef(javaCallbackRef); } -void CHIPSoftwareDiagnosticsThreadMetricsAttributeCallback::CallbackFn( - void * context, - const chip::app::DataModel::DecodableList & - list) +void CHIPGeneralCommissioningAttributeListAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -4262,8 +4253,8 @@ void CHIPSoftwareDiagnosticsThreadMetricsAttributeCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; @@ -4285,111 +4276,37 @@ void CHIPSoftwareDiagnosticsThreadMetricsAttributeCallback::CallbackFn( err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jclass attributeClass; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipClusters$SoftwareDiagnosticsCluster$ThreadMetricsAttribute", attributeClass); - VerifyOrReturn( - err == CHIP_NO_ERROR, - ChipLogError(Zcl, - "Could not find class chip/devicecontroller/ChipClusters$SoftwareDiagnosticsCluster$ThreadMetricsAttribute")); - chip::JniClass attributeJniClass(attributeClass); - jmethodID attributeCtor = env->GetMethodID( - attributeClass, "", "(Ljava/lang/Long;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;)V"); - VerifyOrReturn(attributeCtor != nullptr, ChipLogError(Zcl, "Could not find ThreadMetricsAttribute constructor")); - auto iter = list.begin(); while (iter.Next()) { - auto & entry = iter.GetValue(); - (void) entry; - bool idNull = false; - bool idHasValue = true; - - uint64_t idValue = entry.id; - - jobject id = nullptr; - if (!idNull && idHasValue) - { - jclass idEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", idEntryCls); - chip::JniClass idJniClass(idEntryCls); - jmethodID idEntryTypeCtor = env->GetMethodID(idEntryCls, "", "(J)V"); - id = env->NewObject(idEntryCls, idEntryTypeCtor, idValue); - } - - bool nameNull = false; - bool nameHasValue = true; - - chip::CharSpan nameValue = entry.name; - - jstring name = nullptr; - chip::UtfString nameStr(env, nameValue); - if (!nameNull && nameHasValue) - { - name = jstring(nameStr.jniValue()); - } - - bool stackFreeCurrentNull = false; - bool stackFreeCurrentHasValue = true; - - uint32_t stackFreeCurrentValue = entry.stackFreeCurrent; - - jobject stackFreeCurrent = nullptr; - if (!stackFreeCurrentNull && stackFreeCurrentHasValue) - { - jclass stackFreeCurrentEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", stackFreeCurrentEntryCls); - chip::JniClass stackFreeCurrentJniClass(stackFreeCurrentEntryCls); - jmethodID stackFreeCurrentEntryTypeCtor = env->GetMethodID(stackFreeCurrentEntryCls, "", "(J)V"); - stackFreeCurrent = env->NewObject(stackFreeCurrentEntryCls, stackFreeCurrentEntryTypeCtor, stackFreeCurrentValue); - } - - bool stackFreeMinimumNull = false; - bool stackFreeMinimumHasValue = true; - - uint32_t stackFreeMinimumValue = entry.stackFreeMinimum; + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; - jobject stackFreeMinimum = nullptr; - if (!stackFreeMinimumNull && stackFreeMinimumHasValue) - { - jclass stackFreeMinimumEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", stackFreeMinimumEntryCls); - chip::JniClass stackFreeMinimumJniClass(stackFreeMinimumEntryCls); - jmethodID stackFreeMinimumEntryTypeCtor = env->GetMethodID(stackFreeMinimumEntryCls, "", "(J)V"); - stackFreeMinimum = env->NewObject(stackFreeMinimumEntryCls, stackFreeMinimumEntryTypeCtor, stackFreeMinimumValue); - } - - bool stackSizeNull = false; - bool stackSizeHasValue = true; - - uint32_t stackSizeValue = entry.stackSize; - - jobject stackSize = nullptr; - if (!stackSizeNull && stackSizeHasValue) + jobject entryObject = nullptr; + if (!entryNull) { - jclass stackSizeEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", stackSizeEntryCls); - chip::JniClass stackSizeJniClass(stackSizeEntryCls); - jmethodID stackSizeEntryTypeCtor = env->GetMethodID(stackSizeEntryCls, "", "(J)V"); - stackSize = env->NewObject(stackSizeEntryCls, stackSizeEntryTypeCtor, stackSizeValue); + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); } - jobject attributeObj = - env->NewObject(attributeClass, attributeCtor, id, name, stackFreeCurrent, stackFreeMinimum, stackSize); - VerifyOrReturn(attributeObj != nullptr, ChipLogError(Zcl, "Could not create ThreadMetricsAttribute object")); - - env->CallBooleanMethod(arrayListObj, arrayListAddMethod, attributeObj); + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); } VerifyOrReturn( iter.GetStatus() == CHIP_NO_ERROR, - ChipLogError(Zcl, "Error decoding ThreadMetricsAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); env->ExceptionClear(); env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPTvChannelTvChannelListAttributeCallback::CHIPTvChannelTvChannelListAttributeCallback(jobject javaCallback, bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) +CHIPGeneralDiagnosticsNetworkInterfacesAttributeCallback::CHIPGeneralDiagnosticsNetworkInterfacesAttributeCallback( + jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -4405,7 +4322,7 @@ CHIPTvChannelTvChannelListAttributeCallback::CHIPTvChannelTvChannelListAttribute } } -CHIPTvChannelTvChannelListAttributeCallback::~CHIPTvChannelTvChannelListAttributeCallback() +CHIPGeneralDiagnosticsNetworkInterfacesAttributeCallback::~CHIPGeneralDiagnosticsNetworkInterfacesAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -4416,9 +4333,10 @@ CHIPTvChannelTvChannelListAttributeCallback::~CHIPTvChannelTvChannelListAttribut env->DeleteGlobalRef(javaCallbackRef); } -void CHIPTvChannelTvChannelListAttributeCallback::CallbackFn( +void CHIPGeneralDiagnosticsNetworkInterfacesAttributeCallback::CallbackFn( void * context, - const chip::app::DataModel::DecodableList & list) + const chip::app::DataModel::DecodableList< + chip::app::Clusters::GeneralDiagnostics::Structs::NetworkInterfaceType::DecodableType> & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -4427,8 +4345,8 @@ void CHIPTvChannelTvChannelListAttributeCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; @@ -4452,104 +4370,130 @@ void CHIPTvChannelTvChannelListAttributeCallback::CallbackFn( jclass attributeClass; err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipClusters$TvChannelCluster$TvChannelListAttribute", attributeClass); + env, "chip/devicecontroller/ChipClusters$GeneralDiagnosticsCluster$NetworkInterfacesAttribute", attributeClass); VerifyOrReturn( err == CHIP_NO_ERROR, - ChipLogError(Zcl, "Could not find class chip/devicecontroller/ChipClusters$TvChannelCluster$TvChannelListAttribute")); + ChipLogError( + Zcl, "Could not find class chip/devicecontroller/ChipClusters$GeneralDiagnosticsCluster$NetworkInterfacesAttribute")); chip::JniClass attributeJniClass(attributeClass); jmethodID attributeCtor = env->GetMethodID(attributeClass, "", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V"); - VerifyOrReturn(attributeCtor != nullptr, ChipLogError(Zcl, "Could not find TvChannelListAttribute constructor")); + "(Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;[BLjava/lang/Integer;)V"); + VerifyOrReturn(attributeCtor != nullptr, ChipLogError(Zcl, "Could not find NetworkInterfacesAttribute constructor")); auto iter = list.begin(); while (iter.Next()) { auto & entry = iter.GetValue(); (void) entry; - bool majorNumberNull = false; - bool majorNumberHasValue = true; + bool nameNull = false; + bool nameHasValue = true; - uint16_t majorNumberValue = entry.majorNumber; + chip::CharSpan nameValue = entry.name; - jobject majorNumber = nullptr; - if (!majorNumberNull && majorNumberHasValue) + jstring name = nullptr; + chip::UtfString nameStr(env, nameValue); + if (!nameNull && nameHasValue) { - jclass majorNumberEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", majorNumberEntryCls); - chip::JniClass majorNumberJniClass(majorNumberEntryCls); - jmethodID majorNumberEntryTypeCtor = env->GetMethodID(majorNumberEntryCls, "", "(I)V"); - majorNumber = env->NewObject(majorNumberEntryCls, majorNumberEntryTypeCtor, majorNumberValue); + name = jstring(nameStr.jniValue()); } - bool minorNumberNull = false; - bool minorNumberHasValue = true; + bool fabricConnectedNull = false; + bool fabricConnectedHasValue = true; - uint16_t minorNumberValue = entry.minorNumber; + bool fabricConnectedValue = entry.fabricConnected; - jobject minorNumber = nullptr; - if (!minorNumberNull && minorNumberHasValue) + jobject fabricConnected = nullptr; + if (!fabricConnectedNull && fabricConnectedHasValue) { - jclass minorNumberEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", minorNumberEntryCls); - chip::JniClass minorNumberJniClass(minorNumberEntryCls); - jmethodID minorNumberEntryTypeCtor = env->GetMethodID(minorNumberEntryCls, "", "(I)V"); - minorNumber = env->NewObject(minorNumberEntryCls, minorNumberEntryTypeCtor, minorNumberValue); + jclass fabricConnectedEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Boolean", fabricConnectedEntryCls); + chip::JniClass fabricConnectedJniClass(fabricConnectedEntryCls); + jmethodID fabricConnectedEntryTypeCtor = env->GetMethodID(fabricConnectedEntryCls, "", "(Z)V"); + fabricConnected = env->NewObject(fabricConnectedEntryCls, fabricConnectedEntryTypeCtor, fabricConnectedValue); } - bool nameNull = false; - bool nameHasValue = true; + bool offPremiseServicesReachableIPv4Null = false; + bool offPremiseServicesReachableIPv4HasValue = true; - chip::CharSpan nameValue = entry.name; + bool offPremiseServicesReachableIPv4Value = entry.offPremiseServicesReachableIPv4; - jstring name = nullptr; - chip::UtfString nameStr(env, nameValue); - if (!nameNull && nameHasValue) + jobject offPremiseServicesReachableIPv4 = nullptr; + if (!offPremiseServicesReachableIPv4Null && offPremiseServicesReachableIPv4HasValue) { - name = jstring(nameStr.jniValue()); + jclass offPremiseServicesReachableIPv4EntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Boolean", offPremiseServicesReachableIPv4EntryCls); + chip::JniClass offPremiseServicesReachableIPv4JniClass(offPremiseServicesReachableIPv4EntryCls); + jmethodID offPremiseServicesReachableIPv4EntryTypeCtor = + env->GetMethodID(offPremiseServicesReachableIPv4EntryCls, "", "(Z)V"); + offPremiseServicesReachableIPv4 = + env->NewObject(offPremiseServicesReachableIPv4EntryCls, offPremiseServicesReachableIPv4EntryTypeCtor, + offPremiseServicesReachableIPv4Value); } - bool callSignNull = false; - bool callSignHasValue = true; + bool offPremiseServicesReachableIPv6Null = false; + bool offPremiseServicesReachableIPv6HasValue = true; - chip::CharSpan callSignValue = entry.callSign; + bool offPremiseServicesReachableIPv6Value = entry.offPremiseServicesReachableIPv6; - jstring callSign = nullptr; - chip::UtfString callSignStr(env, callSignValue); - if (!callSignNull && callSignHasValue) + jobject offPremiseServicesReachableIPv6 = nullptr; + if (!offPremiseServicesReachableIPv6Null && offPremiseServicesReachableIPv6HasValue) { - callSign = jstring(callSignStr.jniValue()); + jclass offPremiseServicesReachableIPv6EntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Boolean", offPremiseServicesReachableIPv6EntryCls); + chip::JniClass offPremiseServicesReachableIPv6JniClass(offPremiseServicesReachableIPv6EntryCls); + jmethodID offPremiseServicesReachableIPv6EntryTypeCtor = + env->GetMethodID(offPremiseServicesReachableIPv6EntryCls, "", "(Z)V"); + offPremiseServicesReachableIPv6 = + env->NewObject(offPremiseServicesReachableIPv6EntryCls, offPremiseServicesReachableIPv6EntryTypeCtor, + offPremiseServicesReachableIPv6Value); } - bool affiliateCallSignNull = false; - bool affiliateCallSignHasValue = true; + bool hardwareAddressNull = false; + bool hardwareAddressHasValue = true; - chip::CharSpan affiliateCallSignValue = entry.affiliateCallSign; + chip::ByteSpan hardwareAddressValue = entry.hardwareAddress; - jstring affiliateCallSign = nullptr; - chip::UtfString affiliateCallSignStr(env, affiliateCallSignValue); - if (!affiliateCallSignNull && affiliateCallSignHasValue) + jbyteArray hardwareAddress = nullptr; + if (!hardwareAddressNull && hardwareAddressHasValue) { - affiliateCallSign = jstring(affiliateCallSignStr.jniValue()); + hardwareAddress = env->NewByteArray(hardwareAddressValue.size()); + env->SetByteArrayRegion(hardwareAddress, 0, hardwareAddressValue.size(), + reinterpret_cast(hardwareAddressValue.data())); } - jobject attributeObj = - env->NewObject(attributeClass, attributeCtor, majorNumber, minorNumber, name, callSign, affiliateCallSign); - VerifyOrReturn(attributeObj != nullptr, ChipLogError(Zcl, "Could not create TvChannelListAttribute object")); + bool typeNull = false; + bool typeHasValue = true; + + chip::app::Clusters::GeneralDiagnostics::InterfaceType typeValue = entry.type; + + jobject type = nullptr; + if (!typeNull && typeHasValue) + { + jclass typeEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", typeEntryCls); + chip::JniClass typeJniClass(typeEntryCls); + jmethodID typeEntryTypeCtor = env->GetMethodID(typeEntryCls, "", "(I)V"); + type = env->NewObject(typeEntryCls, typeEntryTypeCtor, typeValue); + } + + jobject attributeObj = env->NewObject(attributeClass, attributeCtor, name, fabricConnected, offPremiseServicesReachableIPv4, + offPremiseServicesReachableIPv6, hardwareAddress, type); + VerifyOrReturn(attributeObj != nullptr, ChipLogError(Zcl, "Could not create NetworkInterfacesAttribute object")); env->CallBooleanMethod(arrayListObj, arrayListAddMethod, attributeObj); } VerifyOrReturn( iter.GetStatus() == CHIP_NO_ERROR, - ChipLogError(Zcl, "Error decoding TvChannelListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + ChipLogError(Zcl, "Error decoding NetworkInterfacesAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); env->ExceptionClear(); env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPTargetNavigatorTargetNavigatorListAttributeCallback::CHIPTargetNavigatorTargetNavigatorListAttributeCallback( +CHIPGeneralDiagnosticsActiveHardwareFaultsAttributeCallback::CHIPGeneralDiagnosticsActiveHardwareFaultsAttributeCallback( jobject javaCallback, bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -4566,7 +4510,7 @@ CHIPTargetNavigatorTargetNavigatorListAttributeCallback::CHIPTargetNavigatorTarg } } -CHIPTargetNavigatorTargetNavigatorListAttributeCallback::~CHIPTargetNavigatorTargetNavigatorListAttributeCallback() +CHIPGeneralDiagnosticsActiveHardwareFaultsAttributeCallback::~CHIPGeneralDiagnosticsActiveHardwareFaultsAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -4577,10 +4521,8 @@ CHIPTargetNavigatorTargetNavigatorListAttributeCallback::~CHIPTargetNavigatorTar env->DeleteGlobalRef(javaCallbackRef); } -void CHIPTargetNavigatorTargetNavigatorListAttributeCallback::CallbackFn( - void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::TargetNavigator::Structs::NavigateTargetTargetInfo::DecodableType> & list) +void CHIPGeneralDiagnosticsActiveHardwareFaultsAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -4589,8 +4531,8 @@ void CHIPTargetNavigatorTargetNavigatorListAttributeCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; @@ -4612,64 +4554,37 @@ void CHIPTargetNavigatorTargetNavigatorListAttributeCallback::CallbackFn( err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jclass attributeClass; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipClusters$TargetNavigatorCluster$TargetNavigatorListAttribute", attributeClass); - VerifyOrReturn( - err == CHIP_NO_ERROR, - ChipLogError( - Zcl, "Could not find class chip/devicecontroller/ChipClusters$TargetNavigatorCluster$TargetNavigatorListAttribute")); - chip::JniClass attributeJniClass(attributeClass); - jmethodID attributeCtor = env->GetMethodID(attributeClass, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); - VerifyOrReturn(attributeCtor != nullptr, ChipLogError(Zcl, "Could not find TargetNavigatorListAttribute constructor")); - auto iter = list.begin(); while (iter.Next()) { - auto & entry = iter.GetValue(); - (void) entry; - bool identifierNull = false; - bool identifierHasValue = true; - - uint8_t identifierValue = entry.identifier; - - jobject identifier = nullptr; - if (!identifierNull && identifierHasValue) - { - jclass identifierEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", identifierEntryCls); - chip::JniClass identifierJniClass(identifierEntryCls); - jmethodID identifierEntryTypeCtor = env->GetMethodID(identifierEntryCls, "", "(I)V"); - identifier = env->NewObject(identifierEntryCls, identifierEntryTypeCtor, identifierValue); - } - - bool nameNull = false; - bool nameHasValue = true; - - chip::CharSpan nameValue = entry.name; + auto & entry = iter.GetValue(); + bool entryNull = false; + uint8_t entryValue = entry; - jstring name = nullptr; - chip::UtfString nameStr(env, nameValue); - if (!nameNull && nameHasValue) + jobject entryObject = nullptr; + if (!entryNull) { - name = jstring(nameStr.jniValue()); + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(I)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); } - jobject attributeObj = env->NewObject(attributeClass, attributeCtor, identifier, name); - VerifyOrReturn(attributeObj != nullptr, ChipLogError(Zcl, "Could not create TargetNavigatorListAttribute object")); - - env->CallBooleanMethod(arrayListObj, arrayListAddMethod, attributeObj); + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); } VerifyOrReturn( iter.GetStatus() == CHIP_NO_ERROR, - ChipLogError(Zcl, "Error decoding TargetNavigatorListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + ChipLogError(Zcl, "Error decoding ActiveHardwareFaultsAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); env->ExceptionClear(); env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPTestClusterListInt8uAttributeCallback::CHIPTestClusterListInt8uAttributeCallback(jobject javaCallback, bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) +CHIPGeneralDiagnosticsActiveRadioFaultsAttributeCallback::CHIPGeneralDiagnosticsActiveRadioFaultsAttributeCallback( + jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -4685,7 +4600,7 @@ CHIPTestClusterListInt8uAttributeCallback::CHIPTestClusterListInt8uAttributeCall } } -CHIPTestClusterListInt8uAttributeCallback::~CHIPTestClusterListInt8uAttributeCallback() +CHIPGeneralDiagnosticsActiveRadioFaultsAttributeCallback::~CHIPGeneralDiagnosticsActiveRadioFaultsAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -4696,8 +4611,8 @@ CHIPTestClusterListInt8uAttributeCallback::~CHIPTestClusterListInt8uAttributeCal env->DeleteGlobalRef(javaCallbackRef); } -void CHIPTestClusterListInt8uAttributeCallback::CallbackFn(void * context, - const chip::app::DataModel::DecodableList & list) +void CHIPGeneralDiagnosticsActiveRadioFaultsAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -4706,8 +4621,8 @@ void CHIPTestClusterListInt8uAttributeCallback::CallbackFn(void * context, VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; @@ -4748,16 +4663,17 @@ void CHIPTestClusterListInt8uAttributeCallback::CallbackFn(void * context, env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); } - VerifyOrReturn(iter.GetStatus() == CHIP_NO_ERROR, - ChipLogError(Zcl, "Error decoding ListInt8uAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding ActiveRadioFaultsAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); env->ExceptionClear(); env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPTestClusterListOctetStringAttributeCallback::CHIPTestClusterListOctetStringAttributeCallback(jobject javaCallback, - bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), +CHIPGeneralDiagnosticsActiveNetworkFaultsAttributeCallback::CHIPGeneralDiagnosticsActiveNetworkFaultsAttributeCallback( + jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -4774,7 +4690,7 @@ CHIPTestClusterListOctetStringAttributeCallback::CHIPTestClusterListOctetStringA } } -CHIPTestClusterListOctetStringAttributeCallback::~CHIPTestClusterListOctetStringAttributeCallback() +CHIPGeneralDiagnosticsActiveNetworkFaultsAttributeCallback::~CHIPGeneralDiagnosticsActiveNetworkFaultsAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -4785,8 +4701,8 @@ CHIPTestClusterListOctetStringAttributeCallback::~CHIPTestClusterListOctetString env->DeleteGlobalRef(javaCallbackRef); } -void CHIPTestClusterListOctetStringAttributeCallback::CallbackFn(void * context, - const chip::app::DataModel::DecodableList & list) +void CHIPGeneralDiagnosticsActiveNetworkFaultsAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -4795,8 +4711,8 @@ void CHIPTestClusterListOctetStringAttributeCallback::CallbackFn(void * context, VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; @@ -4821,30 +4737,33 @@ void CHIPTestClusterListOctetStringAttributeCallback::CallbackFn(void * context, auto iter = list.begin(); while (iter.Next()) { - auto & entry = iter.GetValue(); - bool entryNull = false; - chip::ByteSpan entryValue = entry; + auto & entry = iter.GetValue(); + bool entryNull = false; + uint8_t entryValue = entry; - jbyteArray entryObject = nullptr; + jobject entryObject = nullptr; if (!entryNull) { - entryObject = env->NewByteArray(entryValue.size()); - env->SetByteArrayRegion(entryObject, 0, entryValue.size(), reinterpret_cast(entryValue.data())); + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(I)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); } env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); } VerifyOrReturn( iter.GetStatus() == CHIP_NO_ERROR, - ChipLogError(Zcl, "Error decoding ListOctetStringAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + ChipLogError(Zcl, "Error decoding ActiveNetworkFaultsAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); env->ExceptionClear(); env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPTestClusterListStructOctetStringAttributeCallback::CHIPTestClusterListStructOctetStringAttributeCallback(jobject javaCallback, - bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), +CHIPGeneralDiagnosticsAttributeListAttributeCallback::CHIPGeneralDiagnosticsAttributeListAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -4861,7 +4780,7 @@ CHIPTestClusterListStructOctetStringAttributeCallback::CHIPTestClusterListStruct } } -CHIPTestClusterListStructOctetStringAttributeCallback::~CHIPTestClusterListStructOctetStringAttributeCallback() +CHIPGeneralDiagnosticsAttributeListAttributeCallback::~CHIPGeneralDiagnosticsAttributeListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -4872,9 +4791,8 @@ CHIPTestClusterListStructOctetStringAttributeCallback::~CHIPTestClusterListStruc env->DeleteGlobalRef(javaCallbackRef); } -void CHIPTestClusterListStructOctetStringAttributeCallback::CallbackFn( - void * context, - const chip::app::DataModel::DecodableList & list) +void CHIPGeneralDiagnosticsAttributeListAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -4883,8 +4801,8 @@ void CHIPTestClusterListStructOctetStringAttributeCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; @@ -4906,65 +4824,35 @@ void CHIPTestClusterListStructOctetStringAttributeCallback::CallbackFn( err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jclass attributeClass; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipClusters$TestClusterCluster$ListStructOctetStringAttribute", attributeClass); - VerifyOrReturn( - err == CHIP_NO_ERROR, - ChipLogError(Zcl, - "Could not find class chip/devicecontroller/ChipClusters$TestClusterCluster$ListStructOctetStringAttribute")); - chip::JniClass attributeJniClass(attributeClass); - jmethodID attributeCtor = env->GetMethodID(attributeClass, "", "(Ljava/lang/Long;[B)V"); - VerifyOrReturn(attributeCtor != nullptr, ChipLogError(Zcl, "Could not find ListStructOctetStringAttribute constructor")); - auto iter = list.begin(); while (iter.Next()) { - auto & entry = iter.GetValue(); - (void) entry; - bool fabricIndexNull = false; - bool fabricIndexHasValue = true; - - uint64_t fabricIndexValue = entry.fabricIndex; - - jobject fabricIndex = nullptr; - if (!fabricIndexNull && fabricIndexHasValue) - { - jclass fabricIndexEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", fabricIndexEntryCls); - chip::JniClass fabricIndexJniClass(fabricIndexEntryCls); - jmethodID fabricIndexEntryTypeCtor = env->GetMethodID(fabricIndexEntryCls, "", "(J)V"); - fabricIndex = env->NewObject(fabricIndexEntryCls, fabricIndexEntryTypeCtor, fabricIndexValue); - } - - bool operationalCertNull = false; - bool operationalCertHasValue = true; + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; - chip::ByteSpan operationalCertValue = entry.operationalCert; - - jbyteArray operationalCert = nullptr; - if (!operationalCertNull && operationalCertHasValue) + jobject entryObject = nullptr; + if (!entryNull) { - operationalCert = env->NewByteArray(operationalCertValue.size()); - env->SetByteArrayRegion(operationalCert, 0, operationalCertValue.size(), - reinterpret_cast(operationalCertValue.data())); + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); } - jobject attributeObj = env->NewObject(attributeClass, attributeCtor, fabricIndex, operationalCert); - VerifyOrReturn(attributeObj != nullptr, ChipLogError(Zcl, "Could not create ListStructOctetStringAttribute object")); - - env->CallBooleanMethod(arrayListObj, arrayListAddMethod, attributeObj); + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); } VerifyOrReturn( iter.GetStatus() == CHIP_NO_ERROR, - ChipLogError(Zcl, "Error decoding ListStructOctetStringAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); env->ExceptionClear(); env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPTestClusterVendorIdAttributeCallback::CHIPTestClusterVendorIdAttributeCallback(jobject javaCallback, bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) +CHIPGroupKeyManagementGroupsAttributeCallback::CHIPGroupKeyManagementGroupsAttributeCallback(jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -4980,7 +4868,7 @@ CHIPTestClusterVendorIdAttributeCallback::CHIPTestClusterVendorIdAttributeCallba } } -CHIPTestClusterVendorIdAttributeCallback::~CHIPTestClusterVendorIdAttributeCallback() +CHIPGroupKeyManagementGroupsAttributeCallback::~CHIPGroupKeyManagementGroupsAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -4991,7 +4879,9 @@ CHIPTestClusterVendorIdAttributeCallback::~CHIPTestClusterVendorIdAttributeCallb env->DeleteGlobalRef(javaCallbackRef); } -void CHIPTestClusterVendorIdAttributeCallback::CallbackFn(void * context, chip::VendorId value) +void CHIPGroupKeyManagementGroupsAttributeCallback::CallbackFn( + void * context, + const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -4999,31 +4889,106 @@ void CHIPTestClusterVendorIdAttributeCallback::CallbackFn(void * context, chip:: jobject javaCallbackRef; VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; VerifyOrReturn(javaCallbackRef != nullptr, ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + jmethodID javaMethod; - err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jobject javaValue; + jclass attributeClass; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipClusters$GroupKeyManagementCluster$GroupsAttribute", attributeClass); + VerifyOrReturn( + err == CHIP_NO_ERROR, + ChipLogError(Zcl, "Could not find class chip/devicecontroller/ChipClusters$GroupKeyManagementCluster$GroupsAttribute")); + chip::JniClass attributeJniClass(attributeClass); + jmethodID attributeCtor = + env->GetMethodID(attributeClass, "", "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V"); + VerifyOrReturn(attributeCtor != nullptr, ChipLogError(Zcl, "Could not find GroupsAttribute constructor")); - std::string javaValueClassName = "java/lang/Integer"; - std::string javaValueCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), - value, javaValue); + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + (void) entry; + bool vendorIdNull = false; + bool vendorIdHasValue = true; - env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); + uint16_t vendorIdValue = entry.vendorId; + + jobject vendorId = nullptr; + if (!vendorIdNull && vendorIdHasValue) + { + jclass vendorIdEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", vendorIdEntryCls); + chip::JniClass vendorIdJniClass(vendorIdEntryCls); + jmethodID vendorIdEntryTypeCtor = env->GetMethodID(vendorIdEntryCls, "", "(I)V"); + vendorId = env->NewObject(vendorIdEntryCls, vendorIdEntryTypeCtor, vendorIdValue); + } + + bool vendorGroupIdNull = false; + bool vendorGroupIdHasValue = true; + + uint16_t vendorGroupIdValue = entry.vendorGroupId; + + jobject vendorGroupId = nullptr; + if (!vendorGroupIdNull && vendorGroupIdHasValue) + { + jclass vendorGroupIdEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", vendorGroupIdEntryCls); + chip::JniClass vendorGroupIdJniClass(vendorGroupIdEntryCls); + jmethodID vendorGroupIdEntryTypeCtor = env->GetMethodID(vendorGroupIdEntryCls, "", "(I)V"); + vendorGroupId = env->NewObject(vendorGroupIdEntryCls, vendorGroupIdEntryTypeCtor, vendorGroupIdValue); + } + + bool groupKeySetIndexNull = false; + bool groupKeySetIndexHasValue = true; + + uint16_t groupKeySetIndexValue = entry.groupKeySetIndex; + + jobject groupKeySetIndex = nullptr; + if (!groupKeySetIndexNull && groupKeySetIndexHasValue) + { + jclass groupKeySetIndexEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", groupKeySetIndexEntryCls); + chip::JniClass groupKeySetIndexJniClass(groupKeySetIndexEntryCls); + jmethodID groupKeySetIndexEntryTypeCtor = env->GetMethodID(groupKeySetIndexEntryCls, "", "(I)V"); + groupKeySetIndex = env->NewObject(groupKeySetIndexEntryCls, groupKeySetIndexEntryTypeCtor, groupKeySetIndexValue); + } + + jobject attributeObj = env->NewObject(attributeClass, attributeCtor, vendorId, vendorGroupId, groupKeySetIndex); + VerifyOrReturn(attributeObj != nullptr, ChipLogError(Zcl, "Could not create GroupsAttribute object")); + + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, attributeObj); + } + VerifyOrReturn(iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding GroupsAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPTestClusterListNullablesAndOptionalsStructAttributeCallback::CHIPTestClusterListNullablesAndOptionalsStructAttributeCallback( - jobject javaCallback, bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), +CHIPGroupKeyManagementGroupKeysAttributeCallback::CHIPGroupKeyManagementGroupKeysAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -5040,7 +5005,7 @@ CHIPTestClusterListNullablesAndOptionalsStructAttributeCallback::CHIPTestCluster } } -CHIPTestClusterListNullablesAndOptionalsStructAttributeCallback::~CHIPTestClusterListNullablesAndOptionalsStructAttributeCallback() +CHIPGroupKeyManagementGroupKeysAttributeCallback::~CHIPGroupKeyManagementGroupKeysAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -5051,10 +5016,9 @@ CHIPTestClusterListNullablesAndOptionalsStructAttributeCallback::~CHIPTestCluste env->DeleteGlobalRef(javaCallbackRef); } -void CHIPTestClusterListNullablesAndOptionalsStructAttributeCallback::CallbackFn( +void CHIPGroupKeyManagementGroupKeysAttributeCallback::CallbackFn( void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::TestCluster::Structs::NullablesAndOptionalsStruct::DecodableType> & list) + const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -5063,8 +5027,8 @@ void CHIPTestClusterListNullablesAndOptionalsStructAttributeCallback::CallbackFn VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; @@ -5088,172 +5052,111 @@ void CHIPTestClusterListNullablesAndOptionalsStructAttributeCallback::CallbackFn jclass attributeClass; err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipClusters$TestClusterCluster$ListNullablesAndOptionalsStructAttribute", attributeClass); + env, "chip/devicecontroller/ChipClusters$GroupKeyManagementCluster$GroupKeysAttribute", attributeClass); VerifyOrReturn( err == CHIP_NO_ERROR, - ChipLogError( - Zcl, - "Could not find class chip/devicecontroller/ChipClusters$TestClusterCluster$ListNullablesAndOptionalsStructAttribute")); + ChipLogError(Zcl, "Could not find class chip/devicecontroller/ChipClusters$GroupKeyManagementCluster$GroupKeysAttribute")); chip::JniClass attributeJniClass(attributeClass); - jmethodID attributeCtor = env->GetMethodID( - attributeClass, "", - "(Ljava/lang/Integer;Ljava/util/Optional;Ljava/util/Optional;Ljava/lang/String;Ljava/util/Optional;Ljava/util/Optional;)V"); - VerifyOrReturn(attributeCtor != nullptr, - ChipLogError(Zcl, "Could not find ListNullablesAndOptionalsStructAttribute constructor")); + jmethodID attributeCtor = env->GetMethodID(attributeClass, "", + "(Ljava/lang/Integer;Ljava/lang/Integer;[BLjava/lang/Long;Ljava/lang/Integer;)V"); + VerifyOrReturn(attributeCtor != nullptr, ChipLogError(Zcl, "Could not find GroupKeysAttribute constructor")); auto iter = list.begin(); while (iter.Next()) { auto & entry = iter.GetValue(); (void) entry; - bool nullableIntNull = false; - bool nullableIntHasValue = true; - uint16_t nullableIntValue; - nullableIntNull = entry.nullableInt.IsNull(); - if (!nullableIntNull) - { - nullableIntValue = entry.nullableInt.Value(); - } + bool vendorIdNull = false; + bool vendorIdHasValue = true; - jobject nullableInt = nullptr; - if (!nullableIntNull && nullableIntHasValue) + uint16_t vendorIdValue = entry.vendorId; + + jobject vendorId = nullptr; + if (!vendorIdNull && vendorIdHasValue) { - jclass nullableIntEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", nullableIntEntryCls); - chip::JniClass nullableIntJniClass(nullableIntEntryCls); - jmethodID nullableIntEntryTypeCtor = env->GetMethodID(nullableIntEntryCls, "", "(I)V"); - nullableInt = env->NewObject(nullableIntEntryCls, nullableIntEntryTypeCtor, nullableIntValue); + jclass vendorIdEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", vendorIdEntryCls); + chip::JniClass vendorIdJniClass(vendorIdEntryCls); + jmethodID vendorIdEntryTypeCtor = env->GetMethodID(vendorIdEntryCls, "", "(I)V"); + vendorId = env->NewObject(vendorIdEntryCls, vendorIdEntryTypeCtor, vendorIdValue); } - bool optionalIntNull = false; - bool optionalIntHasValue = true; + bool groupKeyIndexNull = false; + bool groupKeyIndexHasValue = true; - uint16_t optionalIntValue; - optionalIntHasValue = entry.optionalInt.HasValue(); - if (optionalIntHasValue) - { - optionalIntValue = entry.optionalInt.Value(); - } + uint16_t groupKeyIndexValue = entry.groupKeyIndex; - jobject optionalInt = nullptr; - if (!optionalIntNull && optionalIntHasValue) + jobject groupKeyIndex = nullptr; + if (!groupKeyIndexNull && groupKeyIndexHasValue) { - jclass optionalIntEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", optionalIntEntryCls); - chip::JniClass optionalIntJniClass(optionalIntEntryCls); - jmethodID optionalIntEntryTypeCtor = env->GetMethodID(optionalIntEntryCls, "", "(I)V"); - optionalInt = env->NewObject(optionalIntEntryCls, optionalIntEntryTypeCtor, optionalIntValue); + jclass groupKeyIndexEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", groupKeyIndexEntryCls); + chip::JniClass groupKeyIndexJniClass(groupKeyIndexEntryCls); + jmethodID groupKeyIndexEntryTypeCtor = env->GetMethodID(groupKeyIndexEntryCls, "", "(I)V"); + groupKeyIndex = env->NewObject(groupKeyIndexEntryCls, groupKeyIndexEntryTypeCtor, groupKeyIndexValue); } - jobject optionalIntOptional = nullptr; - chip::JniReferences::GetInstance().CreateOptional(optionalInt, optionalIntOptional); - bool nullableOptionalIntNull = false; - bool nullableOptionalIntHasValue = true; + bool groupKeyRootNull = false; + bool groupKeyRootHasValue = true; - uint16_t nullableOptionalIntValue; - nullableOptionalIntHasValue = entry.nullableOptionalInt.HasValue(); - if (nullableOptionalIntHasValue) - { - auto nullableOptionalIntValueFromOptional = entry.nullableOptionalInt.Value(); - nullableOptionalIntNull = nullableOptionalIntValueFromOptional.IsNull(); - if (!nullableOptionalIntNull) - { - nullableOptionalIntValue = nullableOptionalIntValueFromOptional.Value(); - } - } + chip::ByteSpan groupKeyRootValue = entry.groupKeyRoot; - jobject nullableOptionalInt = nullptr; - if (!nullableOptionalIntNull && nullableOptionalIntHasValue) + jbyteArray groupKeyRoot = nullptr; + if (!groupKeyRootNull && groupKeyRootHasValue) { - jclass nullableOptionalIntEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", nullableOptionalIntEntryCls); - chip::JniClass nullableOptionalIntJniClass(nullableOptionalIntEntryCls); - jmethodID nullableOptionalIntEntryTypeCtor = env->GetMethodID(nullableOptionalIntEntryCls, "", "(I)V"); - nullableOptionalInt = - env->NewObject(nullableOptionalIntEntryCls, nullableOptionalIntEntryTypeCtor, nullableOptionalIntValue); + groupKeyRoot = env->NewByteArray(groupKeyRootValue.size()); + env->SetByteArrayRegion(groupKeyRoot, 0, groupKeyRootValue.size(), + reinterpret_cast(groupKeyRootValue.data())); } - jobject nullableOptionalIntOptional = nullptr; - chip::JniReferences::GetInstance().CreateOptional(nullableOptionalInt, nullableOptionalIntOptional); - bool nullableStringNull = false; - bool nullableStringHasValue = true; - chip::CharSpan nullableStringValue; - nullableStringNull = entry.nullableString.IsNull(); - if (!nullableStringNull) - { - nullableStringValue = entry.nullableString.Value(); - } - - jstring nullableString = nullptr; - chip::UtfString nullableStringStr(env, nullableStringValue); - if (!nullableStringNull && nullableStringHasValue) - { - nullableString = jstring(nullableStringStr.jniValue()); - } - - bool optionalStringNull = false; - bool optionalStringHasValue = true; + bool groupKeyEpochStartTimeNull = false; + bool groupKeyEpochStartTimeHasValue = true; - chip::CharSpan optionalStringValue; - optionalStringHasValue = entry.optionalString.HasValue(); - if (optionalStringHasValue) - { - optionalStringValue = entry.optionalString.Value(); - } + uint64_t groupKeyEpochStartTimeValue = entry.groupKeyEpochStartTime; - jstring optionalString = nullptr; - chip::UtfString optionalStringStr(env, optionalStringValue); - if (!optionalStringNull && optionalStringHasValue) + jobject groupKeyEpochStartTime = nullptr; + if (!groupKeyEpochStartTimeNull && groupKeyEpochStartTimeHasValue) { - optionalString = jstring(optionalStringStr.jniValue()); + jclass groupKeyEpochStartTimeEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", groupKeyEpochStartTimeEntryCls); + chip::JniClass groupKeyEpochStartTimeJniClass(groupKeyEpochStartTimeEntryCls); + jmethodID groupKeyEpochStartTimeEntryTypeCtor = env->GetMethodID(groupKeyEpochStartTimeEntryCls, "", "(J)V"); + groupKeyEpochStartTime = + env->NewObject(groupKeyEpochStartTimeEntryCls, groupKeyEpochStartTimeEntryTypeCtor, groupKeyEpochStartTimeValue); } - jobject optionalStringOptional = nullptr; - chip::JniReferences::GetInstance().CreateOptional(optionalString, optionalStringOptional); - bool nullableOptionalStringNull = false; - bool nullableOptionalStringHasValue = true; + bool groupKeySecurityPolicyNull = false; + bool groupKeySecurityPolicyHasValue = true; - chip::CharSpan nullableOptionalStringValue; - nullableOptionalStringHasValue = entry.nullableOptionalString.HasValue(); - if (nullableOptionalStringHasValue) - { - auto nullableOptionalStringValueFromOptional = entry.nullableOptionalString.Value(); - nullableOptionalStringNull = nullableOptionalStringValueFromOptional.IsNull(); - if (!nullableOptionalStringNull) - { - nullableOptionalStringValue = nullableOptionalStringValueFromOptional.Value(); - } - } + chip::app::Clusters::GroupKeyManagement::GroupKeySecurityPolicy groupKeySecurityPolicyValue = entry.groupKeySecurityPolicy; - jstring nullableOptionalString = nullptr; - chip::UtfString nullableOptionalStringStr(env, nullableOptionalStringValue); - if (!nullableOptionalStringNull && nullableOptionalStringHasValue) + jobject groupKeySecurityPolicy = nullptr; + if (!groupKeySecurityPolicyNull && groupKeySecurityPolicyHasValue) { - nullableOptionalString = jstring(nullableOptionalStringStr.jniValue()); + jclass groupKeySecurityPolicyEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", groupKeySecurityPolicyEntryCls); + chip::JniClass groupKeySecurityPolicyJniClass(groupKeySecurityPolicyEntryCls); + jmethodID groupKeySecurityPolicyEntryTypeCtor = env->GetMethodID(groupKeySecurityPolicyEntryCls, "", "(I)V"); + groupKeySecurityPolicy = + env->NewObject(groupKeySecurityPolicyEntryCls, groupKeySecurityPolicyEntryTypeCtor, groupKeySecurityPolicyValue); } - jobject nullableOptionalStringOptional = nullptr; - chip::JniReferences::GetInstance().CreateOptional(nullableOptionalString, nullableOptionalStringOptional); - - jobject attributeObj = - env->NewObject(attributeClass, attributeCtor, nullableInt, optionalIntOptional, nullableOptionalIntOptional, - nullableString, optionalStringOptional, nullableOptionalStringOptional); - VerifyOrReturn(attributeObj != nullptr, - ChipLogError(Zcl, "Could not create ListNullablesAndOptionalsStructAttribute object")); + jobject attributeObj = env->NewObject(attributeClass, attributeCtor, vendorId, groupKeyIndex, groupKeyRoot, + groupKeyEpochStartTime, groupKeySecurityPolicy); + VerifyOrReturn(attributeObj != nullptr, ChipLogError(Zcl, "Could not create GroupKeysAttribute object")); env->CallBooleanMethod(arrayListObj, arrayListAddMethod, attributeObj); } VerifyOrReturn(iter.GetStatus() == CHIP_NO_ERROR, - ChipLogError(Zcl, "Error decoding ListNullablesAndOptionalsStructAttribute value: %" CHIP_ERROR_FORMAT, - iter.GetStatus().Format())); + ChipLogError(Zcl, "Error decoding GroupKeysAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); env->ExceptionClear(); env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPTestClusterListLongOctetStringAttributeCallback::CHIPTestClusterListLongOctetStringAttributeCallback(jobject javaCallback, - bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), +CHIPGroupKeyManagementAttributeListAttributeCallback::CHIPGroupKeyManagementAttributeListAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -5270,7 +5173,7 @@ CHIPTestClusterListLongOctetStringAttributeCallback::CHIPTestClusterListLongOcte } } -CHIPTestClusterListLongOctetStringAttributeCallback::~CHIPTestClusterListLongOctetStringAttributeCallback() +CHIPGroupKeyManagementAttributeListAttributeCallback::~CHIPGroupKeyManagementAttributeListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -5281,8 +5184,8 @@ CHIPTestClusterListLongOctetStringAttributeCallback::~CHIPTestClusterListLongOct env->DeleteGlobalRef(javaCallbackRef); } -void CHIPTestClusterListLongOctetStringAttributeCallback::CallbackFn( - void * context, const chip::app::DataModel::DecodableList & list) +void CHIPGroupKeyManagementAttributeListAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -5291,8 +5194,8 @@ void CHIPTestClusterListLongOctetStringAttributeCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; @@ -5317,31 +5220,32 @@ void CHIPTestClusterListLongOctetStringAttributeCallback::CallbackFn( auto iter = list.begin(); while (iter.Next()) { - auto & entry = iter.GetValue(); - bool entryNull = false; - chip::ByteSpan entryValue = entry; + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; - jbyteArray entryObject = nullptr; + jobject entryObject = nullptr; if (!entryNull) { - entryObject = env->NewByteArray(entryValue.size()); - env->SetByteArrayRegion(entryObject, 0, entryValue.size(), reinterpret_cast(entryValue.data())); + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); } env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); } VerifyOrReturn( iter.GetStatus() == CHIP_NO_ERROR, - ChipLogError(Zcl, "Error decoding ListLongOctetStringAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); env->ExceptionClear(); env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPTestClusterNullableBooleanAttributeCallback::CHIPTestClusterNullableBooleanAttributeCallback(jobject javaCallback, - bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), - keepAlive(keepAlive) +CHIPGroupsAttributeListAttributeCallback::CHIPGroupsAttributeListAttributeCallback(jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -5357,7 +5261,7 @@ CHIPTestClusterNullableBooleanAttributeCallback::CHIPTestClusterNullableBooleanA } } -CHIPTestClusterNullableBooleanAttributeCallback::~CHIPTestClusterNullableBooleanAttributeCallback() +CHIPGroupsAttributeListAttributeCallback::~CHIPGroupsAttributeListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -5368,7 +5272,8 @@ CHIPTestClusterNullableBooleanAttributeCallback::~CHIPTestClusterNullableBoolean env->DeleteGlobalRef(javaCallbackRef); } -void CHIPTestClusterNullableBooleanAttributeCallback::CallbackFn(void * context, const chip::app::DataModel::Nullable & value) +void CHIPGroupsAttributeListAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -5376,32 +5281,59 @@ void CHIPTestClusterNullableBooleanAttributeCallback::CallbackFn(void * context, jobject javaCallbackRef; VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; VerifyOrReturn(javaCallbackRef != nullptr, ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + jmethodID javaMethod; - err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Boolean;)V", &javaMethod); + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jobject javaValue; + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; - std::string javaValueClassName = "java/lang/Boolean"; - std::string javaValueCtorSignature = "(Z)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), - value.Value(), javaValue); + jobject entryObject = nullptr; + if (!entryNull) + { + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); + } - env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPTestClusterNullableBitmap16AttributeCallback::CHIPTestClusterNullableBitmap16AttributeCallback(jobject javaCallback, - bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), - keepAlive(keepAlive) +CHIPIdentifyAttributeListAttributeCallback::CHIPIdentifyAttributeListAttributeCallback(jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -5417,7 +5349,7 @@ CHIPTestClusterNullableBitmap16AttributeCallback::CHIPTestClusterNullableBitmap1 } } -CHIPTestClusterNullableBitmap16AttributeCallback::~CHIPTestClusterNullableBitmap16AttributeCallback() +CHIPIdentifyAttributeListAttributeCallback::~CHIPIdentifyAttributeListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -5428,8 +5360,8 @@ CHIPTestClusterNullableBitmap16AttributeCallback::~CHIPTestClusterNullableBitmap env->DeleteGlobalRef(javaCallbackRef); } -void CHIPTestClusterNullableBitmap16AttributeCallback::CallbackFn(void * context, - const chip::app::DataModel::Nullable & value) +void CHIPIdentifyAttributeListAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -5437,31 +5369,60 @@ void CHIPTestClusterNullableBitmap16AttributeCallback::CallbackFn(void * context jobject javaCallbackRef; VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; VerifyOrReturn(javaCallbackRef != nullptr, ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + jmethodID javaMethod; - err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jobject javaValue; + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; - std::string javaValueClassName = "java/lang/Integer"; - std::string javaValueCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), - value.Value(), javaValue); + jobject entryObject = nullptr; + if (!entryNull) + { + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); + } - env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPTestClusterNullableBitmap32AttributeCallback::CHIPTestClusterNullableBitmap32AttributeCallback(jobject javaCallback, - bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), +CHIPIlluminanceMeasurementMeasuredValueAttributeCallback::CHIPIlluminanceMeasurementMeasuredValueAttributeCallback( + jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -5478,7 +5439,7 @@ CHIPTestClusterNullableBitmap32AttributeCallback::CHIPTestClusterNullableBitmap3 } } -CHIPTestClusterNullableBitmap32AttributeCallback::~CHIPTestClusterNullableBitmap32AttributeCallback() +CHIPIlluminanceMeasurementMeasuredValueAttributeCallback::~CHIPIlluminanceMeasurementMeasuredValueAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -5489,8 +5450,8 @@ CHIPTestClusterNullableBitmap32AttributeCallback::~CHIPTestClusterNullableBitmap env->DeleteGlobalRef(javaCallbackRef); } -void CHIPTestClusterNullableBitmap32AttributeCallback::CallbackFn(void * context, - const chip::app::DataModel::Nullable & value) +void CHIPIlluminanceMeasurementMeasuredValueAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::Nullable & value) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -5498,8 +5459,8 @@ void CHIPTestClusterNullableBitmap32AttributeCallback::CallbackFn(void * context jobject javaCallbackRef; VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; @@ -5507,22 +5468,22 @@ void CHIPTestClusterNullableBitmap32AttributeCallback::CallbackFn(void * context ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); jmethodID javaMethod; - err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod); + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); jobject javaValue; - std::string javaValueClassName = "java/lang/Long"; - std::string javaValueCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), + std::string javaValueClassName = "java/lang/Integer"; + std::string javaValueCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), value.Value(), javaValue); env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); } -CHIPTestClusterNullableBitmap64AttributeCallback::CHIPTestClusterNullableBitmap64AttributeCallback(jobject javaCallback, - bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), +CHIPIlluminanceMeasurementMinMeasuredValueAttributeCallback::CHIPIlluminanceMeasurementMinMeasuredValueAttributeCallback( + jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -5539,7 +5500,7 @@ CHIPTestClusterNullableBitmap64AttributeCallback::CHIPTestClusterNullableBitmap6 } } -CHIPTestClusterNullableBitmap64AttributeCallback::~CHIPTestClusterNullableBitmap64AttributeCallback() +CHIPIlluminanceMeasurementMinMeasuredValueAttributeCallback::~CHIPIlluminanceMeasurementMinMeasuredValueAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -5550,8 +5511,8 @@ CHIPTestClusterNullableBitmap64AttributeCallback::~CHIPTestClusterNullableBitmap env->DeleteGlobalRef(javaCallbackRef); } -void CHIPTestClusterNullableBitmap64AttributeCallback::CallbackFn(void * context, - const chip::app::DataModel::Nullable & value) +void CHIPIlluminanceMeasurementMinMeasuredValueAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::Nullable & value) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -5559,8 +5520,8 @@ void CHIPTestClusterNullableBitmap64AttributeCallback::CallbackFn(void * context jobject javaCallbackRef; VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; @@ -5568,22 +5529,22 @@ void CHIPTestClusterNullableBitmap64AttributeCallback::CallbackFn(void * context ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); jmethodID javaMethod; - err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod); + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); jobject javaValue; - std::string javaValueClassName = "java/lang/Long"; - std::string javaValueCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), + std::string javaValueClassName = "java/lang/Integer"; + std::string javaValueCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), value.Value(), javaValue); env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); } -CHIPTestClusterNullableInt16uAttributeCallback::CHIPTestClusterNullableInt16uAttributeCallback(jobject javaCallback, - bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), +CHIPIlluminanceMeasurementMaxMeasuredValueAttributeCallback::CHIPIlluminanceMeasurementMaxMeasuredValueAttributeCallback( + jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -5600,7 +5561,7 @@ CHIPTestClusterNullableInt16uAttributeCallback::CHIPTestClusterNullableInt16uAtt } } -CHIPTestClusterNullableInt16uAttributeCallback::~CHIPTestClusterNullableInt16uAttributeCallback() +CHIPIlluminanceMeasurementMaxMeasuredValueAttributeCallback::~CHIPIlluminanceMeasurementMaxMeasuredValueAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -5611,8 +5572,8 @@ CHIPTestClusterNullableInt16uAttributeCallback::~CHIPTestClusterNullableInt16uAt env->DeleteGlobalRef(javaCallbackRef); } -void CHIPTestClusterNullableInt16uAttributeCallback::CallbackFn(void * context, - const chip::app::DataModel::Nullable & value) +void CHIPIlluminanceMeasurementMaxMeasuredValueAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::Nullable & value) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -5620,8 +5581,8 @@ void CHIPTestClusterNullableInt16uAttributeCallback::CallbackFn(void * context, jobject javaCallbackRef; VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; @@ -5642,9 +5603,9 @@ void CHIPTestClusterNullableInt16uAttributeCallback::CallbackFn(void * context, env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); } -CHIPTestClusterNullableInt24uAttributeCallback::CHIPTestClusterNullableInt24uAttributeCallback(jobject javaCallback, - bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), +CHIPIlluminanceMeasurementAttributeListAttributeCallback::CHIPIlluminanceMeasurementAttributeListAttributeCallback( + jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -5661,7 +5622,7 @@ CHIPTestClusterNullableInt24uAttributeCallback::CHIPTestClusterNullableInt24uAtt } } -CHIPTestClusterNullableInt24uAttributeCallback::~CHIPTestClusterNullableInt24uAttributeCallback() +CHIPIlluminanceMeasurementAttributeListAttributeCallback::~CHIPIlluminanceMeasurementAttributeListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -5672,8 +5633,8 @@ CHIPTestClusterNullableInt24uAttributeCallback::~CHIPTestClusterNullableInt24uAt env->DeleteGlobalRef(javaCallbackRef); } -void CHIPTestClusterNullableInt24uAttributeCallback::CallbackFn(void * context, - const chip::app::DataModel::Nullable & value) +void CHIPIlluminanceMeasurementAttributeListAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -5681,32 +5642,59 @@ void CHIPTestClusterNullableInt24uAttributeCallback::CallbackFn(void * context, jobject javaCallbackRef; VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; VerifyOrReturn(javaCallbackRef != nullptr, ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + jmethodID javaMethod; - err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod); + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jobject javaValue; + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; - std::string javaValueClassName = "java/lang/Long"; - std::string javaValueCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), - value.Value(), javaValue); + jobject entryObject = nullptr; + if (!entryNull) + { + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); + } - env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPTestClusterNullableInt32uAttributeCallback::CHIPTestClusterNullableInt32uAttributeCallback(jobject javaCallback, - bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), - keepAlive(keepAlive) +CHIPKeypadInputAttributeListAttributeCallback::CHIPKeypadInputAttributeListAttributeCallback(jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -5722,7 +5710,7 @@ CHIPTestClusterNullableInt32uAttributeCallback::CHIPTestClusterNullableInt32uAtt } } -CHIPTestClusterNullableInt32uAttributeCallback::~CHIPTestClusterNullableInt32uAttributeCallback() +CHIPKeypadInputAttributeListAttributeCallback::~CHIPKeypadInputAttributeListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -5733,8 +5721,8 @@ CHIPTestClusterNullableInt32uAttributeCallback::~CHIPTestClusterNullableInt32uAt env->DeleteGlobalRef(javaCallbackRef); } -void CHIPTestClusterNullableInt32uAttributeCallback::CallbackFn(void * context, - const chip::app::DataModel::Nullable & value) +void CHIPKeypadInputAttributeListAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -5742,31 +5730,60 @@ void CHIPTestClusterNullableInt32uAttributeCallback::CallbackFn(void * context, jobject javaCallbackRef; VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; VerifyOrReturn(javaCallbackRef != nullptr, ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + jmethodID javaMethod; - err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod); + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jobject javaValue; + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; - std::string javaValueClassName = "java/lang/Long"; - std::string javaValueCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), - value.Value(), javaValue); + jobject entryObject = nullptr; + if (!entryNull) + { + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); + } - env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPTestClusterNullableInt40uAttributeCallback::CHIPTestClusterNullableInt40uAttributeCallback(jobject javaCallback, - bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), +CHIPLevelControlOnTransitionTimeAttributeCallback::CHIPLevelControlOnTransitionTimeAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -5783,7 +5800,7 @@ CHIPTestClusterNullableInt40uAttributeCallback::CHIPTestClusterNullableInt40uAtt } } -CHIPTestClusterNullableInt40uAttributeCallback::~CHIPTestClusterNullableInt40uAttributeCallback() +CHIPLevelControlOnTransitionTimeAttributeCallback::~CHIPLevelControlOnTransitionTimeAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -5794,8 +5811,8 @@ CHIPTestClusterNullableInt40uAttributeCallback::~CHIPTestClusterNullableInt40uAt env->DeleteGlobalRef(javaCallbackRef); } -void CHIPTestClusterNullableInt40uAttributeCallback::CallbackFn(void * context, - const chip::app::DataModel::Nullable & value) +void CHIPLevelControlOnTransitionTimeAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::Nullable & value) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -5803,8 +5820,8 @@ void CHIPTestClusterNullableInt40uAttributeCallback::CallbackFn(void * context, jobject javaCallbackRef; VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; @@ -5812,22 +5829,22 @@ void CHIPTestClusterNullableInt40uAttributeCallback::CallbackFn(void * context, ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); jmethodID javaMethod; - err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod); + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); jobject javaValue; - std::string javaValueClassName = "java/lang/Long"; - std::string javaValueCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), + std::string javaValueClassName = "java/lang/Integer"; + std::string javaValueCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), value.Value(), javaValue); env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); } -CHIPTestClusterNullableInt48uAttributeCallback::CHIPTestClusterNullableInt48uAttributeCallback(jobject javaCallback, - bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), +CHIPLevelControlOffTransitionTimeAttributeCallback::CHIPLevelControlOffTransitionTimeAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -5844,7 +5861,7 @@ CHIPTestClusterNullableInt48uAttributeCallback::CHIPTestClusterNullableInt48uAtt } } -CHIPTestClusterNullableInt48uAttributeCallback::~CHIPTestClusterNullableInt48uAttributeCallback() +CHIPLevelControlOffTransitionTimeAttributeCallback::~CHIPLevelControlOffTransitionTimeAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -5855,8 +5872,8 @@ CHIPTestClusterNullableInt48uAttributeCallback::~CHIPTestClusterNullableInt48uAt env->DeleteGlobalRef(javaCallbackRef); } -void CHIPTestClusterNullableInt48uAttributeCallback::CallbackFn(void * context, - const chip::app::DataModel::Nullable & value) +void CHIPLevelControlOffTransitionTimeAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::Nullable & value) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -5864,8 +5881,8 @@ void CHIPTestClusterNullableInt48uAttributeCallback::CallbackFn(void * context, jobject javaCallbackRef; VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; @@ -5873,22 +5890,22 @@ void CHIPTestClusterNullableInt48uAttributeCallback::CallbackFn(void * context, ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); jmethodID javaMethod; - err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod); + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); jobject javaValue; - std::string javaValueClassName = "java/lang/Long"; - std::string javaValueCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), + std::string javaValueClassName = "java/lang/Integer"; + std::string javaValueCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), value.Value(), javaValue); env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); } -CHIPTestClusterNullableInt56uAttributeCallback::CHIPTestClusterNullableInt56uAttributeCallback(jobject javaCallback, +CHIPLevelControlAttributeListAttributeCallback::CHIPLevelControlAttributeListAttributeCallback(jobject javaCallback, bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -5905,7 +5922,7 @@ CHIPTestClusterNullableInt56uAttributeCallback::CHIPTestClusterNullableInt56uAtt } } -CHIPTestClusterNullableInt56uAttributeCallback::~CHIPTestClusterNullableInt56uAttributeCallback() +CHIPLevelControlAttributeListAttributeCallback::~CHIPLevelControlAttributeListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -5916,8 +5933,8 @@ CHIPTestClusterNullableInt56uAttributeCallback::~CHIPTestClusterNullableInt56uAt env->DeleteGlobalRef(javaCallbackRef); } -void CHIPTestClusterNullableInt56uAttributeCallback::CallbackFn(void * context, - const chip::app::DataModel::Nullable & value) +void CHIPLevelControlAttributeListAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -5925,32 +5942,59 @@ void CHIPTestClusterNullableInt56uAttributeCallback::CallbackFn(void * context, jobject javaCallbackRef; VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; VerifyOrReturn(javaCallbackRef != nullptr, ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + jmethodID javaMethod; - err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod); + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jobject javaValue; + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; - std::string javaValueClassName = "java/lang/Long"; - std::string javaValueCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), - value.Value(), javaValue); + jobject entryObject = nullptr; + if (!entryNull) + { + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); + } - env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPTestClusterNullableInt64uAttributeCallback::CHIPTestClusterNullableInt64uAttributeCallback(jobject javaCallback, - bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), - keepAlive(keepAlive) +CHIPLowPowerAttributeListAttributeCallback::CHIPLowPowerAttributeListAttributeCallback(jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -5966,7 +6010,7 @@ CHIPTestClusterNullableInt64uAttributeCallback::CHIPTestClusterNullableInt64uAtt } } -CHIPTestClusterNullableInt64uAttributeCallback::~CHIPTestClusterNullableInt64uAttributeCallback() +CHIPLowPowerAttributeListAttributeCallback::~CHIPLowPowerAttributeListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -5977,8 +6021,8 @@ CHIPTestClusterNullableInt64uAttributeCallback::~CHIPTestClusterNullableInt64uAt env->DeleteGlobalRef(javaCallbackRef); } -void CHIPTestClusterNullableInt64uAttributeCallback::CallbackFn(void * context, - const chip::app::DataModel::Nullable & value) +void CHIPLowPowerAttributeListAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -5986,30 +6030,59 @@ void CHIPTestClusterNullableInt64uAttributeCallback::CallbackFn(void * context, jobject javaCallbackRef; VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; VerifyOrReturn(javaCallbackRef != nullptr, ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + jmethodID javaMethod; - err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod); + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jobject javaValue; + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; - std::string javaValueClassName = "java/lang/Long"; - std::string javaValueCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), - value.Value(), javaValue); + jobject entryObject = nullptr; + if (!entryNull) + { + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); + } - env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPTestClusterNullableInt8sAttributeCallback::CHIPTestClusterNullableInt8sAttributeCallback(jobject javaCallback, bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) +CHIPMediaInputMediaInputListAttributeCallback::CHIPMediaInputMediaInputListAttributeCallback(jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -6025,7 +6098,7 @@ CHIPTestClusterNullableInt8sAttributeCallback::CHIPTestClusterNullableInt8sAttri } } -CHIPTestClusterNullableInt8sAttributeCallback::~CHIPTestClusterNullableInt8sAttributeCallback() +CHIPMediaInputMediaInputListAttributeCallback::~CHIPMediaInputMediaInputListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -6036,40 +6109,125 @@ CHIPTestClusterNullableInt8sAttributeCallback::~CHIPTestClusterNullableInt8sAttr env->DeleteGlobalRef(javaCallbackRef); } -void CHIPTestClusterNullableInt8sAttributeCallback::CallbackFn(void * context, const chip::app::DataModel::Nullable & value) -{ +void CHIPMediaInputMediaInputListAttributeCallback::CallbackFn( + void * context, + const chip::app::DataModel::DecodableList & list) +{ chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); jobject javaCallbackRef; VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; VerifyOrReturn(javaCallbackRef != nullptr, ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + jmethodID javaMethod; - err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jobject javaValue; + jclass attributeClass; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipClusters$MediaInputCluster$MediaInputListAttribute", attributeClass); + VerifyOrReturn( + err == CHIP_NO_ERROR, + ChipLogError(Zcl, "Could not find class chip/devicecontroller/ChipClusters$MediaInputCluster$MediaInputListAttribute")); + chip::JniClass attributeJniClass(attributeClass); + jmethodID attributeCtor = + env->GetMethodID(attributeClass, "", "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;)V"); + VerifyOrReturn(attributeCtor != nullptr, ChipLogError(Zcl, "Could not find MediaInputListAttribute constructor")); - std::string javaValueClassName = "java/lang/Integer"; - std::string javaValueCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), - value.Value(), javaValue); + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + (void) entry; + bool indexNull = false; + bool indexHasValue = true; - env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); + uint8_t indexValue = entry.index; + + jobject index = nullptr; + if (!indexNull && indexHasValue) + { + jclass indexEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", indexEntryCls); + chip::JniClass indexJniClass(indexEntryCls); + jmethodID indexEntryTypeCtor = env->GetMethodID(indexEntryCls, "", "(I)V"); + index = env->NewObject(indexEntryCls, indexEntryTypeCtor, indexValue); + } + + bool inputTypeNull = false; + bool inputTypeHasValue = true; + + chip::app::Clusters::MediaInput::MediaInputType inputTypeValue = entry.inputType; + + jobject inputType = nullptr; + if (!inputTypeNull && inputTypeHasValue) + { + jclass inputTypeEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", inputTypeEntryCls); + chip::JniClass inputTypeJniClass(inputTypeEntryCls); + jmethodID inputTypeEntryTypeCtor = env->GetMethodID(inputTypeEntryCls, "", "(I)V"); + inputType = env->NewObject(inputTypeEntryCls, inputTypeEntryTypeCtor, inputTypeValue); + } + + bool nameNull = false; + bool nameHasValue = true; + + chip::CharSpan nameValue = entry.name; + + jstring name = nullptr; + chip::UtfString nameStr(env, nameValue); + if (!nameNull && nameHasValue) + { + name = jstring(nameStr.jniValue()); + } + + bool descriptionNull = false; + bool descriptionHasValue = true; + + chip::CharSpan descriptionValue = entry.description; + + jstring description = nullptr; + chip::UtfString descriptionStr(env, descriptionValue); + if (!descriptionNull && descriptionHasValue) + { + description = jstring(descriptionStr.jniValue()); + } + + jobject attributeObj = env->NewObject(attributeClass, attributeCtor, index, inputType, name, description); + VerifyOrReturn(attributeObj != nullptr, ChipLogError(Zcl, "Could not create MediaInputListAttribute object")); + + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, attributeObj); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding MediaInputListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPTestClusterNullableInt16sAttributeCallback::CHIPTestClusterNullableInt16sAttributeCallback(jobject javaCallback, - bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), - keepAlive(keepAlive) +CHIPMediaInputAttributeListAttributeCallback::CHIPMediaInputAttributeListAttributeCallback(jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -6085,7 +6243,7 @@ CHIPTestClusterNullableInt16sAttributeCallback::CHIPTestClusterNullableInt16sAtt } } -CHIPTestClusterNullableInt16sAttributeCallback::~CHIPTestClusterNullableInt16sAttributeCallback() +CHIPMediaInputAttributeListAttributeCallback::~CHIPMediaInputAttributeListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -6096,8 +6254,8 @@ CHIPTestClusterNullableInt16sAttributeCallback::~CHIPTestClusterNullableInt16sAt env->DeleteGlobalRef(javaCallbackRef); } -void CHIPTestClusterNullableInt16sAttributeCallback::CallbackFn(void * context, - const chip::app::DataModel::Nullable & value) +void CHIPMediaInputAttributeListAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -6105,31 +6263,60 @@ void CHIPTestClusterNullableInt16sAttributeCallback::CallbackFn(void * context, jobject javaCallbackRef; VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; VerifyOrReturn(javaCallbackRef != nullptr, ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + jmethodID javaMethod; - err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jobject javaValue; + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; - std::string javaValueClassName = "java/lang/Integer"; - std::string javaValueCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), - value.Value(), javaValue); + jobject entryObject = nullptr; + if (!entryNull) + { + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); + } - env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPTestClusterNullableInt24sAttributeCallback::CHIPTestClusterNullableInt24sAttributeCallback(jobject javaCallback, - bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), +CHIPMediaPlaybackAttributeListAttributeCallback::CHIPMediaPlaybackAttributeListAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -6146,7 +6333,7 @@ CHIPTestClusterNullableInt24sAttributeCallback::CHIPTestClusterNullableInt24sAtt } } -CHIPTestClusterNullableInt24sAttributeCallback::~CHIPTestClusterNullableInt24sAttributeCallback() +CHIPMediaPlaybackAttributeListAttributeCallback::~CHIPMediaPlaybackAttributeListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -6157,8 +6344,8 @@ CHIPTestClusterNullableInt24sAttributeCallback::~CHIPTestClusterNullableInt24sAt env->DeleteGlobalRef(javaCallbackRef); } -void CHIPTestClusterNullableInt24sAttributeCallback::CallbackFn(void * context, - const chip::app::DataModel::Nullable & value) +void CHIPMediaPlaybackAttributeListAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -6166,32 +6353,59 @@ void CHIPTestClusterNullableInt24sAttributeCallback::CallbackFn(void * context, jobject javaCallbackRef; VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; VerifyOrReturn(javaCallbackRef != nullptr, ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + jmethodID javaMethod; - err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod); + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jobject javaValue; + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; - std::string javaValueClassName = "java/lang/Long"; - std::string javaValueCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), - value.Value(), javaValue); + jobject entryObject = nullptr; + if (!entryNull) + { + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); + } - env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPTestClusterNullableInt32sAttributeCallback::CHIPTestClusterNullableInt32sAttributeCallback(jobject javaCallback, - bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), - keepAlive(keepAlive) +CHIPModeSelectSupportedModesAttributeCallback::CHIPModeSelectSupportedModesAttributeCallback(jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -6207,7 +6421,7 @@ CHIPTestClusterNullableInt32sAttributeCallback::CHIPTestClusterNullableInt32sAtt } } -CHIPTestClusterNullableInt32sAttributeCallback::~CHIPTestClusterNullableInt32sAttributeCallback() +CHIPModeSelectSupportedModesAttributeCallback::~CHIPModeSelectSupportedModesAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -6218,8 +6432,9 @@ CHIPTestClusterNullableInt32sAttributeCallback::~CHIPTestClusterNullableInt32sAt env->DeleteGlobalRef(javaCallbackRef); } -void CHIPTestClusterNullableInt32sAttributeCallback::CallbackFn(void * context, - const chip::app::DataModel::Nullable & value) +void CHIPModeSelectSupportedModesAttributeCallback::CallbackFn( + void * context, + const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -6227,32 +6442,103 @@ void CHIPTestClusterNullableInt32sAttributeCallback::CallbackFn(void * context, jobject javaCallbackRef; VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; VerifyOrReturn(javaCallbackRef != nullptr, ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + jmethodID javaMethod; - err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod); + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jobject javaValue; + jclass attributeClass; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipClusters$ModeSelectCluster$SupportedModesAttribute", attributeClass); + VerifyOrReturn( + err == CHIP_NO_ERROR, + ChipLogError(Zcl, "Could not find class chip/devicecontroller/ChipClusters$ModeSelectCluster$SupportedModesAttribute")); + chip::JniClass attributeJniClass(attributeClass); + jmethodID attributeCtor = + env->GetMethodID(attributeClass, "", "(Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Long;)V"); + VerifyOrReturn(attributeCtor != nullptr, ChipLogError(Zcl, "Could not find SupportedModesAttribute constructor")); - std::string javaValueClassName = "java/lang/Long"; - std::string javaValueCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), - value.Value(), javaValue); + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + (void) entry; + bool labelNull = false; + bool labelHasValue = true; - env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); + chip::CharSpan labelValue = entry.label; + + jstring label = nullptr; + chip::UtfString labelStr(env, labelValue); + if (!labelNull && labelHasValue) + { + label = jstring(labelStr.jniValue()); + } + + bool modeNull = false; + bool modeHasValue = true; + + uint8_t modeValue = entry.mode; + + jobject mode = nullptr; + if (!modeNull && modeHasValue) + { + jclass modeEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", modeEntryCls); + chip::JniClass modeJniClass(modeEntryCls); + jmethodID modeEntryTypeCtor = env->GetMethodID(modeEntryCls, "", "(I)V"); + mode = env->NewObject(modeEntryCls, modeEntryTypeCtor, modeValue); + } + + bool semanticTagNull = false; + bool semanticTagHasValue = true; + + uint32_t semanticTagValue = entry.semanticTag; + + jobject semanticTag = nullptr; + if (!semanticTagNull && semanticTagHasValue) + { + jclass semanticTagEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", semanticTagEntryCls); + chip::JniClass semanticTagJniClass(semanticTagEntryCls); + jmethodID semanticTagEntryTypeCtor = env->GetMethodID(semanticTagEntryCls, "", "(J)V"); + semanticTag = env->NewObject(semanticTagEntryCls, semanticTagEntryTypeCtor, semanticTagValue); + } + + jobject attributeObj = env->NewObject(attributeClass, attributeCtor, label, mode, semanticTag); + VerifyOrReturn(attributeObj != nullptr, ChipLogError(Zcl, "Could not create SupportedModesAttribute object")); + + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, attributeObj); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding SupportedModesAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPTestClusterNullableInt40sAttributeCallback::CHIPTestClusterNullableInt40sAttributeCallback(jobject javaCallback, - bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), - keepAlive(keepAlive) +CHIPModeSelectAttributeListAttributeCallback::CHIPModeSelectAttributeListAttributeCallback(jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -6268,7 +6554,7 @@ CHIPTestClusterNullableInt40sAttributeCallback::CHIPTestClusterNullableInt40sAtt } } -CHIPTestClusterNullableInt40sAttributeCallback::~CHIPTestClusterNullableInt40sAttributeCallback() +CHIPModeSelectAttributeListAttributeCallback::~CHIPModeSelectAttributeListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -6279,8 +6565,8 @@ CHIPTestClusterNullableInt40sAttributeCallback::~CHIPTestClusterNullableInt40sAt env->DeleteGlobalRef(javaCallbackRef); } -void CHIPTestClusterNullableInt40sAttributeCallback::CallbackFn(void * context, - const chip::app::DataModel::Nullable & value) +void CHIPModeSelectAttributeListAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -6288,31 +6574,60 @@ void CHIPTestClusterNullableInt40sAttributeCallback::CallbackFn(void * context, jobject javaCallbackRef; VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; VerifyOrReturn(javaCallbackRef != nullptr, ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + jmethodID javaMethod; - err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod); + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jobject javaValue; + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; - std::string javaValueClassName = "java/lang/Long"; - std::string javaValueCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), - value.Value(), javaValue); + jobject entryObject = nullptr; + if (!entryNull) + { + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); + } - env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPTestClusterNullableInt48sAttributeCallback::CHIPTestClusterNullableInt48sAttributeCallback(jobject javaCallback, - bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), +CHIPNetworkCommissioningAttributeListAttributeCallback::CHIPNetworkCommissioningAttributeListAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -6329,7 +6644,7 @@ CHIPTestClusterNullableInt48sAttributeCallback::CHIPTestClusterNullableInt48sAtt } } -CHIPTestClusterNullableInt48sAttributeCallback::~CHIPTestClusterNullableInt48sAttributeCallback() +CHIPNetworkCommissioningAttributeListAttributeCallback::~CHIPNetworkCommissioningAttributeListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -6340,8 +6655,8 @@ CHIPTestClusterNullableInt48sAttributeCallback::~CHIPTestClusterNullableInt48sAt env->DeleteGlobalRef(javaCallbackRef); } -void CHIPTestClusterNullableInt48sAttributeCallback::CallbackFn(void * context, - const chip::app::DataModel::Nullable & value) +void CHIPNetworkCommissioningAttributeListAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -6349,31 +6664,60 @@ void CHIPTestClusterNullableInt48sAttributeCallback::CallbackFn(void * context, jobject javaCallbackRef; VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; VerifyOrReturn(javaCallbackRef != nullptr, ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + jmethodID javaMethod; - err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod); + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jobject javaValue; + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; - std::string javaValueClassName = "java/lang/Long"; - std::string javaValueCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), - value.Value(), javaValue); + jobject entryObject = nullptr; + if (!entryNull) + { + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); + } - env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPTestClusterNullableInt56sAttributeCallback::CHIPTestClusterNullableInt56sAttributeCallback(jobject javaCallback, - bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), +CHIPOtaSoftwareUpdateProviderAttributeListAttributeCallback::CHIPOtaSoftwareUpdateProviderAttributeListAttributeCallback( + jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -6390,7 +6734,7 @@ CHIPTestClusterNullableInt56sAttributeCallback::CHIPTestClusterNullableInt56sAtt } } -CHIPTestClusterNullableInt56sAttributeCallback::~CHIPTestClusterNullableInt56sAttributeCallback() +CHIPOtaSoftwareUpdateProviderAttributeListAttributeCallback::~CHIPOtaSoftwareUpdateProviderAttributeListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -6401,8 +6745,8 @@ CHIPTestClusterNullableInt56sAttributeCallback::~CHIPTestClusterNullableInt56sAt env->DeleteGlobalRef(javaCallbackRef); } -void CHIPTestClusterNullableInt56sAttributeCallback::CallbackFn(void * context, - const chip::app::DataModel::Nullable & value) +void CHIPOtaSoftwareUpdateProviderAttributeListAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -6410,31 +6754,60 @@ void CHIPTestClusterNullableInt56sAttributeCallback::CallbackFn(void * context, jobject javaCallbackRef; VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; VerifyOrReturn(javaCallbackRef != nullptr, ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + jmethodID javaMethod; - err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod); + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jobject javaValue; + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; - std::string javaValueClassName = "java/lang/Long"; - std::string javaValueCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), - value.Value(), javaValue); + jobject entryObject = nullptr; + if (!entryNull) + { + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); + } - env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPTestClusterNullableInt64sAttributeCallback::CHIPTestClusterNullableInt64sAttributeCallback(jobject javaCallback, - bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), +CHIPOtaSoftwareUpdateRequestorAttributeListAttributeCallback::CHIPOtaSoftwareUpdateRequestorAttributeListAttributeCallback( + jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -6451,7 +6824,7 @@ CHIPTestClusterNullableInt64sAttributeCallback::CHIPTestClusterNullableInt64sAtt } } -CHIPTestClusterNullableInt64sAttributeCallback::~CHIPTestClusterNullableInt64sAttributeCallback() +CHIPOtaSoftwareUpdateRequestorAttributeListAttributeCallback::~CHIPOtaSoftwareUpdateRequestorAttributeListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -6462,8 +6835,8 @@ CHIPTestClusterNullableInt64sAttributeCallback::~CHIPTestClusterNullableInt64sAt env->DeleteGlobalRef(javaCallbackRef); } -void CHIPTestClusterNullableInt64sAttributeCallback::CallbackFn(void * context, - const chip::app::DataModel::Nullable & value) +void CHIPOtaSoftwareUpdateRequestorAttributeListAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -6471,31 +6844,60 @@ void CHIPTestClusterNullableInt64sAttributeCallback::CallbackFn(void * context, jobject javaCallbackRef; VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; VerifyOrReturn(javaCallbackRef != nullptr, ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + jmethodID javaMethod; - err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod); + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jobject javaValue; + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; - std::string javaValueClassName = "java/lang/Long"; - std::string javaValueCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), - value.Value(), javaValue); + jobject entryObject = nullptr; + if (!entryNull) + { + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); + } - env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPTestClusterNullableEnum16AttributeCallback::CHIPTestClusterNullableEnum16AttributeCallback(jobject javaCallback, - bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), +CHIPOccupancySensingAttributeListAttributeCallback::CHIPOccupancySensingAttributeListAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -6512,7 +6914,7 @@ CHIPTestClusterNullableEnum16AttributeCallback::CHIPTestClusterNullableEnum16Att } } -CHIPTestClusterNullableEnum16AttributeCallback::~CHIPTestClusterNullableEnum16AttributeCallback() +CHIPOccupancySensingAttributeListAttributeCallback::~CHIPOccupancySensingAttributeListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -6523,8 +6925,8 @@ CHIPTestClusterNullableEnum16AttributeCallback::~CHIPTestClusterNullableEnum16At env->DeleteGlobalRef(javaCallbackRef); } -void CHIPTestClusterNullableEnum16AttributeCallback::CallbackFn(void * context, - const chip::app::DataModel::Nullable & value) +void CHIPOccupancySensingAttributeListAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -6532,32 +6934,59 @@ void CHIPTestClusterNullableEnum16AttributeCallback::CallbackFn(void * context, jobject javaCallbackRef; VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; VerifyOrReturn(javaCallbackRef != nullptr, ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); - jmethodID javaMethod; - err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); - jobject javaValue; + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - std::string javaValueClassName = "java/lang/Integer"; - std::string javaValueCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), - value.Value(), javaValue); + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; - env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); + jobject entryObject = nullptr; + if (!entryNull) + { + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); + } + + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPTestClusterNullableFloatSingleAttributeCallback::CHIPTestClusterNullableFloatSingleAttributeCallback(jobject javaCallback, - bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), - keepAlive(keepAlive) +CHIPOnOffAttributeListAttributeCallback::CHIPOnOffAttributeListAttributeCallback(jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -6573,7 +7002,7 @@ CHIPTestClusterNullableFloatSingleAttributeCallback::CHIPTestClusterNullableFloa } } -CHIPTestClusterNullableFloatSingleAttributeCallback::~CHIPTestClusterNullableFloatSingleAttributeCallback() +CHIPOnOffAttributeListAttributeCallback::~CHIPOnOffAttributeListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -6584,8 +7013,8 @@ CHIPTestClusterNullableFloatSingleAttributeCallback::~CHIPTestClusterNullableFlo env->DeleteGlobalRef(javaCallbackRef); } -void CHIPTestClusterNullableFloatSingleAttributeCallback::CallbackFn(void * context, - const chip::app::DataModel::Nullable & value) +void CHIPOnOffAttributeListAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -6593,31 +7022,60 @@ void CHIPTestClusterNullableFloatSingleAttributeCallback::CallbackFn(void * cont jobject javaCallbackRef; VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; VerifyOrReturn(javaCallbackRef != nullptr, ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + jmethodID javaMethod; - err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Float;)V", &javaMethod); + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jobject javaValue; + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; - std::string javaValueClassName = "java/lang/Float"; - std::string javaValueCtorSignature = "(F)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), - value.Value(), javaValue); + jobject entryObject = nullptr; + if (!entryNull) + { + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); + } - env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPTestClusterNullableFloatDoubleAttributeCallback::CHIPTestClusterNullableFloatDoubleAttributeCallback(jobject javaCallback, - bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), +CHIPOnOffSwitchConfigurationAttributeListAttributeCallback::CHIPOnOffSwitchConfigurationAttributeListAttributeCallback( + jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -6634,7 +7092,7 @@ CHIPTestClusterNullableFloatDoubleAttributeCallback::CHIPTestClusterNullableFloa } } -CHIPTestClusterNullableFloatDoubleAttributeCallback::~CHIPTestClusterNullableFloatDoubleAttributeCallback() +CHIPOnOffSwitchConfigurationAttributeListAttributeCallback::~CHIPOnOffSwitchConfigurationAttributeListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -6645,8 +7103,8 @@ CHIPTestClusterNullableFloatDoubleAttributeCallback::~CHIPTestClusterNullableFlo env->DeleteGlobalRef(javaCallbackRef); } -void CHIPTestClusterNullableFloatDoubleAttributeCallback::CallbackFn(void * context, - const chip::app::DataModel::Nullable & value) +void CHIPOnOffSwitchConfigurationAttributeListAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -6654,31 +7112,60 @@ void CHIPTestClusterNullableFloatDoubleAttributeCallback::CallbackFn(void * cont jobject javaCallbackRef; VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; VerifyOrReturn(javaCallbackRef != nullptr, ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + jmethodID javaMethod; - err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Double;)V", &javaMethod); + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jobject javaValue; + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; - std::string javaValueClassName = "java/lang/Double"; - std::string javaValueCtorSignature = "(D)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), - value.Value(), javaValue); + jobject entryObject = nullptr; + if (!entryNull) + { + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); + } - env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPTestClusterNullableOctetStringAttributeCallback::CHIPTestClusterNullableOctetStringAttributeCallback(jobject javaCallback, - bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), +CHIPOperationalCredentialsFabricsListAttributeCallback::CHIPOperationalCredentialsFabricsListAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -6695,7 +7182,7 @@ CHIPTestClusterNullableOctetStringAttributeCallback::CHIPTestClusterNullableOcte } } -CHIPTestClusterNullableOctetStringAttributeCallback::~CHIPTestClusterNullableOctetStringAttributeCallback() +CHIPOperationalCredentialsFabricsListAttributeCallback::~CHIPOperationalCredentialsFabricsListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -6706,8 +7193,10 @@ CHIPTestClusterNullableOctetStringAttributeCallback::~CHIPTestClusterNullableOct env->DeleteGlobalRef(javaCallbackRef); } -void CHIPTestClusterNullableOctetStringAttributeCallback::CallbackFn(void * context, - const chip::app::DataModel::Nullable & value) +void CHIPOperationalCredentialsFabricsListAttributeCallback::CallbackFn( + void * context, + const chip::app::DataModel::DecodableList< + chip::app::Clusters::OperationalCredentials::Structs::FabricDescriptor::DecodableType> & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -6715,88 +7204,148 @@ void CHIPTestClusterNullableOctetStringAttributeCallback::CallbackFn(void * cont jobject javaCallbackRef; VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; VerifyOrReturn(javaCallbackRef != nullptr, ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + jmethodID javaMethod; - err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "([B)V", &javaMethod); + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jobject javaValue; - - chip::ByteArray javaValueByteArray(env, value.Value()); - javaValue = javaValueByteArray.jniValue(); - - env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); -} + jclass attributeClass; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipClusters$OperationalCredentialsCluster$FabricsListAttribute", attributeClass); + VerifyOrReturn( + err == CHIP_NO_ERROR, + ChipLogError(Zcl, + "Could not find class chip/devicecontroller/ChipClusters$OperationalCredentialsCluster$FabricsListAttribute")); + chip::JniClass attributeJniClass(attributeClass); + jmethodID attributeCtor = env->GetMethodID( + attributeClass, "", "(Ljava/lang/Integer;[BLjava/lang/Integer;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;)V"); + VerifyOrReturn(attributeCtor != nullptr, ChipLogError(Zcl, "Could not find FabricsListAttribute constructor")); -CHIPTestClusterNullableCharStringAttributeCallback::CHIPTestClusterNullableCharStringAttributeCallback(jobject javaCallback, - bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), - keepAlive(keepAlive) -{ - JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) + auto iter = list.begin(); + while (iter.Next()) { - ChipLogError(Zcl, "Could not create global reference for Java callback"); - return; - } + auto & entry = iter.GetValue(); + (void) entry; + bool fabricIndexNull = false; + bool fabricIndexHasValue = true; - javaCallbackRef = env->NewGlobalRef(javaCallback); - if (javaCallbackRef == nullptr) - { - ChipLogError(Zcl, "Could not create global reference for Java callback"); - } -} + uint8_t fabricIndexValue = entry.fabricIndex; -CHIPTestClusterNullableCharStringAttributeCallback::~CHIPTestClusterNullableCharStringAttributeCallback() -{ - JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -} + jobject fabricIndex = nullptr; + if (!fabricIndexNull && fabricIndexHasValue) + { + jclass fabricIndexEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", fabricIndexEntryCls); + chip::JniClass fabricIndexJniClass(fabricIndexEntryCls); + jmethodID fabricIndexEntryTypeCtor = env->GetMethodID(fabricIndexEntryCls, "", "(I)V"); + fabricIndex = env->NewObject(fabricIndexEntryCls, fabricIndexEntryTypeCtor, fabricIndexValue); + } -void CHIPTestClusterNullableCharStringAttributeCallback::CallbackFn(void * context, - const chip::app::DataModel::Nullable & value) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; + bool rootPublicKeyNull = false; + bool rootPublicKeyHasValue = true; - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + chip::ByteSpan rootPublicKeyValue = entry.rootPublicKey; - // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. - javaCallbackRef = cppCallback.get()->javaCallbackRef; - VerifyOrReturn(javaCallbackRef != nullptr, - ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + jbyteArray rootPublicKey = nullptr; + if (!rootPublicKeyNull && rootPublicKeyHasValue) + { + rootPublicKey = env->NewByteArray(rootPublicKeyValue.size()); + env->SetByteArrayRegion(rootPublicKey, 0, rootPublicKeyValue.size(), + reinterpret_cast(rootPublicKeyValue.data())); + } - jmethodID javaMethod; - err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/String;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + bool vendorIdNull = false; + bool vendorIdHasValue = true; - jobject javaValue; + uint16_t vendorIdValue = entry.vendorId; - chip::UtfString javaValueUtfString(env, value.Value()); - javaValue = javaValueUtfString.jniValue(); + jobject vendorId = nullptr; + if (!vendorIdNull && vendorIdHasValue) + { + jclass vendorIdEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", vendorIdEntryCls); + chip::JniClass vendorIdJniClass(vendorIdEntryCls); + jmethodID vendorIdEntryTypeCtor = env->GetMethodID(vendorIdEntryCls, "", "(I)V"); + vendorId = env->NewObject(vendorIdEntryCls, vendorIdEntryTypeCtor, vendorIdValue); + } - env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); + bool fabricIdNull = false; + bool fabricIdHasValue = true; + + chip::FabricId fabricIdValue = entry.fabricId; + + jobject fabricId = nullptr; + if (!fabricIdNull && fabricIdHasValue) + { + jclass fabricIdEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", fabricIdEntryCls); + chip::JniClass fabricIdJniClass(fabricIdEntryCls); + jmethodID fabricIdEntryTypeCtor = env->GetMethodID(fabricIdEntryCls, "", "(J)V"); + fabricId = env->NewObject(fabricIdEntryCls, fabricIdEntryTypeCtor, fabricIdValue); + } + + bool nodeIdNull = false; + bool nodeIdHasValue = true; + + chip::NodeId nodeIdValue = entry.nodeId; + + jobject nodeId = nullptr; + if (!nodeIdNull && nodeIdHasValue) + { + jclass nodeIdEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", nodeIdEntryCls); + chip::JniClass nodeIdJniClass(nodeIdEntryCls); + jmethodID nodeIdEntryTypeCtor = env->GetMethodID(nodeIdEntryCls, "", "(J)V"); + nodeId = env->NewObject(nodeIdEntryCls, nodeIdEntryTypeCtor, nodeIdValue); + } + + bool labelNull = false; + bool labelHasValue = true; + + chip::CharSpan labelValue = entry.label; + + jstring label = nullptr; + chip::UtfString labelStr(env, labelValue); + if (!labelNull && labelHasValue) + { + label = jstring(labelStr.jniValue()); + } + + jobject attributeObj = + env->NewObject(attributeClass, attributeCtor, fabricIndex, rootPublicKey, vendorId, fabricId, nodeId, label); + VerifyOrReturn(attributeObj != nullptr, ChipLogError(Zcl, "Could not create FabricsListAttribute object")); + + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, attributeObj); + } + VerifyOrReturn(iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding FabricsListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPTestClusterNullableRangeRestrictedInt8sAttributeCallback::CHIPTestClusterNullableRangeRestrictedInt8sAttributeCallback( - jobject javaCallback, bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), +CHIPOperationalCredentialsTrustedRootCertificatesAttributeCallback:: + CHIPOperationalCredentialsTrustedRootCertificatesAttributeCallback(jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -6813,7 +7362,8 @@ CHIPTestClusterNullableRangeRestrictedInt8sAttributeCallback::CHIPTestClusterNul } } -CHIPTestClusterNullableRangeRestrictedInt8sAttributeCallback::~CHIPTestClusterNullableRangeRestrictedInt8sAttributeCallback() +CHIPOperationalCredentialsTrustedRootCertificatesAttributeCallback:: + ~CHIPOperationalCredentialsTrustedRootCertificatesAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -6824,8 +7374,8 @@ CHIPTestClusterNullableRangeRestrictedInt8sAttributeCallback::~CHIPTestClusterNu env->DeleteGlobalRef(javaCallbackRef); } -void CHIPTestClusterNullableRangeRestrictedInt8sAttributeCallback::CallbackFn(void * context, - const chip::app::DataModel::Nullable & value) +void CHIPOperationalCredentialsTrustedRootCertificatesAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -6833,31 +7383,57 @@ void CHIPTestClusterNullableRangeRestrictedInt8sAttributeCallback::CallbackFn(vo jobject javaCallbackRef; VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; VerifyOrReturn(javaCallbackRef != nullptr, ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + jmethodID javaMethod; - err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jobject javaValue; + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::ByteSpan entryValue = entry; - std::string javaValueClassName = "java/lang/Integer"; - std::string javaValueCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), - value.Value(), javaValue); + jbyteArray entryObject = nullptr; + if (!entryNull) + { + entryObject = env->NewByteArray(entryValue.size()); + env->SetByteArrayRegion(entryObject, 0, entryValue.size(), reinterpret_cast(entryValue.data())); + } - env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding TrustedRootCertificatesAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPTestClusterNullableRangeRestrictedInt16uAttributeCallback::CHIPTestClusterNullableRangeRestrictedInt16uAttributeCallback( +CHIPOperationalCredentialsCurrentFabricIndexAttributeCallback::CHIPOperationalCredentialsCurrentFabricIndexAttributeCallback( jobject javaCallback, bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -6874,7 +7450,7 @@ CHIPTestClusterNullableRangeRestrictedInt16uAttributeCallback::CHIPTestClusterNu } } -CHIPTestClusterNullableRangeRestrictedInt16uAttributeCallback::~CHIPTestClusterNullableRangeRestrictedInt16uAttributeCallback() +CHIPOperationalCredentialsCurrentFabricIndexAttributeCallback::~CHIPOperationalCredentialsCurrentFabricIndexAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -6885,8 +7461,7 @@ CHIPTestClusterNullableRangeRestrictedInt16uAttributeCallback::~CHIPTestClusterN env->DeleteGlobalRef(javaCallbackRef); } -void CHIPTestClusterNullableRangeRestrictedInt16uAttributeCallback::CallbackFn( - void * context, const chip::app::DataModel::Nullable & value) +void CHIPOperationalCredentialsCurrentFabricIndexAttributeCallback::CallbackFn(void * context, chip::FabricIndex value) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -6894,8 +7469,8 @@ void CHIPTestClusterNullableRangeRestrictedInt16uAttributeCallback::CallbackFn( jobject javaCallbackRef; VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; @@ -6910,15 +7485,15 @@ void CHIPTestClusterNullableRangeRestrictedInt16uAttributeCallback::CallbackFn( std::string javaValueClassName = "java/lang/Integer"; std::string javaValueCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), - value.Value(), javaValue); + chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), + javaValueCtorSignature.c_str(), value, javaValue); env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); } -CHIPTestClusterNullableRangeRestrictedInt16sAttributeCallback::CHIPTestClusterNullableRangeRestrictedInt16sAttributeCallback( +CHIPOperationalCredentialsAttributeListAttributeCallback::CHIPOperationalCredentialsAttributeListAttributeCallback( jobject javaCallback, bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -6935,7 +7510,7 @@ CHIPTestClusterNullableRangeRestrictedInt16sAttributeCallback::CHIPTestClusterNu } } -CHIPTestClusterNullableRangeRestrictedInt16sAttributeCallback::~CHIPTestClusterNullableRangeRestrictedInt16sAttributeCallback() +CHIPOperationalCredentialsAttributeListAttributeCallback::~CHIPOperationalCredentialsAttributeListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -6946,8 +7521,8 @@ CHIPTestClusterNullableRangeRestrictedInt16sAttributeCallback::~CHIPTestClusterN env->DeleteGlobalRef(javaCallbackRef); } -void CHIPTestClusterNullableRangeRestrictedInt16sAttributeCallback::CallbackFn( - void * context, const chip::app::DataModel::Nullable & value) +void CHIPOperationalCredentialsAttributeListAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -6955,31 +7530,60 @@ void CHIPTestClusterNullableRangeRestrictedInt16sAttributeCallback::CallbackFn( jobject javaCallbackRef; VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; VerifyOrReturn(javaCallbackRef != nullptr, ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + jmethodID javaMethod; - err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jobject javaValue; + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; - std::string javaValueClassName = "java/lang/Integer"; - std::string javaValueCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), - value.Value(), javaValue); + jobject entryObject = nullptr; + if (!entryNull) + { + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); + } - env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPThreadNetworkDiagnosticsNeighborTableListAttributeCallback::CHIPThreadNetworkDiagnosticsNeighborTableListAttributeCallback( - jobject javaCallback, bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), +CHIPPowerSourceActiveBatteryFaultsAttributeCallback::CHIPPowerSourceActiveBatteryFaultsAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -6996,7 +7600,7 @@ CHIPThreadNetworkDiagnosticsNeighborTableListAttributeCallback::CHIPThreadNetwor } } -CHIPThreadNetworkDiagnosticsNeighborTableListAttributeCallback::~CHIPThreadNetworkDiagnosticsNeighborTableListAttributeCallback() +CHIPPowerSourceActiveBatteryFaultsAttributeCallback::~CHIPPowerSourceActiveBatteryFaultsAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -7007,10 +7611,8 @@ CHIPThreadNetworkDiagnosticsNeighborTableListAttributeCallback::~CHIPThreadNetwo env->DeleteGlobalRef(javaCallbackRef); } -void CHIPThreadNetworkDiagnosticsNeighborTableListAttributeCallback::CallbackFn( - void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::ThreadNetworkDiagnostics::Structs::NeighborTable::DecodableType> & list) +void CHIPPowerSourceActiveBatteryFaultsAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -7019,8 +7621,8 @@ void CHIPThreadNetworkDiagnosticsNeighborTableListAttributeCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; @@ -7042,255 +7644,5322 @@ void CHIPThreadNetworkDiagnosticsNeighborTableListAttributeCallback::CallbackFn( err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jclass attributeClass; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipClusters$ThreadNetworkDiagnosticsCluster$NeighborTableListAttribute", attributeClass); - VerifyOrReturn( - err == CHIP_NO_ERROR, - ChipLogError( - Zcl, - "Could not find class chip/devicecontroller/ChipClusters$ThreadNetworkDiagnosticsCluster$NeighborTableListAttribute")); - chip::JniClass attributeJniClass(attributeClass); - jmethodID attributeCtor = - env->GetMethodID(attributeClass, "", - "(Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Integer;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/" - "Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/" - "Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;)V"); - VerifyOrReturn(attributeCtor != nullptr, ChipLogError(Zcl, "Could not find NeighborTableListAttribute constructor")); - auto iter = list.begin(); while (iter.Next()) { - auto & entry = iter.GetValue(); - (void) entry; - bool extAddressNull = false; - bool extAddressHasValue = true; - - uint64_t extAddressValue = entry.extAddress; + auto & entry = iter.GetValue(); + bool entryNull = false; + uint8_t entryValue = entry; - jobject extAddress = nullptr; - if (!extAddressNull && extAddressHasValue) + jobject entryObject = nullptr; + if (!entryNull) { - jclass extAddressEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", extAddressEntryCls); - chip::JniClass extAddressJniClass(extAddressEntryCls); - jmethodID extAddressEntryTypeCtor = env->GetMethodID(extAddressEntryCls, "", "(J)V"); - extAddress = env->NewObject(extAddressEntryCls, extAddressEntryTypeCtor, extAddressValue); + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(I)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); } - bool ageNull = false; - bool ageHasValue = true; + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding ActiveBatteryFaultsAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); - uint32_t ageValue = entry.age; + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); +} - jobject age = nullptr; +CHIPPowerSourceAttributeListAttributeCallback::CHIPPowerSourceAttributeListAttributeCallback(jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPPowerSourceAttributeListAttributeCallback::~CHIPPowerSourceAttributeListAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPPowerSourceAttributeListAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::DecodableList & list) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; + + jobject entryObject = nullptr; + if (!entryNull) + { + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); + } + + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); +} + +CHIPPowerSourceConfigurationSourcesAttributeCallback::CHIPPowerSourceConfigurationSourcesAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPPowerSourceConfigurationSourcesAttributeCallback::~CHIPPowerSourceConfigurationSourcesAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPPowerSourceConfigurationSourcesAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::DecodableList & list) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + bool entryNull = false; + uint8_t entryValue = entry; + + jobject entryObject = nullptr; + if (!entryNull) + { + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(I)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); + } + + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn(iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding SourcesAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); +} + +CHIPPowerSourceConfigurationAttributeListAttributeCallback::CHIPPowerSourceConfigurationAttributeListAttributeCallback( + jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPPowerSourceConfigurationAttributeListAttributeCallback::~CHIPPowerSourceConfigurationAttributeListAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPPowerSourceConfigurationAttributeListAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::DecodableList & list) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; + + jobject entryObject = nullptr; + if (!entryNull) + { + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); + } + + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); +} + +CHIPPressureMeasurementAttributeListAttributeCallback::CHIPPressureMeasurementAttributeListAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPPressureMeasurementAttributeListAttributeCallback::~CHIPPressureMeasurementAttributeListAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPPressureMeasurementAttributeListAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::DecodableList & list) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; + + jobject entryObject = nullptr; + if (!entryNull) + { + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); + } + + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); +} + +CHIPPumpConfigurationAndControlLifetimeRunningHoursAttributeCallback:: + CHIPPumpConfigurationAndControlLifetimeRunningHoursAttributeCallback(jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPPumpConfigurationAndControlLifetimeRunningHoursAttributeCallback:: + ~CHIPPumpConfigurationAndControlLifetimeRunningHoursAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPPumpConfigurationAndControlLifetimeRunningHoursAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::Nullable & value) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + jobject javaValue; + + std::string javaValueClassName = "java/lang/Long"; + std::string javaValueCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), + value.Value(), javaValue); + + env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); +} + +CHIPPumpConfigurationAndControlLifetimeEnergyConsumedAttributeCallback:: + CHIPPumpConfigurationAndControlLifetimeEnergyConsumedAttributeCallback(jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPPumpConfigurationAndControlLifetimeEnergyConsumedAttributeCallback:: + ~CHIPPumpConfigurationAndControlLifetimeEnergyConsumedAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPPumpConfigurationAndControlLifetimeEnergyConsumedAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::Nullable & value) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + jobject javaValue; + + std::string javaValueClassName = "java/lang/Long"; + std::string javaValueCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), + value.Value(), javaValue); + + env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); +} + +CHIPPumpConfigurationAndControlAttributeListAttributeCallback::CHIPPumpConfigurationAndControlAttributeListAttributeCallback( + jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPPumpConfigurationAndControlAttributeListAttributeCallback::~CHIPPumpConfigurationAndControlAttributeListAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPPumpConfigurationAndControlAttributeListAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::DecodableList & list) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; + + jobject entryObject = nullptr; + if (!entryNull) + { + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); + } + + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); +} + +CHIPRelativeHumidityMeasurementAttributeListAttributeCallback::CHIPRelativeHumidityMeasurementAttributeListAttributeCallback( + jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPRelativeHumidityMeasurementAttributeListAttributeCallback::~CHIPRelativeHumidityMeasurementAttributeListAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPRelativeHumidityMeasurementAttributeListAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::DecodableList & list) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; + + jobject entryObject = nullptr; + if (!entryNull) + { + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); + } + + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); +} + +CHIPScenesAttributeListAttributeCallback::CHIPScenesAttributeListAttributeCallback(jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPScenesAttributeListAttributeCallback::~CHIPScenesAttributeListAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPScenesAttributeListAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::DecodableList & list) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; + + jobject entryObject = nullptr; + if (!entryNull) + { + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); + } + + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); +} + +CHIPSoftwareDiagnosticsThreadMetricsAttributeCallback::CHIPSoftwareDiagnosticsThreadMetricsAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPSoftwareDiagnosticsThreadMetricsAttributeCallback::~CHIPSoftwareDiagnosticsThreadMetricsAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPSoftwareDiagnosticsThreadMetricsAttributeCallback::CallbackFn( + void * context, + const chip::app::DataModel::DecodableList & + list) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + jclass attributeClass; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipClusters$SoftwareDiagnosticsCluster$ThreadMetricsAttribute", attributeClass); + VerifyOrReturn( + err == CHIP_NO_ERROR, + ChipLogError(Zcl, + "Could not find class chip/devicecontroller/ChipClusters$SoftwareDiagnosticsCluster$ThreadMetricsAttribute")); + chip::JniClass attributeJniClass(attributeClass); + jmethodID attributeCtor = env->GetMethodID( + attributeClass, "", "(Ljava/lang/Long;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;)V"); + VerifyOrReturn(attributeCtor != nullptr, ChipLogError(Zcl, "Could not find ThreadMetricsAttribute constructor")); + + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + (void) entry; + bool idNull = false; + bool idHasValue = true; + + uint64_t idValue = entry.id; + + jobject id = nullptr; + if (!idNull && idHasValue) + { + jclass idEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", idEntryCls); + chip::JniClass idJniClass(idEntryCls); + jmethodID idEntryTypeCtor = env->GetMethodID(idEntryCls, "", "(J)V"); + id = env->NewObject(idEntryCls, idEntryTypeCtor, idValue); + } + + bool nameNull = false; + bool nameHasValue = true; + + chip::CharSpan nameValue = entry.name; + + jstring name = nullptr; + chip::UtfString nameStr(env, nameValue); + if (!nameNull && nameHasValue) + { + name = jstring(nameStr.jniValue()); + } + + bool stackFreeCurrentNull = false; + bool stackFreeCurrentHasValue = true; + + uint32_t stackFreeCurrentValue = entry.stackFreeCurrent; + + jobject stackFreeCurrent = nullptr; + if (!stackFreeCurrentNull && stackFreeCurrentHasValue) + { + jclass stackFreeCurrentEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", stackFreeCurrentEntryCls); + chip::JniClass stackFreeCurrentJniClass(stackFreeCurrentEntryCls); + jmethodID stackFreeCurrentEntryTypeCtor = env->GetMethodID(stackFreeCurrentEntryCls, "", "(J)V"); + stackFreeCurrent = env->NewObject(stackFreeCurrentEntryCls, stackFreeCurrentEntryTypeCtor, stackFreeCurrentValue); + } + + bool stackFreeMinimumNull = false; + bool stackFreeMinimumHasValue = true; + + uint32_t stackFreeMinimumValue = entry.stackFreeMinimum; + + jobject stackFreeMinimum = nullptr; + if (!stackFreeMinimumNull && stackFreeMinimumHasValue) + { + jclass stackFreeMinimumEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", stackFreeMinimumEntryCls); + chip::JniClass stackFreeMinimumJniClass(stackFreeMinimumEntryCls); + jmethodID stackFreeMinimumEntryTypeCtor = env->GetMethodID(stackFreeMinimumEntryCls, "", "(J)V"); + stackFreeMinimum = env->NewObject(stackFreeMinimumEntryCls, stackFreeMinimumEntryTypeCtor, stackFreeMinimumValue); + } + + bool stackSizeNull = false; + bool stackSizeHasValue = true; + + uint32_t stackSizeValue = entry.stackSize; + + jobject stackSize = nullptr; + if (!stackSizeNull && stackSizeHasValue) + { + jclass stackSizeEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", stackSizeEntryCls); + chip::JniClass stackSizeJniClass(stackSizeEntryCls); + jmethodID stackSizeEntryTypeCtor = env->GetMethodID(stackSizeEntryCls, "", "(J)V"); + stackSize = env->NewObject(stackSizeEntryCls, stackSizeEntryTypeCtor, stackSizeValue); + } + + jobject attributeObj = + env->NewObject(attributeClass, attributeCtor, id, name, stackFreeCurrent, stackFreeMinimum, stackSize); + VerifyOrReturn(attributeObj != nullptr, ChipLogError(Zcl, "Could not create ThreadMetricsAttribute object")); + + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, attributeObj); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding ThreadMetricsAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); +} + +CHIPSoftwareDiagnosticsAttributeListAttributeCallback::CHIPSoftwareDiagnosticsAttributeListAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPSoftwareDiagnosticsAttributeListAttributeCallback::~CHIPSoftwareDiagnosticsAttributeListAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPSoftwareDiagnosticsAttributeListAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::DecodableList & list) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; + + jobject entryObject = nullptr; + if (!entryNull) + { + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); + } + + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); +} + +CHIPSwitchAttributeListAttributeCallback::CHIPSwitchAttributeListAttributeCallback(jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPSwitchAttributeListAttributeCallback::~CHIPSwitchAttributeListAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPSwitchAttributeListAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::DecodableList & list) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; + + jobject entryObject = nullptr; + if (!entryNull) + { + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); + } + + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); +} + +CHIPTvChannelTvChannelListAttributeCallback::CHIPTvChannelTvChannelListAttributeCallback(jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPTvChannelTvChannelListAttributeCallback::~CHIPTvChannelTvChannelListAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPTvChannelTvChannelListAttributeCallback::CallbackFn( + void * context, + const chip::app::DataModel::DecodableList & list) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + jclass attributeClass; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipClusters$TvChannelCluster$TvChannelListAttribute", attributeClass); + VerifyOrReturn( + err == CHIP_NO_ERROR, + ChipLogError(Zcl, "Could not find class chip/devicecontroller/ChipClusters$TvChannelCluster$TvChannelListAttribute")); + chip::JniClass attributeJniClass(attributeClass); + jmethodID attributeCtor = + env->GetMethodID(attributeClass, "", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V"); + VerifyOrReturn(attributeCtor != nullptr, ChipLogError(Zcl, "Could not find TvChannelListAttribute constructor")); + + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + (void) entry; + bool majorNumberNull = false; + bool majorNumberHasValue = true; + + uint16_t majorNumberValue = entry.majorNumber; + + jobject majorNumber = nullptr; + if (!majorNumberNull && majorNumberHasValue) + { + jclass majorNumberEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", majorNumberEntryCls); + chip::JniClass majorNumberJniClass(majorNumberEntryCls); + jmethodID majorNumberEntryTypeCtor = env->GetMethodID(majorNumberEntryCls, "", "(I)V"); + majorNumber = env->NewObject(majorNumberEntryCls, majorNumberEntryTypeCtor, majorNumberValue); + } + + bool minorNumberNull = false; + bool minorNumberHasValue = true; + + uint16_t minorNumberValue = entry.minorNumber; + + jobject minorNumber = nullptr; + if (!minorNumberNull && minorNumberHasValue) + { + jclass minorNumberEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", minorNumberEntryCls); + chip::JniClass minorNumberJniClass(minorNumberEntryCls); + jmethodID minorNumberEntryTypeCtor = env->GetMethodID(minorNumberEntryCls, "", "(I)V"); + minorNumber = env->NewObject(minorNumberEntryCls, minorNumberEntryTypeCtor, minorNumberValue); + } + + bool nameNull = false; + bool nameHasValue = true; + + chip::CharSpan nameValue = entry.name; + + jstring name = nullptr; + chip::UtfString nameStr(env, nameValue); + if (!nameNull && nameHasValue) + { + name = jstring(nameStr.jniValue()); + } + + bool callSignNull = false; + bool callSignHasValue = true; + + chip::CharSpan callSignValue = entry.callSign; + + jstring callSign = nullptr; + chip::UtfString callSignStr(env, callSignValue); + if (!callSignNull && callSignHasValue) + { + callSign = jstring(callSignStr.jniValue()); + } + + bool affiliateCallSignNull = false; + bool affiliateCallSignHasValue = true; + + chip::CharSpan affiliateCallSignValue = entry.affiliateCallSign; + + jstring affiliateCallSign = nullptr; + chip::UtfString affiliateCallSignStr(env, affiliateCallSignValue); + if (!affiliateCallSignNull && affiliateCallSignHasValue) + { + affiliateCallSign = jstring(affiliateCallSignStr.jniValue()); + } + + jobject attributeObj = + env->NewObject(attributeClass, attributeCtor, majorNumber, minorNumber, name, callSign, affiliateCallSign); + VerifyOrReturn(attributeObj != nullptr, ChipLogError(Zcl, "Could not create TvChannelListAttribute object")); + + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, attributeObj); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding TvChannelListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); +} + +CHIPTvChannelAttributeListAttributeCallback::CHIPTvChannelAttributeListAttributeCallback(jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPTvChannelAttributeListAttributeCallback::~CHIPTvChannelAttributeListAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPTvChannelAttributeListAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::DecodableList & list) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; + + jobject entryObject = nullptr; + if (!entryNull) + { + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); + } + + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); +} + +CHIPTargetNavigatorTargetNavigatorListAttributeCallback::CHIPTargetNavigatorTargetNavigatorListAttributeCallback( + jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPTargetNavigatorTargetNavigatorListAttributeCallback::~CHIPTargetNavigatorTargetNavigatorListAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPTargetNavigatorTargetNavigatorListAttributeCallback::CallbackFn( + void * context, + const chip::app::DataModel::DecodableList< + chip::app::Clusters::TargetNavigator::Structs::NavigateTargetTargetInfo::DecodableType> & list) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + jclass attributeClass; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipClusters$TargetNavigatorCluster$TargetNavigatorListAttribute", attributeClass); + VerifyOrReturn( + err == CHIP_NO_ERROR, + ChipLogError( + Zcl, "Could not find class chip/devicecontroller/ChipClusters$TargetNavigatorCluster$TargetNavigatorListAttribute")); + chip::JniClass attributeJniClass(attributeClass); + jmethodID attributeCtor = env->GetMethodID(attributeClass, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); + VerifyOrReturn(attributeCtor != nullptr, ChipLogError(Zcl, "Could not find TargetNavigatorListAttribute constructor")); + + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + (void) entry; + bool identifierNull = false; + bool identifierHasValue = true; + + uint8_t identifierValue = entry.identifier; + + jobject identifier = nullptr; + if (!identifierNull && identifierHasValue) + { + jclass identifierEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", identifierEntryCls); + chip::JniClass identifierJniClass(identifierEntryCls); + jmethodID identifierEntryTypeCtor = env->GetMethodID(identifierEntryCls, "", "(I)V"); + identifier = env->NewObject(identifierEntryCls, identifierEntryTypeCtor, identifierValue); + } + + bool nameNull = false; + bool nameHasValue = true; + + chip::CharSpan nameValue = entry.name; + + jstring name = nullptr; + chip::UtfString nameStr(env, nameValue); + if (!nameNull && nameHasValue) + { + name = jstring(nameStr.jniValue()); + } + + jobject attributeObj = env->NewObject(attributeClass, attributeCtor, identifier, name); + VerifyOrReturn(attributeObj != nullptr, ChipLogError(Zcl, "Could not create TargetNavigatorListAttribute object")); + + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, attributeObj); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding TargetNavigatorListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); +} + +CHIPTargetNavigatorAttributeListAttributeCallback::CHIPTargetNavigatorAttributeListAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPTargetNavigatorAttributeListAttributeCallback::~CHIPTargetNavigatorAttributeListAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPTargetNavigatorAttributeListAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::DecodableList & list) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; + + jobject entryObject = nullptr; + if (!entryNull) + { + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); + } + + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); +} + +CHIPTemperatureMeasurementAttributeListAttributeCallback::CHIPTemperatureMeasurementAttributeListAttributeCallback( + jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPTemperatureMeasurementAttributeListAttributeCallback::~CHIPTemperatureMeasurementAttributeListAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPTemperatureMeasurementAttributeListAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::DecodableList & list) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; + + jobject entryObject = nullptr; + if (!entryNull) + { + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); + } + + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); +} + +CHIPTestClusterListInt8uAttributeCallback::CHIPTestClusterListInt8uAttributeCallback(jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPTestClusterListInt8uAttributeCallback::~CHIPTestClusterListInt8uAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPTestClusterListInt8uAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::DecodableList & list) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + bool entryNull = false; + uint8_t entryValue = entry; + + jobject entryObject = nullptr; + if (!entryNull) + { + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(I)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); + } + + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn(iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding ListInt8uAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); +} + +CHIPTestClusterListOctetStringAttributeCallback::CHIPTestClusterListOctetStringAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPTestClusterListOctetStringAttributeCallback::~CHIPTestClusterListOctetStringAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPTestClusterListOctetStringAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::DecodableList & list) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::ByteSpan entryValue = entry; + + jbyteArray entryObject = nullptr; + if (!entryNull) + { + entryObject = env->NewByteArray(entryValue.size()); + env->SetByteArrayRegion(entryObject, 0, entryValue.size(), reinterpret_cast(entryValue.data())); + } + + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding ListOctetStringAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); +} + +CHIPTestClusterListStructOctetStringAttributeCallback::CHIPTestClusterListStructOctetStringAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPTestClusterListStructOctetStringAttributeCallback::~CHIPTestClusterListStructOctetStringAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPTestClusterListStructOctetStringAttributeCallback::CallbackFn( + void * context, + const chip::app::DataModel::DecodableList & list) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + jclass attributeClass; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipClusters$TestClusterCluster$ListStructOctetStringAttribute", attributeClass); + VerifyOrReturn( + err == CHIP_NO_ERROR, + ChipLogError(Zcl, + "Could not find class chip/devicecontroller/ChipClusters$TestClusterCluster$ListStructOctetStringAttribute")); + chip::JniClass attributeJniClass(attributeClass); + jmethodID attributeCtor = env->GetMethodID(attributeClass, "", "(Ljava/lang/Long;[B)V"); + VerifyOrReturn(attributeCtor != nullptr, ChipLogError(Zcl, "Could not find ListStructOctetStringAttribute constructor")); + + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + (void) entry; + bool fabricIndexNull = false; + bool fabricIndexHasValue = true; + + uint64_t fabricIndexValue = entry.fabricIndex; + + jobject fabricIndex = nullptr; + if (!fabricIndexNull && fabricIndexHasValue) + { + jclass fabricIndexEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", fabricIndexEntryCls); + chip::JniClass fabricIndexJniClass(fabricIndexEntryCls); + jmethodID fabricIndexEntryTypeCtor = env->GetMethodID(fabricIndexEntryCls, "", "(J)V"); + fabricIndex = env->NewObject(fabricIndexEntryCls, fabricIndexEntryTypeCtor, fabricIndexValue); + } + + bool operationalCertNull = false; + bool operationalCertHasValue = true; + + chip::ByteSpan operationalCertValue = entry.operationalCert; + + jbyteArray operationalCert = nullptr; + if (!operationalCertNull && operationalCertHasValue) + { + operationalCert = env->NewByteArray(operationalCertValue.size()); + env->SetByteArrayRegion(operationalCert, 0, operationalCertValue.size(), + reinterpret_cast(operationalCertValue.data())); + } + + jobject attributeObj = env->NewObject(attributeClass, attributeCtor, fabricIndex, operationalCert); + VerifyOrReturn(attributeObj != nullptr, ChipLogError(Zcl, "Could not create ListStructOctetStringAttribute object")); + + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, attributeObj); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding ListStructOctetStringAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); +} + +CHIPTestClusterVendorIdAttributeCallback::CHIPTestClusterVendorIdAttributeCallback(jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPTestClusterVendorIdAttributeCallback::~CHIPTestClusterVendorIdAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPTestClusterVendorIdAttributeCallback::CallbackFn(void * context, chip::VendorId value) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + jobject javaValue; + + std::string javaValueClassName = "java/lang/Integer"; + std::string javaValueCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), + value, javaValue); + + env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); +} + +CHIPTestClusterListNullablesAndOptionalsStructAttributeCallback::CHIPTestClusterListNullablesAndOptionalsStructAttributeCallback( + jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPTestClusterListNullablesAndOptionalsStructAttributeCallback::~CHIPTestClusterListNullablesAndOptionalsStructAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPTestClusterListNullablesAndOptionalsStructAttributeCallback::CallbackFn( + void * context, + const chip::app::DataModel::DecodableList< + chip::app::Clusters::TestCluster::Structs::NullablesAndOptionalsStruct::DecodableType> & list) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + jclass attributeClass; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipClusters$TestClusterCluster$ListNullablesAndOptionalsStructAttribute", attributeClass); + VerifyOrReturn( + err == CHIP_NO_ERROR, + ChipLogError( + Zcl, + "Could not find class chip/devicecontroller/ChipClusters$TestClusterCluster$ListNullablesAndOptionalsStructAttribute")); + chip::JniClass attributeJniClass(attributeClass); + jmethodID attributeCtor = env->GetMethodID( + attributeClass, "", + "(Ljava/lang/Integer;Ljava/util/Optional;Ljava/util/Optional;Ljava/lang/String;Ljava/util/Optional;Ljava/util/Optional;)V"); + VerifyOrReturn(attributeCtor != nullptr, + ChipLogError(Zcl, "Could not find ListNullablesAndOptionalsStructAttribute constructor")); + + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + (void) entry; + bool nullableIntNull = false; + bool nullableIntHasValue = true; + uint16_t nullableIntValue; + nullableIntNull = entry.nullableInt.IsNull(); + if (!nullableIntNull) + { + nullableIntValue = entry.nullableInt.Value(); + } + + jobject nullableInt = nullptr; + if (!nullableIntNull && nullableIntHasValue) + { + jclass nullableIntEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", nullableIntEntryCls); + chip::JniClass nullableIntJniClass(nullableIntEntryCls); + jmethodID nullableIntEntryTypeCtor = env->GetMethodID(nullableIntEntryCls, "", "(I)V"); + nullableInt = env->NewObject(nullableIntEntryCls, nullableIntEntryTypeCtor, nullableIntValue); + } + + bool optionalIntNull = false; + bool optionalIntHasValue = true; + + uint16_t optionalIntValue; + optionalIntHasValue = entry.optionalInt.HasValue(); + if (optionalIntHasValue) + { + optionalIntValue = entry.optionalInt.Value(); + } + + jobject optionalInt = nullptr; + if (!optionalIntNull && optionalIntHasValue) + { + jclass optionalIntEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", optionalIntEntryCls); + chip::JniClass optionalIntJniClass(optionalIntEntryCls); + jmethodID optionalIntEntryTypeCtor = env->GetMethodID(optionalIntEntryCls, "", "(I)V"); + optionalInt = env->NewObject(optionalIntEntryCls, optionalIntEntryTypeCtor, optionalIntValue); + } + + jobject optionalIntOptional = nullptr; + chip::JniReferences::GetInstance().CreateOptional(optionalInt, optionalIntOptional); + bool nullableOptionalIntNull = false; + bool nullableOptionalIntHasValue = true; + + uint16_t nullableOptionalIntValue; + nullableOptionalIntHasValue = entry.nullableOptionalInt.HasValue(); + if (nullableOptionalIntHasValue) + { + auto nullableOptionalIntValueFromOptional = entry.nullableOptionalInt.Value(); + nullableOptionalIntNull = nullableOptionalIntValueFromOptional.IsNull(); + if (!nullableOptionalIntNull) + { + nullableOptionalIntValue = nullableOptionalIntValueFromOptional.Value(); + } + } + + jobject nullableOptionalInt = nullptr; + if (!nullableOptionalIntNull && nullableOptionalIntHasValue) + { + jclass nullableOptionalIntEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", nullableOptionalIntEntryCls); + chip::JniClass nullableOptionalIntJniClass(nullableOptionalIntEntryCls); + jmethodID nullableOptionalIntEntryTypeCtor = env->GetMethodID(nullableOptionalIntEntryCls, "", "(I)V"); + nullableOptionalInt = + env->NewObject(nullableOptionalIntEntryCls, nullableOptionalIntEntryTypeCtor, nullableOptionalIntValue); + } + + jobject nullableOptionalIntOptional = nullptr; + chip::JniReferences::GetInstance().CreateOptional(nullableOptionalInt, nullableOptionalIntOptional); + bool nullableStringNull = false; + bool nullableStringHasValue = true; + chip::CharSpan nullableStringValue; + nullableStringNull = entry.nullableString.IsNull(); + if (!nullableStringNull) + { + nullableStringValue = entry.nullableString.Value(); + } + + jstring nullableString = nullptr; + chip::UtfString nullableStringStr(env, nullableStringValue); + if (!nullableStringNull && nullableStringHasValue) + { + nullableString = jstring(nullableStringStr.jniValue()); + } + + bool optionalStringNull = false; + bool optionalStringHasValue = true; + + chip::CharSpan optionalStringValue; + optionalStringHasValue = entry.optionalString.HasValue(); + if (optionalStringHasValue) + { + optionalStringValue = entry.optionalString.Value(); + } + + jstring optionalString = nullptr; + chip::UtfString optionalStringStr(env, optionalStringValue); + if (!optionalStringNull && optionalStringHasValue) + { + optionalString = jstring(optionalStringStr.jniValue()); + } + + jobject optionalStringOptional = nullptr; + chip::JniReferences::GetInstance().CreateOptional(optionalString, optionalStringOptional); + bool nullableOptionalStringNull = false; + bool nullableOptionalStringHasValue = true; + + chip::CharSpan nullableOptionalStringValue; + nullableOptionalStringHasValue = entry.nullableOptionalString.HasValue(); + if (nullableOptionalStringHasValue) + { + auto nullableOptionalStringValueFromOptional = entry.nullableOptionalString.Value(); + nullableOptionalStringNull = nullableOptionalStringValueFromOptional.IsNull(); + if (!nullableOptionalStringNull) + { + nullableOptionalStringValue = nullableOptionalStringValueFromOptional.Value(); + } + } + + jstring nullableOptionalString = nullptr; + chip::UtfString nullableOptionalStringStr(env, nullableOptionalStringValue); + if (!nullableOptionalStringNull && nullableOptionalStringHasValue) + { + nullableOptionalString = jstring(nullableOptionalStringStr.jniValue()); + } + + jobject nullableOptionalStringOptional = nullptr; + chip::JniReferences::GetInstance().CreateOptional(nullableOptionalString, nullableOptionalStringOptional); + + jobject attributeObj = + env->NewObject(attributeClass, attributeCtor, nullableInt, optionalIntOptional, nullableOptionalIntOptional, + nullableString, optionalStringOptional, nullableOptionalStringOptional); + VerifyOrReturn(attributeObj != nullptr, + ChipLogError(Zcl, "Could not create ListNullablesAndOptionalsStructAttribute object")); + + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, attributeObj); + } + VerifyOrReturn(iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding ListNullablesAndOptionalsStructAttribute value: %" CHIP_ERROR_FORMAT, + iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); +} + +CHIPTestClusterListLongOctetStringAttributeCallback::CHIPTestClusterListLongOctetStringAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPTestClusterListLongOctetStringAttributeCallback::~CHIPTestClusterListLongOctetStringAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPTestClusterListLongOctetStringAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::DecodableList & list) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::ByteSpan entryValue = entry; + + jbyteArray entryObject = nullptr; + if (!entryNull) + { + entryObject = env->NewByteArray(entryValue.size()); + env->SetByteArrayRegion(entryObject, 0, entryValue.size(), reinterpret_cast(entryValue.data())); + } + + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding ListLongOctetStringAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); +} + +CHIPTestClusterNullableBooleanAttributeCallback::CHIPTestClusterNullableBooleanAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPTestClusterNullableBooleanAttributeCallback::~CHIPTestClusterNullableBooleanAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPTestClusterNullableBooleanAttributeCallback::CallbackFn(void * context, const chip::app::DataModel::Nullable & value) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Boolean;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + jobject javaValue; + + std::string javaValueClassName = "java/lang/Boolean"; + std::string javaValueCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), + value.Value(), javaValue); + + env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); +} + +CHIPTestClusterNullableBitmap16AttributeCallback::CHIPTestClusterNullableBitmap16AttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPTestClusterNullableBitmap16AttributeCallback::~CHIPTestClusterNullableBitmap16AttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPTestClusterNullableBitmap16AttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::Nullable & value) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + jobject javaValue; + + std::string javaValueClassName = "java/lang/Integer"; + std::string javaValueCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), + value.Value(), javaValue); + + env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); +} + +CHIPTestClusterNullableBitmap32AttributeCallback::CHIPTestClusterNullableBitmap32AttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPTestClusterNullableBitmap32AttributeCallback::~CHIPTestClusterNullableBitmap32AttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPTestClusterNullableBitmap32AttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::Nullable & value) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + jobject javaValue; + + std::string javaValueClassName = "java/lang/Long"; + std::string javaValueCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), + value.Value(), javaValue); + + env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); +} + +CHIPTestClusterNullableBitmap64AttributeCallback::CHIPTestClusterNullableBitmap64AttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPTestClusterNullableBitmap64AttributeCallback::~CHIPTestClusterNullableBitmap64AttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPTestClusterNullableBitmap64AttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::Nullable & value) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + jobject javaValue; + + std::string javaValueClassName = "java/lang/Long"; + std::string javaValueCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), + value.Value(), javaValue); + + env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); +} + +CHIPTestClusterNullableInt16uAttributeCallback::CHIPTestClusterNullableInt16uAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPTestClusterNullableInt16uAttributeCallback::~CHIPTestClusterNullableInt16uAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPTestClusterNullableInt16uAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::Nullable & value) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + jobject javaValue; + + std::string javaValueClassName = "java/lang/Integer"; + std::string javaValueCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), + value.Value(), javaValue); + + env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); +} + +CHIPTestClusterNullableInt24uAttributeCallback::CHIPTestClusterNullableInt24uAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPTestClusterNullableInt24uAttributeCallback::~CHIPTestClusterNullableInt24uAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPTestClusterNullableInt24uAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::Nullable & value) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + jobject javaValue; + + std::string javaValueClassName = "java/lang/Long"; + std::string javaValueCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), + value.Value(), javaValue); + + env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); +} + +CHIPTestClusterNullableInt32uAttributeCallback::CHIPTestClusterNullableInt32uAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPTestClusterNullableInt32uAttributeCallback::~CHIPTestClusterNullableInt32uAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPTestClusterNullableInt32uAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::Nullable & value) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + jobject javaValue; + + std::string javaValueClassName = "java/lang/Long"; + std::string javaValueCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), + value.Value(), javaValue); + + env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); +} + +CHIPTestClusterNullableInt40uAttributeCallback::CHIPTestClusterNullableInt40uAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPTestClusterNullableInt40uAttributeCallback::~CHIPTestClusterNullableInt40uAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPTestClusterNullableInt40uAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::Nullable & value) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + jobject javaValue; + + std::string javaValueClassName = "java/lang/Long"; + std::string javaValueCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), + value.Value(), javaValue); + + env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); +} + +CHIPTestClusterNullableInt48uAttributeCallback::CHIPTestClusterNullableInt48uAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPTestClusterNullableInt48uAttributeCallback::~CHIPTestClusterNullableInt48uAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPTestClusterNullableInt48uAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::Nullable & value) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + jobject javaValue; + + std::string javaValueClassName = "java/lang/Long"; + std::string javaValueCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), + value.Value(), javaValue); + + env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); +} + +CHIPTestClusterNullableInt56uAttributeCallback::CHIPTestClusterNullableInt56uAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPTestClusterNullableInt56uAttributeCallback::~CHIPTestClusterNullableInt56uAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPTestClusterNullableInt56uAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::Nullable & value) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + jobject javaValue; + + std::string javaValueClassName = "java/lang/Long"; + std::string javaValueCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), + value.Value(), javaValue); + + env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); +} + +CHIPTestClusterNullableInt64uAttributeCallback::CHIPTestClusterNullableInt64uAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPTestClusterNullableInt64uAttributeCallback::~CHIPTestClusterNullableInt64uAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPTestClusterNullableInt64uAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::Nullable & value) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + jobject javaValue; + + std::string javaValueClassName = "java/lang/Long"; + std::string javaValueCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), + value.Value(), javaValue); + + env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); +} + +CHIPTestClusterNullableInt8sAttributeCallback::CHIPTestClusterNullableInt8sAttributeCallback(jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPTestClusterNullableInt8sAttributeCallback::~CHIPTestClusterNullableInt8sAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPTestClusterNullableInt8sAttributeCallback::CallbackFn(void * context, const chip::app::DataModel::Nullable & value) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + jobject javaValue; + + std::string javaValueClassName = "java/lang/Integer"; + std::string javaValueCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), + value.Value(), javaValue); + + env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); +} + +CHIPTestClusterNullableInt16sAttributeCallback::CHIPTestClusterNullableInt16sAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPTestClusterNullableInt16sAttributeCallback::~CHIPTestClusterNullableInt16sAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPTestClusterNullableInt16sAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::Nullable & value) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + jobject javaValue; + + std::string javaValueClassName = "java/lang/Integer"; + std::string javaValueCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), + value.Value(), javaValue); + + env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); +} + +CHIPTestClusterNullableInt24sAttributeCallback::CHIPTestClusterNullableInt24sAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPTestClusterNullableInt24sAttributeCallback::~CHIPTestClusterNullableInt24sAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPTestClusterNullableInt24sAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::Nullable & value) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + jobject javaValue; + + std::string javaValueClassName = "java/lang/Long"; + std::string javaValueCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), + value.Value(), javaValue); + + env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); +} + +CHIPTestClusterNullableInt32sAttributeCallback::CHIPTestClusterNullableInt32sAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPTestClusterNullableInt32sAttributeCallback::~CHIPTestClusterNullableInt32sAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPTestClusterNullableInt32sAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::Nullable & value) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + jobject javaValue; + + std::string javaValueClassName = "java/lang/Long"; + std::string javaValueCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), + value.Value(), javaValue); + + env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); +} + +CHIPTestClusterNullableInt40sAttributeCallback::CHIPTestClusterNullableInt40sAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPTestClusterNullableInt40sAttributeCallback::~CHIPTestClusterNullableInt40sAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPTestClusterNullableInt40sAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::Nullable & value) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + jobject javaValue; + + std::string javaValueClassName = "java/lang/Long"; + std::string javaValueCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), + value.Value(), javaValue); + + env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); +} + +CHIPTestClusterNullableInt48sAttributeCallback::CHIPTestClusterNullableInt48sAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPTestClusterNullableInt48sAttributeCallback::~CHIPTestClusterNullableInt48sAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPTestClusterNullableInt48sAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::Nullable & value) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + jobject javaValue; + + std::string javaValueClassName = "java/lang/Long"; + std::string javaValueCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), + value.Value(), javaValue); + + env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); +} + +CHIPTestClusterNullableInt56sAttributeCallback::CHIPTestClusterNullableInt56sAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPTestClusterNullableInt56sAttributeCallback::~CHIPTestClusterNullableInt56sAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPTestClusterNullableInt56sAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::Nullable & value) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + jobject javaValue; + + std::string javaValueClassName = "java/lang/Long"; + std::string javaValueCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), + value.Value(), javaValue); + + env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); +} + +CHIPTestClusterNullableInt64sAttributeCallback::CHIPTestClusterNullableInt64sAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPTestClusterNullableInt64sAttributeCallback::~CHIPTestClusterNullableInt64sAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPTestClusterNullableInt64sAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::Nullable & value) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + jobject javaValue; + + std::string javaValueClassName = "java/lang/Long"; + std::string javaValueCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), + value.Value(), javaValue); + + env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); +} + +CHIPTestClusterNullableEnum16AttributeCallback::CHIPTestClusterNullableEnum16AttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPTestClusterNullableEnum16AttributeCallback::~CHIPTestClusterNullableEnum16AttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPTestClusterNullableEnum16AttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::Nullable & value) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + jobject javaValue; + + std::string javaValueClassName = "java/lang/Integer"; + std::string javaValueCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), + value.Value(), javaValue); + + env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); +} + +CHIPTestClusterNullableFloatSingleAttributeCallback::CHIPTestClusterNullableFloatSingleAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPTestClusterNullableFloatSingleAttributeCallback::~CHIPTestClusterNullableFloatSingleAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPTestClusterNullableFloatSingleAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::Nullable & value) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Float;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + jobject javaValue; + + std::string javaValueClassName = "java/lang/Float"; + std::string javaValueCtorSignature = "(F)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), + value.Value(), javaValue); + + env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); +} + +CHIPTestClusterNullableFloatDoubleAttributeCallback::CHIPTestClusterNullableFloatDoubleAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPTestClusterNullableFloatDoubleAttributeCallback::~CHIPTestClusterNullableFloatDoubleAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPTestClusterNullableFloatDoubleAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::Nullable & value) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Double;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + jobject javaValue; + + std::string javaValueClassName = "java/lang/Double"; + std::string javaValueCtorSignature = "(D)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), + value.Value(), javaValue); + + env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); +} + +CHIPTestClusterNullableOctetStringAttributeCallback::CHIPTestClusterNullableOctetStringAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPTestClusterNullableOctetStringAttributeCallback::~CHIPTestClusterNullableOctetStringAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPTestClusterNullableOctetStringAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::Nullable & value) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "([B)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + jobject javaValue; + + chip::ByteArray javaValueByteArray(env, value.Value()); + javaValue = javaValueByteArray.jniValue(); + + env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); +} + +CHIPTestClusterNullableCharStringAttributeCallback::CHIPTestClusterNullableCharStringAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPTestClusterNullableCharStringAttributeCallback::~CHIPTestClusterNullableCharStringAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPTestClusterNullableCharStringAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::Nullable & value) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/String;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + jobject javaValue; + + chip::UtfString javaValueUtfString(env, value.Value()); + javaValue = javaValueUtfString.jniValue(); + + env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); +} + +CHIPTestClusterNullableRangeRestrictedInt8sAttributeCallback::CHIPTestClusterNullableRangeRestrictedInt8sAttributeCallback( + jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPTestClusterNullableRangeRestrictedInt8sAttributeCallback::~CHIPTestClusterNullableRangeRestrictedInt8sAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPTestClusterNullableRangeRestrictedInt8sAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::Nullable & value) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + jobject javaValue; + + std::string javaValueClassName = "java/lang/Integer"; + std::string javaValueCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), + value.Value(), javaValue); + + env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); +} + +CHIPTestClusterNullableRangeRestrictedInt16uAttributeCallback::CHIPTestClusterNullableRangeRestrictedInt16uAttributeCallback( + jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPTestClusterNullableRangeRestrictedInt16uAttributeCallback::~CHIPTestClusterNullableRangeRestrictedInt16uAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPTestClusterNullableRangeRestrictedInt16uAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::Nullable & value) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + jobject javaValue; + + std::string javaValueClassName = "java/lang/Integer"; + std::string javaValueCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), + value.Value(), javaValue); + + env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); +} + +CHIPTestClusterNullableRangeRestrictedInt16sAttributeCallback::CHIPTestClusterNullableRangeRestrictedInt16sAttributeCallback( + jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPTestClusterNullableRangeRestrictedInt16sAttributeCallback::~CHIPTestClusterNullableRangeRestrictedInt16sAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPTestClusterNullableRangeRestrictedInt16sAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::Nullable & value) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + jobject javaValue; + + std::string javaValueClassName = "java/lang/Integer"; + std::string javaValueCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(javaValueClassName.c_str(), javaValueCtorSignature.c_str(), + value.Value(), javaValue); + + env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue); +} + +CHIPTestClusterAttributeListAttributeCallback::CHIPTestClusterAttributeListAttributeCallback(jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPTestClusterAttributeListAttributeCallback::~CHIPTestClusterAttributeListAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPTestClusterAttributeListAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::DecodableList & list) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; + + jobject entryObject = nullptr; + if (!entryNull) + { + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); + } + + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); +} + +CHIPThermostatAttributeListAttributeCallback::CHIPThermostatAttributeListAttributeCallback(jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPThermostatAttributeListAttributeCallback::~CHIPThermostatAttributeListAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPThermostatAttributeListAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::DecodableList & list) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; + + jobject entryObject = nullptr; + if (!entryNull) + { + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); + } + + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); +} + +CHIPThermostatUserInterfaceConfigurationAttributeListAttributeCallback:: + CHIPThermostatUserInterfaceConfigurationAttributeListAttributeCallback(jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPThermostatUserInterfaceConfigurationAttributeListAttributeCallback:: + ~CHIPThermostatUserInterfaceConfigurationAttributeListAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPThermostatUserInterfaceConfigurationAttributeListAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::DecodableList & list) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; + + jobject entryObject = nullptr; + if (!entryNull) + { + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); + } + + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); +} + +CHIPThreadNetworkDiagnosticsNeighborTableListAttributeCallback::CHIPThreadNetworkDiagnosticsNeighborTableListAttributeCallback( + jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPThreadNetworkDiagnosticsNeighborTableListAttributeCallback::~CHIPThreadNetworkDiagnosticsNeighborTableListAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPThreadNetworkDiagnosticsNeighborTableListAttributeCallback::CallbackFn( + void * context, + const chip::app::DataModel::DecodableList< + chip::app::Clusters::ThreadNetworkDiagnostics::Structs::NeighborTable::DecodableType> & list) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + jclass attributeClass; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipClusters$ThreadNetworkDiagnosticsCluster$NeighborTableListAttribute", attributeClass); + VerifyOrReturn( + err == CHIP_NO_ERROR, + ChipLogError( + Zcl, + "Could not find class chip/devicecontroller/ChipClusters$ThreadNetworkDiagnosticsCluster$NeighborTableListAttribute")); + chip::JniClass attributeJniClass(attributeClass); + jmethodID attributeCtor = + env->GetMethodID(attributeClass, "", + "(Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Integer;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/" + "Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/" + "Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;)V"); + VerifyOrReturn(attributeCtor != nullptr, ChipLogError(Zcl, "Could not find NeighborTableListAttribute constructor")); + + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + (void) entry; + bool extAddressNull = false; + bool extAddressHasValue = true; + + uint64_t extAddressValue = entry.extAddress; + + jobject extAddress = nullptr; + if (!extAddressNull && extAddressHasValue) + { + jclass extAddressEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", extAddressEntryCls); + chip::JniClass extAddressJniClass(extAddressEntryCls); + jmethodID extAddressEntryTypeCtor = env->GetMethodID(extAddressEntryCls, "", "(J)V"); + extAddress = env->NewObject(extAddressEntryCls, extAddressEntryTypeCtor, extAddressValue); + } + + bool ageNull = false; + bool ageHasValue = true; + + uint32_t ageValue = entry.age; + + jobject age = nullptr; + if (!ageNull && ageHasValue) + { + jclass ageEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", ageEntryCls); + chip::JniClass ageJniClass(ageEntryCls); + jmethodID ageEntryTypeCtor = env->GetMethodID(ageEntryCls, "", "(J)V"); + age = env->NewObject(ageEntryCls, ageEntryTypeCtor, ageValue); + } + + bool rloc16Null = false; + bool rloc16HasValue = true; + + uint16_t rloc16Value = entry.rloc16; + + jobject rloc16 = nullptr; + if (!rloc16Null && rloc16HasValue) + { + jclass rloc16EntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", rloc16EntryCls); + chip::JniClass rloc16JniClass(rloc16EntryCls); + jmethodID rloc16EntryTypeCtor = env->GetMethodID(rloc16EntryCls, "", "(I)V"); + rloc16 = env->NewObject(rloc16EntryCls, rloc16EntryTypeCtor, rloc16Value); + } + + bool linkFrameCounterNull = false; + bool linkFrameCounterHasValue = true; + + uint32_t linkFrameCounterValue = entry.linkFrameCounter; + + jobject linkFrameCounter = nullptr; + if (!linkFrameCounterNull && linkFrameCounterHasValue) + { + jclass linkFrameCounterEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", linkFrameCounterEntryCls); + chip::JniClass linkFrameCounterJniClass(linkFrameCounterEntryCls); + jmethodID linkFrameCounterEntryTypeCtor = env->GetMethodID(linkFrameCounterEntryCls, "", "(J)V"); + linkFrameCounter = env->NewObject(linkFrameCounterEntryCls, linkFrameCounterEntryTypeCtor, linkFrameCounterValue); + } + + bool mleFrameCounterNull = false; + bool mleFrameCounterHasValue = true; + + uint32_t mleFrameCounterValue = entry.mleFrameCounter; + + jobject mleFrameCounter = nullptr; + if (!mleFrameCounterNull && mleFrameCounterHasValue) + { + jclass mleFrameCounterEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", mleFrameCounterEntryCls); + chip::JniClass mleFrameCounterJniClass(mleFrameCounterEntryCls); + jmethodID mleFrameCounterEntryTypeCtor = env->GetMethodID(mleFrameCounterEntryCls, "", "(J)V"); + mleFrameCounter = env->NewObject(mleFrameCounterEntryCls, mleFrameCounterEntryTypeCtor, mleFrameCounterValue); + } + + bool lqiNull = false; + bool lqiHasValue = true; + + uint8_t lqiValue = entry.lqi; + + jobject lqi = nullptr; + if (!lqiNull && lqiHasValue) + { + jclass lqiEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", lqiEntryCls); + chip::JniClass lqiJniClass(lqiEntryCls); + jmethodID lqiEntryTypeCtor = env->GetMethodID(lqiEntryCls, "", "(I)V"); + lqi = env->NewObject(lqiEntryCls, lqiEntryTypeCtor, lqiValue); + } + + bool averageRssiNull = false; + bool averageRssiHasValue = true; + + int8_t averageRssiValue = entry.averageRssi; + + jobject averageRssi = nullptr; + if (!averageRssiNull && averageRssiHasValue) + { + jclass averageRssiEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", averageRssiEntryCls); + chip::JniClass averageRssiJniClass(averageRssiEntryCls); + jmethodID averageRssiEntryTypeCtor = env->GetMethodID(averageRssiEntryCls, "", "(I)V"); + averageRssi = env->NewObject(averageRssiEntryCls, averageRssiEntryTypeCtor, averageRssiValue); + } + + bool lastRssiNull = false; + bool lastRssiHasValue = true; + + int8_t lastRssiValue = entry.lastRssi; + + jobject lastRssi = nullptr; + if (!lastRssiNull && lastRssiHasValue) + { + jclass lastRssiEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", lastRssiEntryCls); + chip::JniClass lastRssiJniClass(lastRssiEntryCls); + jmethodID lastRssiEntryTypeCtor = env->GetMethodID(lastRssiEntryCls, "", "(I)V"); + lastRssi = env->NewObject(lastRssiEntryCls, lastRssiEntryTypeCtor, lastRssiValue); + } + + bool frameErrorRateNull = false; + bool frameErrorRateHasValue = true; + + uint8_t frameErrorRateValue = entry.frameErrorRate; + + jobject frameErrorRate = nullptr; + if (!frameErrorRateNull && frameErrorRateHasValue) + { + jclass frameErrorRateEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", frameErrorRateEntryCls); + chip::JniClass frameErrorRateJniClass(frameErrorRateEntryCls); + jmethodID frameErrorRateEntryTypeCtor = env->GetMethodID(frameErrorRateEntryCls, "", "(I)V"); + frameErrorRate = env->NewObject(frameErrorRateEntryCls, frameErrorRateEntryTypeCtor, frameErrorRateValue); + } + + bool messageErrorRateNull = false; + bool messageErrorRateHasValue = true; + + uint8_t messageErrorRateValue = entry.messageErrorRate; + + jobject messageErrorRate = nullptr; + if (!messageErrorRateNull && messageErrorRateHasValue) + { + jclass messageErrorRateEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", messageErrorRateEntryCls); + chip::JniClass messageErrorRateJniClass(messageErrorRateEntryCls); + jmethodID messageErrorRateEntryTypeCtor = env->GetMethodID(messageErrorRateEntryCls, "", "(I)V"); + messageErrorRate = env->NewObject(messageErrorRateEntryCls, messageErrorRateEntryTypeCtor, messageErrorRateValue); + } + + bool rxOnWhenIdleNull = false; + bool rxOnWhenIdleHasValue = true; + + bool rxOnWhenIdleValue = entry.rxOnWhenIdle; + + jobject rxOnWhenIdle = nullptr; + if (!rxOnWhenIdleNull && rxOnWhenIdleHasValue) + { + jclass rxOnWhenIdleEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Boolean", rxOnWhenIdleEntryCls); + chip::JniClass rxOnWhenIdleJniClass(rxOnWhenIdleEntryCls); + jmethodID rxOnWhenIdleEntryTypeCtor = env->GetMethodID(rxOnWhenIdleEntryCls, "", "(Z)V"); + rxOnWhenIdle = env->NewObject(rxOnWhenIdleEntryCls, rxOnWhenIdleEntryTypeCtor, rxOnWhenIdleValue); + } + + bool fullThreadDeviceNull = false; + bool fullThreadDeviceHasValue = true; + + bool fullThreadDeviceValue = entry.fullThreadDevice; + + jobject fullThreadDevice = nullptr; + if (!fullThreadDeviceNull && fullThreadDeviceHasValue) + { + jclass fullThreadDeviceEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Boolean", fullThreadDeviceEntryCls); + chip::JniClass fullThreadDeviceJniClass(fullThreadDeviceEntryCls); + jmethodID fullThreadDeviceEntryTypeCtor = env->GetMethodID(fullThreadDeviceEntryCls, "", "(Z)V"); + fullThreadDevice = env->NewObject(fullThreadDeviceEntryCls, fullThreadDeviceEntryTypeCtor, fullThreadDeviceValue); + } + + bool fullNetworkDataNull = false; + bool fullNetworkDataHasValue = true; + + bool fullNetworkDataValue = entry.fullNetworkData; + + jobject fullNetworkData = nullptr; + if (!fullNetworkDataNull && fullNetworkDataHasValue) + { + jclass fullNetworkDataEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Boolean", fullNetworkDataEntryCls); + chip::JniClass fullNetworkDataJniClass(fullNetworkDataEntryCls); + jmethodID fullNetworkDataEntryTypeCtor = env->GetMethodID(fullNetworkDataEntryCls, "", "(Z)V"); + fullNetworkData = env->NewObject(fullNetworkDataEntryCls, fullNetworkDataEntryTypeCtor, fullNetworkDataValue); + } + + bool isChildNull = false; + bool isChildHasValue = true; + + bool isChildValue = entry.isChild; + + jobject isChild = nullptr; + if (!isChildNull && isChildHasValue) + { + jclass isChildEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Boolean", isChildEntryCls); + chip::JniClass isChildJniClass(isChildEntryCls); + jmethodID isChildEntryTypeCtor = env->GetMethodID(isChildEntryCls, "", "(Z)V"); + isChild = env->NewObject(isChildEntryCls, isChildEntryTypeCtor, isChildValue); + } + + jobject attributeObj = env->NewObject(attributeClass, attributeCtor, extAddress, age, rloc16, linkFrameCounter, + mleFrameCounter, lqi, averageRssi, lastRssi, frameErrorRate, messageErrorRate, + rxOnWhenIdle, fullThreadDevice, fullNetworkData, isChild); + VerifyOrReturn(attributeObj != nullptr, ChipLogError(Zcl, "Could not create NeighborTableListAttribute object")); + + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, attributeObj); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding NeighborTableListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); +} + +CHIPThreadNetworkDiagnosticsRouteTableListAttributeCallback::CHIPThreadNetworkDiagnosticsRouteTableListAttributeCallback( + jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPThreadNetworkDiagnosticsRouteTableListAttributeCallback::~CHIPThreadNetworkDiagnosticsRouteTableListAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPThreadNetworkDiagnosticsRouteTableListAttributeCallback::CallbackFn( + void * context, + const chip::app::DataModel::DecodableList & + list) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + jclass attributeClass; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipClusters$ThreadNetworkDiagnosticsCluster$RouteTableListAttribute", attributeClass); + VerifyOrReturn( + err == CHIP_NO_ERROR, + ChipLogError( + Zcl, + "Could not find class chip/devicecontroller/ChipClusters$ThreadNetworkDiagnosticsCluster$RouteTableListAttribute")); + chip::JniClass attributeJniClass(attributeClass); + jmethodID attributeCtor = + env->GetMethodID(attributeClass, "", + "(Ljava/lang/Long;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/" + "Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Boolean;Ljava/lang/Boolean;)V"); + VerifyOrReturn(attributeCtor != nullptr, ChipLogError(Zcl, "Could not find RouteTableListAttribute constructor")); + + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + (void) entry; + bool extAddressNull = false; + bool extAddressHasValue = true; + + uint64_t extAddressValue = entry.extAddress; + + jobject extAddress = nullptr; + if (!extAddressNull && extAddressHasValue) + { + jclass extAddressEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", extAddressEntryCls); + chip::JniClass extAddressJniClass(extAddressEntryCls); + jmethodID extAddressEntryTypeCtor = env->GetMethodID(extAddressEntryCls, "", "(J)V"); + extAddress = env->NewObject(extAddressEntryCls, extAddressEntryTypeCtor, extAddressValue); + } + + bool rloc16Null = false; + bool rloc16HasValue = true; + + uint16_t rloc16Value = entry.rloc16; + + jobject rloc16 = nullptr; + if (!rloc16Null && rloc16HasValue) + { + jclass rloc16EntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", rloc16EntryCls); + chip::JniClass rloc16JniClass(rloc16EntryCls); + jmethodID rloc16EntryTypeCtor = env->GetMethodID(rloc16EntryCls, "", "(I)V"); + rloc16 = env->NewObject(rloc16EntryCls, rloc16EntryTypeCtor, rloc16Value); + } + + bool routerIdNull = false; + bool routerIdHasValue = true; + + uint8_t routerIdValue = entry.routerId; + + jobject routerId = nullptr; + if (!routerIdNull && routerIdHasValue) + { + jclass routerIdEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", routerIdEntryCls); + chip::JniClass routerIdJniClass(routerIdEntryCls); + jmethodID routerIdEntryTypeCtor = env->GetMethodID(routerIdEntryCls, "", "(I)V"); + routerId = env->NewObject(routerIdEntryCls, routerIdEntryTypeCtor, routerIdValue); + } + + bool nextHopNull = false; + bool nextHopHasValue = true; + + uint8_t nextHopValue = entry.nextHop; + + jobject nextHop = nullptr; + if (!nextHopNull && nextHopHasValue) + { + jclass nextHopEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", nextHopEntryCls); + chip::JniClass nextHopJniClass(nextHopEntryCls); + jmethodID nextHopEntryTypeCtor = env->GetMethodID(nextHopEntryCls, "", "(I)V"); + nextHop = env->NewObject(nextHopEntryCls, nextHopEntryTypeCtor, nextHopValue); + } + + bool pathCostNull = false; + bool pathCostHasValue = true; + + uint8_t pathCostValue = entry.pathCost; + + jobject pathCost = nullptr; + if (!pathCostNull && pathCostHasValue) + { + jclass pathCostEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", pathCostEntryCls); + chip::JniClass pathCostJniClass(pathCostEntryCls); + jmethodID pathCostEntryTypeCtor = env->GetMethodID(pathCostEntryCls, "", "(I)V"); + pathCost = env->NewObject(pathCostEntryCls, pathCostEntryTypeCtor, pathCostValue); + } + + bool LQIInNull = false; + bool LQIInHasValue = true; + + uint8_t LQIInValue = entry.LQIIn; + + jobject LQIIn = nullptr; + if (!LQIInNull && LQIInHasValue) + { + jclass LQIInEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", LQIInEntryCls); + chip::JniClass LQIInJniClass(LQIInEntryCls); + jmethodID LQIInEntryTypeCtor = env->GetMethodID(LQIInEntryCls, "", "(I)V"); + LQIIn = env->NewObject(LQIInEntryCls, LQIInEntryTypeCtor, LQIInValue); + } + + bool LQIOutNull = false; + bool LQIOutHasValue = true; + + uint8_t LQIOutValue = entry.LQIOut; + + jobject LQIOut = nullptr; + if (!LQIOutNull && LQIOutHasValue) + { + jclass LQIOutEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", LQIOutEntryCls); + chip::JniClass LQIOutJniClass(LQIOutEntryCls); + jmethodID LQIOutEntryTypeCtor = env->GetMethodID(LQIOutEntryCls, "", "(I)V"); + LQIOut = env->NewObject(LQIOutEntryCls, LQIOutEntryTypeCtor, LQIOutValue); + } + + bool ageNull = false; + bool ageHasValue = true; + + uint8_t ageValue = entry.age; + + jobject age = nullptr; if (!ageNull && ageHasValue) { - jclass ageEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", ageEntryCls); - chip::JniClass ageJniClass(ageEntryCls); - jmethodID ageEntryTypeCtor = env->GetMethodID(ageEntryCls, "", "(J)V"); - age = env->NewObject(ageEntryCls, ageEntryTypeCtor, ageValue); + jclass ageEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", ageEntryCls); + chip::JniClass ageJniClass(ageEntryCls); + jmethodID ageEntryTypeCtor = env->GetMethodID(ageEntryCls, "", "(I)V"); + age = env->NewObject(ageEntryCls, ageEntryTypeCtor, ageValue); + } + + bool allocatedNull = false; + bool allocatedHasValue = true; + + bool allocatedValue = entry.allocated; + + jobject allocated = nullptr; + if (!allocatedNull && allocatedHasValue) + { + jclass allocatedEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Boolean", allocatedEntryCls); + chip::JniClass allocatedJniClass(allocatedEntryCls); + jmethodID allocatedEntryTypeCtor = env->GetMethodID(allocatedEntryCls, "", "(Z)V"); + allocated = env->NewObject(allocatedEntryCls, allocatedEntryTypeCtor, allocatedValue); + } + + bool linkEstablishedNull = false; + bool linkEstablishedHasValue = true; + + bool linkEstablishedValue = entry.linkEstablished; + + jobject linkEstablished = nullptr; + if (!linkEstablishedNull && linkEstablishedHasValue) + { + jclass linkEstablishedEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Boolean", linkEstablishedEntryCls); + chip::JniClass linkEstablishedJniClass(linkEstablishedEntryCls); + jmethodID linkEstablishedEntryTypeCtor = env->GetMethodID(linkEstablishedEntryCls, "", "(Z)V"); + linkEstablished = env->NewObject(linkEstablishedEntryCls, linkEstablishedEntryTypeCtor, linkEstablishedValue); + } + + jobject attributeObj = env->NewObject(attributeClass, attributeCtor, extAddress, rloc16, routerId, nextHop, pathCost, LQIIn, + LQIOut, age, allocated, linkEstablished); + VerifyOrReturn(attributeObj != nullptr, ChipLogError(Zcl, "Could not create RouteTableListAttribute object")); + + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, attributeObj); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding RouteTableListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); +} + +CHIPThreadNetworkDiagnosticsSecurityPolicyAttributeCallback::CHIPThreadNetworkDiagnosticsSecurityPolicyAttributeCallback( + jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPThreadNetworkDiagnosticsSecurityPolicyAttributeCallback::~CHIPThreadNetworkDiagnosticsSecurityPolicyAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPThreadNetworkDiagnosticsSecurityPolicyAttributeCallback::CallbackFn( + void * context, + const chip::app::DataModel::DecodableList< + chip::app::Clusters::ThreadNetworkDiagnostics::Structs::SecurityPolicy::DecodableType> & list) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + jclass attributeClass; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipClusters$ThreadNetworkDiagnosticsCluster$SecurityPolicyAttribute", attributeClass); + VerifyOrReturn( + err == CHIP_NO_ERROR, + ChipLogError( + Zcl, + "Could not find class chip/devicecontroller/ChipClusters$ThreadNetworkDiagnosticsCluster$SecurityPolicyAttribute")); + chip::JniClass attributeJniClass(attributeClass); + jmethodID attributeCtor = env->GetMethodID(attributeClass, "", "(Ljava/lang/Integer;Ljava/lang/Integer;)V"); + VerifyOrReturn(attributeCtor != nullptr, ChipLogError(Zcl, "Could not find SecurityPolicyAttribute constructor")); + + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + (void) entry; + bool rotationTimeNull = false; + bool rotationTimeHasValue = true; + + uint16_t rotationTimeValue = entry.rotationTime; + + jobject rotationTime = nullptr; + if (!rotationTimeNull && rotationTimeHasValue) + { + jclass rotationTimeEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", rotationTimeEntryCls); + chip::JniClass rotationTimeJniClass(rotationTimeEntryCls); + jmethodID rotationTimeEntryTypeCtor = env->GetMethodID(rotationTimeEntryCls, "", "(I)V"); + rotationTime = env->NewObject(rotationTimeEntryCls, rotationTimeEntryTypeCtor, rotationTimeValue); } - bool rloc16Null = false; - bool rloc16HasValue = true; + bool flagsNull = false; + bool flagsHasValue = true; - uint16_t rloc16Value = entry.rloc16; + uint16_t flagsValue = entry.flags; - jobject rloc16 = nullptr; - if (!rloc16Null && rloc16HasValue) + jobject flags = nullptr; + if (!flagsNull && flagsHasValue) { - jclass rloc16EntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", rloc16EntryCls); - chip::JniClass rloc16JniClass(rloc16EntryCls); - jmethodID rloc16EntryTypeCtor = env->GetMethodID(rloc16EntryCls, "", "(I)V"); - rloc16 = env->NewObject(rloc16EntryCls, rloc16EntryTypeCtor, rloc16Value); + jclass flagsEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", flagsEntryCls); + chip::JniClass flagsJniClass(flagsEntryCls); + jmethodID flagsEntryTypeCtor = env->GetMethodID(flagsEntryCls, "", "(I)V"); + flags = env->NewObject(flagsEntryCls, flagsEntryTypeCtor, flagsValue); } - bool linkFrameCounterNull = false; - bool linkFrameCounterHasValue = true; + jobject attributeObj = env->NewObject(attributeClass, attributeCtor, rotationTime, flags); + VerifyOrReturn(attributeObj != nullptr, ChipLogError(Zcl, "Could not create SecurityPolicyAttribute object")); - uint32_t linkFrameCounterValue = entry.linkFrameCounter; + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, attributeObj); + } + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding SecurityPolicyAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); - jobject linkFrameCounter = nullptr; - if (!linkFrameCounterNull && linkFrameCounterHasValue) + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); +} + +CHIPThreadNetworkDiagnosticsOperationalDatasetComponentsAttributeCallback:: + CHIPThreadNetworkDiagnosticsOperationalDatasetComponentsAttributeCallback(jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, + this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} + +CHIPThreadNetworkDiagnosticsOperationalDatasetComponentsAttributeCallback:: + ~CHIPThreadNetworkDiagnosticsOperationalDatasetComponentsAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} + +void CHIPThreadNetworkDiagnosticsOperationalDatasetComponentsAttributeCallback::CallbackFn( + void * context, + const chip::app::DataModel::DecodableList< + chip::app::Clusters::ThreadNetworkDiagnostics::Structs::OperationalDatasetComponents::DecodableType> & list) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); + + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); + + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); + + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); + + jclass attributeClass; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipClusters$ThreadNetworkDiagnosticsCluster$OperationalDatasetComponentsAttribute", + attributeClass); + VerifyOrReturn( + err == CHIP_NO_ERROR, + ChipLogError(Zcl, + "Could not find class " + "chip/devicecontroller/ChipClusters$ThreadNetworkDiagnosticsCluster$OperationalDatasetComponentsAttribute")); + chip::JniClass attributeJniClass(attributeClass); + jmethodID attributeCtor = env->GetMethodID( + attributeClass, "", + "(Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/" + "lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;)V"); + VerifyOrReturn(attributeCtor != nullptr, ChipLogError(Zcl, "Could not find OperationalDatasetComponentsAttribute constructor")); + + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + (void) entry; + bool activeTimestampPresentNull = false; + bool activeTimestampPresentHasValue = true; + + bool activeTimestampPresentValue = entry.activeTimestampPresent; + + jobject activeTimestampPresent = nullptr; + if (!activeTimestampPresentNull && activeTimestampPresentHasValue) { - jclass linkFrameCounterEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", linkFrameCounterEntryCls); - chip::JniClass linkFrameCounterJniClass(linkFrameCounterEntryCls); - jmethodID linkFrameCounterEntryTypeCtor = env->GetMethodID(linkFrameCounterEntryCls, "", "(J)V"); - linkFrameCounter = env->NewObject(linkFrameCounterEntryCls, linkFrameCounterEntryTypeCtor, linkFrameCounterValue); + jclass activeTimestampPresentEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Boolean", activeTimestampPresentEntryCls); + chip::JniClass activeTimestampPresentJniClass(activeTimestampPresentEntryCls); + jmethodID activeTimestampPresentEntryTypeCtor = env->GetMethodID(activeTimestampPresentEntryCls, "", "(Z)V"); + activeTimestampPresent = + env->NewObject(activeTimestampPresentEntryCls, activeTimestampPresentEntryTypeCtor, activeTimestampPresentValue); + } + + bool pendingTimestampPresentNull = false; + bool pendingTimestampPresentHasValue = true; + + bool pendingTimestampPresentValue = entry.pendingTimestampPresent; + + jobject pendingTimestampPresent = nullptr; + if (!pendingTimestampPresentNull && pendingTimestampPresentHasValue) + { + jclass pendingTimestampPresentEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Boolean", pendingTimestampPresentEntryCls); + chip::JniClass pendingTimestampPresentJniClass(pendingTimestampPresentEntryCls); + jmethodID pendingTimestampPresentEntryTypeCtor = env->GetMethodID(pendingTimestampPresentEntryCls, "", "(Z)V"); + pendingTimestampPresent = + env->NewObject(pendingTimestampPresentEntryCls, pendingTimestampPresentEntryTypeCtor, pendingTimestampPresentValue); + } + + bool masterKeyPresentNull = false; + bool masterKeyPresentHasValue = true; + + bool masterKeyPresentValue = entry.masterKeyPresent; + + jobject masterKeyPresent = nullptr; + if (!masterKeyPresentNull && masterKeyPresentHasValue) + { + jclass masterKeyPresentEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Boolean", masterKeyPresentEntryCls); + chip::JniClass masterKeyPresentJniClass(masterKeyPresentEntryCls); + jmethodID masterKeyPresentEntryTypeCtor = env->GetMethodID(masterKeyPresentEntryCls, "", "(Z)V"); + masterKeyPresent = env->NewObject(masterKeyPresentEntryCls, masterKeyPresentEntryTypeCtor, masterKeyPresentValue); + } + + bool networkNamePresentNull = false; + bool networkNamePresentHasValue = true; + + bool networkNamePresentValue = entry.networkNamePresent; + + jobject networkNamePresent = nullptr; + if (!networkNamePresentNull && networkNamePresentHasValue) + { + jclass networkNamePresentEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Boolean", networkNamePresentEntryCls); + chip::JniClass networkNamePresentJniClass(networkNamePresentEntryCls); + jmethodID networkNamePresentEntryTypeCtor = env->GetMethodID(networkNamePresentEntryCls, "", "(Z)V"); + networkNamePresent = + env->NewObject(networkNamePresentEntryCls, networkNamePresentEntryTypeCtor, networkNamePresentValue); + } + + bool extendedPanIdPresentNull = false; + bool extendedPanIdPresentHasValue = true; + + bool extendedPanIdPresentValue = entry.extendedPanIdPresent; + + jobject extendedPanIdPresent = nullptr; + if (!extendedPanIdPresentNull && extendedPanIdPresentHasValue) + { + jclass extendedPanIdPresentEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Boolean", extendedPanIdPresentEntryCls); + chip::JniClass extendedPanIdPresentJniClass(extendedPanIdPresentEntryCls); + jmethodID extendedPanIdPresentEntryTypeCtor = env->GetMethodID(extendedPanIdPresentEntryCls, "", "(Z)V"); + extendedPanIdPresent = + env->NewObject(extendedPanIdPresentEntryCls, extendedPanIdPresentEntryTypeCtor, extendedPanIdPresentValue); + } + + bool meshLocalPrefixPresentNull = false; + bool meshLocalPrefixPresentHasValue = true; + + bool meshLocalPrefixPresentValue = entry.meshLocalPrefixPresent; + + jobject meshLocalPrefixPresent = nullptr; + if (!meshLocalPrefixPresentNull && meshLocalPrefixPresentHasValue) + { + jclass meshLocalPrefixPresentEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Boolean", meshLocalPrefixPresentEntryCls); + chip::JniClass meshLocalPrefixPresentJniClass(meshLocalPrefixPresentEntryCls); + jmethodID meshLocalPrefixPresentEntryTypeCtor = env->GetMethodID(meshLocalPrefixPresentEntryCls, "", "(Z)V"); + meshLocalPrefixPresent = + env->NewObject(meshLocalPrefixPresentEntryCls, meshLocalPrefixPresentEntryTypeCtor, meshLocalPrefixPresentValue); } - bool mleFrameCounterNull = false; - bool mleFrameCounterHasValue = true; + bool delayPresentNull = false; + bool delayPresentHasValue = true; - uint32_t mleFrameCounterValue = entry.mleFrameCounter; + bool delayPresentValue = entry.delayPresent; - jobject mleFrameCounter = nullptr; - if (!mleFrameCounterNull && mleFrameCounterHasValue) + jobject delayPresent = nullptr; + if (!delayPresentNull && delayPresentHasValue) { - jclass mleFrameCounterEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", mleFrameCounterEntryCls); - chip::JniClass mleFrameCounterJniClass(mleFrameCounterEntryCls); - jmethodID mleFrameCounterEntryTypeCtor = env->GetMethodID(mleFrameCounterEntryCls, "", "(J)V"); - mleFrameCounter = env->NewObject(mleFrameCounterEntryCls, mleFrameCounterEntryTypeCtor, mleFrameCounterValue); + jclass delayPresentEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Boolean", delayPresentEntryCls); + chip::JniClass delayPresentJniClass(delayPresentEntryCls); + jmethodID delayPresentEntryTypeCtor = env->GetMethodID(delayPresentEntryCls, "", "(Z)V"); + delayPresent = env->NewObject(delayPresentEntryCls, delayPresentEntryTypeCtor, delayPresentValue); } - bool lqiNull = false; - bool lqiHasValue = true; + bool panIdPresentNull = false; + bool panIdPresentHasValue = true; - uint8_t lqiValue = entry.lqi; + bool panIdPresentValue = entry.panIdPresent; - jobject lqi = nullptr; - if (!lqiNull && lqiHasValue) + jobject panIdPresent = nullptr; + if (!panIdPresentNull && panIdPresentHasValue) { - jclass lqiEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", lqiEntryCls); - chip::JniClass lqiJniClass(lqiEntryCls); - jmethodID lqiEntryTypeCtor = env->GetMethodID(lqiEntryCls, "", "(I)V"); - lqi = env->NewObject(lqiEntryCls, lqiEntryTypeCtor, lqiValue); + jclass panIdPresentEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Boolean", panIdPresentEntryCls); + chip::JniClass panIdPresentJniClass(panIdPresentEntryCls); + jmethodID panIdPresentEntryTypeCtor = env->GetMethodID(panIdPresentEntryCls, "", "(Z)V"); + panIdPresent = env->NewObject(panIdPresentEntryCls, panIdPresentEntryTypeCtor, panIdPresentValue); } - bool averageRssiNull = false; - bool averageRssiHasValue = true; + bool channelPresentNull = false; + bool channelPresentHasValue = true; - int8_t averageRssiValue = entry.averageRssi; + bool channelPresentValue = entry.channelPresent; - jobject averageRssi = nullptr; - if (!averageRssiNull && averageRssiHasValue) + jobject channelPresent = nullptr; + if (!channelPresentNull && channelPresentHasValue) { - jclass averageRssiEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", averageRssiEntryCls); - chip::JniClass averageRssiJniClass(averageRssiEntryCls); - jmethodID averageRssiEntryTypeCtor = env->GetMethodID(averageRssiEntryCls, "", "(I)V"); - averageRssi = env->NewObject(averageRssiEntryCls, averageRssiEntryTypeCtor, averageRssiValue); + jclass channelPresentEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Boolean", channelPresentEntryCls); + chip::JniClass channelPresentJniClass(channelPresentEntryCls); + jmethodID channelPresentEntryTypeCtor = env->GetMethodID(channelPresentEntryCls, "", "(Z)V"); + channelPresent = env->NewObject(channelPresentEntryCls, channelPresentEntryTypeCtor, channelPresentValue); } - bool lastRssiNull = false; - bool lastRssiHasValue = true; + bool pskcPresentNull = false; + bool pskcPresentHasValue = true; - int8_t lastRssiValue = entry.lastRssi; + bool pskcPresentValue = entry.pskcPresent; - jobject lastRssi = nullptr; - if (!lastRssiNull && lastRssiHasValue) + jobject pskcPresent = nullptr; + if (!pskcPresentNull && pskcPresentHasValue) { - jclass lastRssiEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", lastRssiEntryCls); - chip::JniClass lastRssiJniClass(lastRssiEntryCls); - jmethodID lastRssiEntryTypeCtor = env->GetMethodID(lastRssiEntryCls, "", "(I)V"); - lastRssi = env->NewObject(lastRssiEntryCls, lastRssiEntryTypeCtor, lastRssiValue); + jclass pskcPresentEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Boolean", pskcPresentEntryCls); + chip::JniClass pskcPresentJniClass(pskcPresentEntryCls); + jmethodID pskcPresentEntryTypeCtor = env->GetMethodID(pskcPresentEntryCls, "", "(Z)V"); + pskcPresent = env->NewObject(pskcPresentEntryCls, pskcPresentEntryTypeCtor, pskcPresentValue); } - bool frameErrorRateNull = false; - bool frameErrorRateHasValue = true; + bool securityPolicyPresentNull = false; + bool securityPolicyPresentHasValue = true; - uint8_t frameErrorRateValue = entry.frameErrorRate; + bool securityPolicyPresentValue = entry.securityPolicyPresent; - jobject frameErrorRate = nullptr; - if (!frameErrorRateNull && frameErrorRateHasValue) + jobject securityPolicyPresent = nullptr; + if (!securityPolicyPresentNull && securityPolicyPresentHasValue) { - jclass frameErrorRateEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", frameErrorRateEntryCls); - chip::JniClass frameErrorRateJniClass(frameErrorRateEntryCls); - jmethodID frameErrorRateEntryTypeCtor = env->GetMethodID(frameErrorRateEntryCls, "", "(I)V"); - frameErrorRate = env->NewObject(frameErrorRateEntryCls, frameErrorRateEntryTypeCtor, frameErrorRateValue); + jclass securityPolicyPresentEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Boolean", securityPolicyPresentEntryCls); + chip::JniClass securityPolicyPresentJniClass(securityPolicyPresentEntryCls); + jmethodID securityPolicyPresentEntryTypeCtor = env->GetMethodID(securityPolicyPresentEntryCls, "", "(Z)V"); + securityPolicyPresent = + env->NewObject(securityPolicyPresentEntryCls, securityPolicyPresentEntryTypeCtor, securityPolicyPresentValue); } - bool messageErrorRateNull = false; - bool messageErrorRateHasValue = true; + bool channelMaskPresentNull = false; + bool channelMaskPresentHasValue = true; - uint8_t messageErrorRateValue = entry.messageErrorRate; + bool channelMaskPresentValue = entry.channelMaskPresent; - jobject messageErrorRate = nullptr; - if (!messageErrorRateNull && messageErrorRateHasValue) + jobject channelMaskPresent = nullptr; + if (!channelMaskPresentNull && channelMaskPresentHasValue) { - jclass messageErrorRateEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", messageErrorRateEntryCls); - chip::JniClass messageErrorRateJniClass(messageErrorRateEntryCls); - jmethodID messageErrorRateEntryTypeCtor = env->GetMethodID(messageErrorRateEntryCls, "", "(I)V"); - messageErrorRate = env->NewObject(messageErrorRateEntryCls, messageErrorRateEntryTypeCtor, messageErrorRateValue); + jclass channelMaskPresentEntryCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Boolean", channelMaskPresentEntryCls); + chip::JniClass channelMaskPresentJniClass(channelMaskPresentEntryCls); + jmethodID channelMaskPresentEntryTypeCtor = env->GetMethodID(channelMaskPresentEntryCls, "", "(Z)V"); + channelMaskPresent = + env->NewObject(channelMaskPresentEntryCls, channelMaskPresentEntryTypeCtor, channelMaskPresentValue); } - bool rxOnWhenIdleNull = false; - bool rxOnWhenIdleHasValue = true; + jobject attributeObj = + env->NewObject(attributeClass, attributeCtor, activeTimestampPresent, pendingTimestampPresent, masterKeyPresent, + networkNamePresent, extendedPanIdPresent, meshLocalPrefixPresent, delayPresent, panIdPresent, + channelPresent, pskcPresent, securityPolicyPresent, channelMaskPresent); + VerifyOrReturn(attributeObj != nullptr, ChipLogError(Zcl, "Could not create OperationalDatasetComponentsAttribute object")); - bool rxOnWhenIdleValue = entry.rxOnWhenIdle; + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, attributeObj); + } + VerifyOrReturn(iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding OperationalDatasetComponentsAttribute value: %" CHIP_ERROR_FORMAT, + iter.GetStatus().Format())); - jobject rxOnWhenIdle = nullptr; - if (!rxOnWhenIdleNull && rxOnWhenIdleHasValue) - { - jclass rxOnWhenIdleEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Boolean", rxOnWhenIdleEntryCls); - chip::JniClass rxOnWhenIdleJniClass(rxOnWhenIdleEntryCls); - jmethodID rxOnWhenIdleEntryTypeCtor = env->GetMethodID(rxOnWhenIdleEntryCls, "", "(Z)V"); - rxOnWhenIdle = env->NewObject(rxOnWhenIdleEntryCls, rxOnWhenIdleEntryTypeCtor, rxOnWhenIdleValue); - } + env->ExceptionClear(); + env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); +} - bool fullThreadDeviceNull = false; - bool fullThreadDeviceHasValue = true; +CHIPThreadNetworkDiagnosticsActiveNetworkFaultsListAttributeCallback:: + CHIPThreadNetworkDiagnosticsActiveNetworkFaultsListAttributeCallback(jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), + keepAlive(keepAlive) +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } - bool fullThreadDeviceValue = entry.fullThreadDevice; + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} - jobject fullThreadDevice = nullptr; - if (!fullThreadDeviceNull && fullThreadDeviceHasValue) - { - jclass fullThreadDeviceEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Boolean", fullThreadDeviceEntryCls); - chip::JniClass fullThreadDeviceJniClass(fullThreadDeviceEntryCls); - jmethodID fullThreadDeviceEntryTypeCtor = env->GetMethodID(fullThreadDeviceEntryCls, "", "(Z)V"); - fullThreadDevice = env->NewObject(fullThreadDeviceEntryCls, fullThreadDeviceEntryTypeCtor, fullThreadDeviceValue); - } +CHIPThreadNetworkDiagnosticsActiveNetworkFaultsListAttributeCallback:: + ~CHIPThreadNetworkDiagnosticsActiveNetworkFaultsListAttributeCallback() +{ + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +} - bool fullNetworkDataNull = false; - bool fullNetworkDataHasValue = true; +void CHIPThreadNetworkDiagnosticsActiveNetworkFaultsListAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::DecodableList & list) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; - bool fullNetworkDataValue = entry.fullNetworkData; + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - jobject fullNetworkData = nullptr; - if (!fullNetworkDataNull && fullNetworkDataHasValue) - { - jclass fullNetworkDataEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Boolean", fullNetworkDataEntryCls); - chip::JniClass fullNetworkDataJniClass(fullNetworkDataEntryCls); - jmethodID fullNetworkDataEntryTypeCtor = env->GetMethodID(fullNetworkDataEntryCls, "", "(Z)V"); - fullNetworkData = env->NewObject(fullNetworkDataEntryCls, fullNetworkDataEntryTypeCtor, fullNetworkDataValue); - } + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); - bool isChildNull = false; - bool isChildHasValue = true; + // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. + javaCallbackRef = cppCallback.get()->javaCallbackRef; + VerifyOrReturn(javaCallbackRef != nullptr, + ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null")); - bool isChildValue = entry.isChild; + jclass arrayListClass; + err = chip::JniReferences::GetInstance().GetClassRef(env, "java/util/ArrayList", arrayListClass); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error using Java ArrayList")); + chip::JniClass arrayListJniClass(arrayListClass); + jmethodID arrayListCtor = env->GetMethodID(arrayListClass, "", "()V"); + jmethodID arrayListAddMethod = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z"); + VerifyOrReturn(arrayListCtor != nullptr && arrayListAddMethod != nullptr, + ChipLogError(Zcl, "Error finding Java ArrayList methods")); + jobject arrayListObj = env->NewObject(arrayListClass, arrayListCtor); + VerifyOrReturn(arrayListObj != nullptr, ChipLogError(Zcl, "Error creating Java ArrayList")); - jobject isChild = nullptr; - if (!isChildNull && isChildHasValue) - { - jclass isChildEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Boolean", isChildEntryCls); - chip::JniClass isChildJniClass(isChildEntryCls); - jmethodID isChildEntryTypeCtor = env->GetMethodID(isChildEntryCls, "", "(Z)V"); - isChild = env->NewObject(isChildEntryCls, isChildEntryTypeCtor, isChildValue); - } + jmethodID javaMethod; + err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jobject attributeObj = env->NewObject(attributeClass, attributeCtor, extAddress, age, rloc16, linkFrameCounter, - mleFrameCounter, lqi, averageRssi, lastRssi, frameErrorRate, messageErrorRate, - rxOnWhenIdle, fullThreadDevice, fullNetworkData, isChild); - VerifyOrReturn(attributeObj != nullptr, ChipLogError(Zcl, "Could not create NeighborTableListAttribute object")); + auto iter = list.begin(); + while (iter.Next()) + { + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::app::Clusters::ThreadNetworkDiagnostics::NetworkFault entryValue = entry; + + jobject entryObject = nullptr; + if (!entryNull) + { + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(I)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); + } - env->CallBooleanMethod(arrayListObj, arrayListAddMethod, attributeObj); + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); } VerifyOrReturn( iter.GetStatus() == CHIP_NO_ERROR, - ChipLogError(Zcl, "Error decoding NeighborTableListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + ChipLogError(Zcl, "Error decoding ActiveNetworkFaultsListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); env->ExceptionClear(); env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPThreadNetworkDiagnosticsRouteTableListAttributeCallback::CHIPThreadNetworkDiagnosticsRouteTableListAttributeCallback( +CHIPThreadNetworkDiagnosticsAttributeListAttributeCallback::CHIPThreadNetworkDiagnosticsAttributeListAttributeCallback( jobject javaCallback, bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -7307,7 +12976,7 @@ CHIPThreadNetworkDiagnosticsRouteTableListAttributeCallback::CHIPThreadNetworkDi } } -CHIPThreadNetworkDiagnosticsRouteTableListAttributeCallback::~CHIPThreadNetworkDiagnosticsRouteTableListAttributeCallback() +CHIPThreadNetworkDiagnosticsAttributeListAttributeCallback::~CHIPThreadNetworkDiagnosticsAttributeListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -7318,10 +12987,8 @@ CHIPThreadNetworkDiagnosticsRouteTableListAttributeCallback::~CHIPThreadNetworkD env->DeleteGlobalRef(javaCallbackRef); } -void CHIPThreadNetworkDiagnosticsRouteTableListAttributeCallback::CallbackFn( - void * context, - const chip::app::DataModel::DecodableList & - list) +void CHIPThreadNetworkDiagnosticsAttributeListAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -7330,8 +12997,8 @@ void CHIPThreadNetworkDiagnosticsRouteTableListAttributeCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; @@ -7353,194 +13020,35 @@ void CHIPThreadNetworkDiagnosticsRouteTableListAttributeCallback::CallbackFn( err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jclass attributeClass; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipClusters$ThreadNetworkDiagnosticsCluster$RouteTableListAttribute", attributeClass); - VerifyOrReturn( - err == CHIP_NO_ERROR, - ChipLogError( - Zcl, - "Could not find class chip/devicecontroller/ChipClusters$ThreadNetworkDiagnosticsCluster$RouteTableListAttribute")); - chip::JniClass attributeJniClass(attributeClass); - jmethodID attributeCtor = - env->GetMethodID(attributeClass, "", - "(Ljava/lang/Long;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/" - "Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Boolean;Ljava/lang/Boolean;)V"); - VerifyOrReturn(attributeCtor != nullptr, ChipLogError(Zcl, "Could not find RouteTableListAttribute constructor")); - auto iter = list.begin(); while (iter.Next()) { - auto & entry = iter.GetValue(); - (void) entry; - bool extAddressNull = false; - bool extAddressHasValue = true; - - uint64_t extAddressValue = entry.extAddress; - - jobject extAddress = nullptr; - if (!extAddressNull && extAddressHasValue) - { - jclass extAddressEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", extAddressEntryCls); - chip::JniClass extAddressJniClass(extAddressEntryCls); - jmethodID extAddressEntryTypeCtor = env->GetMethodID(extAddressEntryCls, "", "(J)V"); - extAddress = env->NewObject(extAddressEntryCls, extAddressEntryTypeCtor, extAddressValue); - } - - bool rloc16Null = false; - bool rloc16HasValue = true; - - uint16_t rloc16Value = entry.rloc16; - - jobject rloc16 = nullptr; - if (!rloc16Null && rloc16HasValue) - { - jclass rloc16EntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", rloc16EntryCls); - chip::JniClass rloc16JniClass(rloc16EntryCls); - jmethodID rloc16EntryTypeCtor = env->GetMethodID(rloc16EntryCls, "", "(I)V"); - rloc16 = env->NewObject(rloc16EntryCls, rloc16EntryTypeCtor, rloc16Value); - } - - bool routerIdNull = false; - bool routerIdHasValue = true; - - uint8_t routerIdValue = entry.routerId; - - jobject routerId = nullptr; - if (!routerIdNull && routerIdHasValue) - { - jclass routerIdEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", routerIdEntryCls); - chip::JniClass routerIdJniClass(routerIdEntryCls); - jmethodID routerIdEntryTypeCtor = env->GetMethodID(routerIdEntryCls, "", "(I)V"); - routerId = env->NewObject(routerIdEntryCls, routerIdEntryTypeCtor, routerIdValue); - } - - bool nextHopNull = false; - bool nextHopHasValue = true; - - uint8_t nextHopValue = entry.nextHop; - - jobject nextHop = nullptr; - if (!nextHopNull && nextHopHasValue) - { - jclass nextHopEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", nextHopEntryCls); - chip::JniClass nextHopJniClass(nextHopEntryCls); - jmethodID nextHopEntryTypeCtor = env->GetMethodID(nextHopEntryCls, "", "(I)V"); - nextHop = env->NewObject(nextHopEntryCls, nextHopEntryTypeCtor, nextHopValue); - } - - bool pathCostNull = false; - bool pathCostHasValue = true; - - uint8_t pathCostValue = entry.pathCost; - - jobject pathCost = nullptr; - if (!pathCostNull && pathCostHasValue) - { - jclass pathCostEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", pathCostEntryCls); - chip::JniClass pathCostJniClass(pathCostEntryCls); - jmethodID pathCostEntryTypeCtor = env->GetMethodID(pathCostEntryCls, "", "(I)V"); - pathCost = env->NewObject(pathCostEntryCls, pathCostEntryTypeCtor, pathCostValue); - } - - bool LQIInNull = false; - bool LQIInHasValue = true; - - uint8_t LQIInValue = entry.LQIIn; - - jobject LQIIn = nullptr; - if (!LQIInNull && LQIInHasValue) - { - jclass LQIInEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", LQIInEntryCls); - chip::JniClass LQIInJniClass(LQIInEntryCls); - jmethodID LQIInEntryTypeCtor = env->GetMethodID(LQIInEntryCls, "", "(I)V"); - LQIIn = env->NewObject(LQIInEntryCls, LQIInEntryTypeCtor, LQIInValue); - } - - bool LQIOutNull = false; - bool LQIOutHasValue = true; - - uint8_t LQIOutValue = entry.LQIOut; + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; - jobject LQIOut = nullptr; - if (!LQIOutNull && LQIOutHasValue) - { - jclass LQIOutEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", LQIOutEntryCls); - chip::JniClass LQIOutJniClass(LQIOutEntryCls); - jmethodID LQIOutEntryTypeCtor = env->GetMethodID(LQIOutEntryCls, "", "(I)V"); - LQIOut = env->NewObject(LQIOutEntryCls, LQIOutEntryTypeCtor, LQIOutValue); - } - - bool ageNull = false; - bool ageHasValue = true; - - uint8_t ageValue = entry.age; - - jobject age = nullptr; - if (!ageNull && ageHasValue) - { - jclass ageEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", ageEntryCls); - chip::JniClass ageJniClass(ageEntryCls); - jmethodID ageEntryTypeCtor = env->GetMethodID(ageEntryCls, "", "(I)V"); - age = env->NewObject(ageEntryCls, ageEntryTypeCtor, ageValue); - } - - bool allocatedNull = false; - bool allocatedHasValue = true; - - bool allocatedValue = entry.allocated; - - jobject allocated = nullptr; - if (!allocatedNull && allocatedHasValue) - { - jclass allocatedEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Boolean", allocatedEntryCls); - chip::JniClass allocatedJniClass(allocatedEntryCls); - jmethodID allocatedEntryTypeCtor = env->GetMethodID(allocatedEntryCls, "", "(Z)V"); - allocated = env->NewObject(allocatedEntryCls, allocatedEntryTypeCtor, allocatedValue); - } - - bool linkEstablishedNull = false; - bool linkEstablishedHasValue = true; - - bool linkEstablishedValue = entry.linkEstablished; - - jobject linkEstablished = nullptr; - if (!linkEstablishedNull && linkEstablishedHasValue) + jobject entryObject = nullptr; + if (!entryNull) { - jclass linkEstablishedEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Boolean", linkEstablishedEntryCls); - chip::JniClass linkEstablishedJniClass(linkEstablishedEntryCls); - jmethodID linkEstablishedEntryTypeCtor = env->GetMethodID(linkEstablishedEntryCls, "", "(Z)V"); - linkEstablished = env->NewObject(linkEstablishedEntryCls, linkEstablishedEntryTypeCtor, linkEstablishedValue); + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); } - jobject attributeObj = env->NewObject(attributeClass, attributeCtor, extAddress, rloc16, routerId, nextHop, pathCost, LQIIn, - LQIOut, age, allocated, linkEstablished); - VerifyOrReturn(attributeObj != nullptr, ChipLogError(Zcl, "Could not create RouteTableListAttribute object")); - - env->CallBooleanMethod(arrayListObj, arrayListAddMethod, attributeObj); + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); } VerifyOrReturn( iter.GetStatus() == CHIP_NO_ERROR, - ChipLogError(Zcl, "Error decoding RouteTableListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); env->ExceptionClear(); env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPThreadNetworkDiagnosticsSecurityPolicyAttributeCallback::CHIPThreadNetworkDiagnosticsSecurityPolicyAttributeCallback( - jobject javaCallback, bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), - keepAlive(keepAlive) +CHIPWakeOnLanAttributeListAttributeCallback::CHIPWakeOnLanAttributeListAttributeCallback(jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -7556,7 +13064,7 @@ CHIPThreadNetworkDiagnosticsSecurityPolicyAttributeCallback::CHIPThreadNetworkDi } } -CHIPThreadNetworkDiagnosticsSecurityPolicyAttributeCallback::~CHIPThreadNetworkDiagnosticsSecurityPolicyAttributeCallback() +CHIPWakeOnLanAttributeListAttributeCallback::~CHIPWakeOnLanAttributeListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -7567,10 +13075,8 @@ CHIPThreadNetworkDiagnosticsSecurityPolicyAttributeCallback::~CHIPThreadNetworkD env->DeleteGlobalRef(javaCallbackRef); } -void CHIPThreadNetworkDiagnosticsSecurityPolicyAttributeCallback::CallbackFn( - void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::ThreadNetworkDiagnostics::Structs::SecurityPolicy::DecodableType> & list) +void CHIPWakeOnLanAttributeListAttributeCallback::CallbackFn(void * context, + const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -7579,8 +13085,8 @@ void CHIPThreadNetworkDiagnosticsSecurityPolicyAttributeCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; @@ -7602,70 +13108,36 @@ void CHIPThreadNetworkDiagnosticsSecurityPolicyAttributeCallback::CallbackFn( err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jclass attributeClass; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipClusters$ThreadNetworkDiagnosticsCluster$SecurityPolicyAttribute", attributeClass); - VerifyOrReturn( - err == CHIP_NO_ERROR, - ChipLogError( - Zcl, - "Could not find class chip/devicecontroller/ChipClusters$ThreadNetworkDiagnosticsCluster$SecurityPolicyAttribute")); - chip::JniClass attributeJniClass(attributeClass); - jmethodID attributeCtor = env->GetMethodID(attributeClass, "", "(Ljava/lang/Integer;Ljava/lang/Integer;)V"); - VerifyOrReturn(attributeCtor != nullptr, ChipLogError(Zcl, "Could not find SecurityPolicyAttribute constructor")); - auto iter = list.begin(); while (iter.Next()) { - auto & entry = iter.GetValue(); - (void) entry; - bool rotationTimeNull = false; - bool rotationTimeHasValue = true; - - uint16_t rotationTimeValue = entry.rotationTime; - - jobject rotationTime = nullptr; - if (!rotationTimeNull && rotationTimeHasValue) - { - jclass rotationTimeEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", rotationTimeEntryCls); - chip::JniClass rotationTimeJniClass(rotationTimeEntryCls); - jmethodID rotationTimeEntryTypeCtor = env->GetMethodID(rotationTimeEntryCls, "", "(I)V"); - rotationTime = env->NewObject(rotationTimeEntryCls, rotationTimeEntryTypeCtor, rotationTimeValue); - } - - bool flagsNull = false; - bool flagsHasValue = true; + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; - uint16_t flagsValue = entry.flags; - - jobject flags = nullptr; - if (!flagsNull && flagsHasValue) + jobject entryObject = nullptr; + if (!entryNull) { - jclass flagsEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", flagsEntryCls); - chip::JniClass flagsJniClass(flagsEntryCls); - jmethodID flagsEntryTypeCtor = env->GetMethodID(flagsEntryCls, "", "(I)V"); - flags = env->NewObject(flagsEntryCls, flagsEntryTypeCtor, flagsValue); - } - - jobject attributeObj = env->NewObject(attributeClass, attributeCtor, rotationTime, flags); - VerifyOrReturn(attributeObj != nullptr, ChipLogError(Zcl, "Could not create SecurityPolicyAttribute object")); + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); + } - env->CallBooleanMethod(arrayListObj, arrayListAddMethod, attributeObj); + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); } VerifyOrReturn( iter.GetStatus() == CHIP_NO_ERROR, - ChipLogError(Zcl, "Error decoding SecurityPolicyAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); env->ExceptionClear(); env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPThreadNetworkDiagnosticsOperationalDatasetComponentsAttributeCallback:: - CHIPThreadNetworkDiagnosticsOperationalDatasetComponentsAttributeCallback(jobject javaCallback, bool keepAlive) : - chip::Callback::Callback(CallbackFn, - this), +CHIPWiFiNetworkDiagnosticsAttributeListAttributeCallback::CHIPWiFiNetworkDiagnosticsAttributeListAttributeCallback( + jobject javaCallback, bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -7682,8 +13154,7 @@ CHIPThreadNetworkDiagnosticsOperationalDatasetComponentsAttributeCallback:: } } -CHIPThreadNetworkDiagnosticsOperationalDatasetComponentsAttributeCallback:: - ~CHIPThreadNetworkDiagnosticsOperationalDatasetComponentsAttributeCallback() +CHIPWiFiNetworkDiagnosticsAttributeListAttributeCallback::~CHIPWiFiNetworkDiagnosticsAttributeListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -7694,10 +13165,8 @@ CHIPThreadNetworkDiagnosticsOperationalDatasetComponentsAttributeCallback:: env->DeleteGlobalRef(javaCallbackRef); } -void CHIPThreadNetworkDiagnosticsOperationalDatasetComponentsAttributeCallback::CallbackFn( - void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::ThreadNetworkDiagnostics::Structs::OperationalDatasetComponents::DecodableType> & list) +void CHIPWiFiNetworkDiagnosticsAttributeListAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -7706,8 +13175,8 @@ void CHIPThreadNetworkDiagnosticsOperationalDatasetComponentsAttributeCallback:: VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; @@ -7729,233 +13198,36 @@ void CHIPThreadNetworkDiagnosticsOperationalDatasetComponentsAttributeCallback:: err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/List;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); - jclass attributeClass; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipClusters$ThreadNetworkDiagnosticsCluster$OperationalDatasetComponentsAttribute", - attributeClass); - VerifyOrReturn( - err == CHIP_NO_ERROR, - ChipLogError(Zcl, - "Could not find class " - "chip/devicecontroller/ChipClusters$ThreadNetworkDiagnosticsCluster$OperationalDatasetComponentsAttribute")); - chip::JniClass attributeJniClass(attributeClass); - jmethodID attributeCtor = env->GetMethodID( - attributeClass, "", - "(Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/" - "lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;)V"); - VerifyOrReturn(attributeCtor != nullptr, ChipLogError(Zcl, "Could not find OperationalDatasetComponentsAttribute constructor")); - auto iter = list.begin(); while (iter.Next()) { - auto & entry = iter.GetValue(); - (void) entry; - bool activeTimestampPresentNull = false; - bool activeTimestampPresentHasValue = true; - - bool activeTimestampPresentValue = entry.activeTimestampPresent; - - jobject activeTimestampPresent = nullptr; - if (!activeTimestampPresentNull && activeTimestampPresentHasValue) - { - jclass activeTimestampPresentEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Boolean", activeTimestampPresentEntryCls); - chip::JniClass activeTimestampPresentJniClass(activeTimestampPresentEntryCls); - jmethodID activeTimestampPresentEntryTypeCtor = env->GetMethodID(activeTimestampPresentEntryCls, "", "(Z)V"); - activeTimestampPresent = - env->NewObject(activeTimestampPresentEntryCls, activeTimestampPresentEntryTypeCtor, activeTimestampPresentValue); - } - - bool pendingTimestampPresentNull = false; - bool pendingTimestampPresentHasValue = true; - - bool pendingTimestampPresentValue = entry.pendingTimestampPresent; - - jobject pendingTimestampPresent = nullptr; - if (!pendingTimestampPresentNull && pendingTimestampPresentHasValue) - { - jclass pendingTimestampPresentEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Boolean", pendingTimestampPresentEntryCls); - chip::JniClass pendingTimestampPresentJniClass(pendingTimestampPresentEntryCls); - jmethodID pendingTimestampPresentEntryTypeCtor = env->GetMethodID(pendingTimestampPresentEntryCls, "", "(Z)V"); - pendingTimestampPresent = - env->NewObject(pendingTimestampPresentEntryCls, pendingTimestampPresentEntryTypeCtor, pendingTimestampPresentValue); - } - - bool masterKeyPresentNull = false; - bool masterKeyPresentHasValue = true; - - bool masterKeyPresentValue = entry.masterKeyPresent; - - jobject masterKeyPresent = nullptr; - if (!masterKeyPresentNull && masterKeyPresentHasValue) - { - jclass masterKeyPresentEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Boolean", masterKeyPresentEntryCls); - chip::JniClass masterKeyPresentJniClass(masterKeyPresentEntryCls); - jmethodID masterKeyPresentEntryTypeCtor = env->GetMethodID(masterKeyPresentEntryCls, "", "(Z)V"); - masterKeyPresent = env->NewObject(masterKeyPresentEntryCls, masterKeyPresentEntryTypeCtor, masterKeyPresentValue); - } - - bool networkNamePresentNull = false; - bool networkNamePresentHasValue = true; - - bool networkNamePresentValue = entry.networkNamePresent; - - jobject networkNamePresent = nullptr; - if (!networkNamePresentNull && networkNamePresentHasValue) - { - jclass networkNamePresentEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Boolean", networkNamePresentEntryCls); - chip::JniClass networkNamePresentJniClass(networkNamePresentEntryCls); - jmethodID networkNamePresentEntryTypeCtor = env->GetMethodID(networkNamePresentEntryCls, "", "(Z)V"); - networkNamePresent = - env->NewObject(networkNamePresentEntryCls, networkNamePresentEntryTypeCtor, networkNamePresentValue); - } - - bool extendedPanIdPresentNull = false; - bool extendedPanIdPresentHasValue = true; - - bool extendedPanIdPresentValue = entry.extendedPanIdPresent; - - jobject extendedPanIdPresent = nullptr; - if (!extendedPanIdPresentNull && extendedPanIdPresentHasValue) - { - jclass extendedPanIdPresentEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Boolean", extendedPanIdPresentEntryCls); - chip::JniClass extendedPanIdPresentJniClass(extendedPanIdPresentEntryCls); - jmethodID extendedPanIdPresentEntryTypeCtor = env->GetMethodID(extendedPanIdPresentEntryCls, "", "(Z)V"); - extendedPanIdPresent = - env->NewObject(extendedPanIdPresentEntryCls, extendedPanIdPresentEntryTypeCtor, extendedPanIdPresentValue); - } - - bool meshLocalPrefixPresentNull = false; - bool meshLocalPrefixPresentHasValue = true; - - bool meshLocalPrefixPresentValue = entry.meshLocalPrefixPresent; - - jobject meshLocalPrefixPresent = nullptr; - if (!meshLocalPrefixPresentNull && meshLocalPrefixPresentHasValue) - { - jclass meshLocalPrefixPresentEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Boolean", meshLocalPrefixPresentEntryCls); - chip::JniClass meshLocalPrefixPresentJniClass(meshLocalPrefixPresentEntryCls); - jmethodID meshLocalPrefixPresentEntryTypeCtor = env->GetMethodID(meshLocalPrefixPresentEntryCls, "", "(Z)V"); - meshLocalPrefixPresent = - env->NewObject(meshLocalPrefixPresentEntryCls, meshLocalPrefixPresentEntryTypeCtor, meshLocalPrefixPresentValue); - } - - bool delayPresentNull = false; - bool delayPresentHasValue = true; - - bool delayPresentValue = entry.delayPresent; - - jobject delayPresent = nullptr; - if (!delayPresentNull && delayPresentHasValue) - { - jclass delayPresentEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Boolean", delayPresentEntryCls); - chip::JniClass delayPresentJniClass(delayPresentEntryCls); - jmethodID delayPresentEntryTypeCtor = env->GetMethodID(delayPresentEntryCls, "", "(Z)V"); - delayPresent = env->NewObject(delayPresentEntryCls, delayPresentEntryTypeCtor, delayPresentValue); - } - - bool panIdPresentNull = false; - bool panIdPresentHasValue = true; - - bool panIdPresentValue = entry.panIdPresent; - - jobject panIdPresent = nullptr; - if (!panIdPresentNull && panIdPresentHasValue) - { - jclass panIdPresentEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Boolean", panIdPresentEntryCls); - chip::JniClass panIdPresentJniClass(panIdPresentEntryCls); - jmethodID panIdPresentEntryTypeCtor = env->GetMethodID(panIdPresentEntryCls, "", "(Z)V"); - panIdPresent = env->NewObject(panIdPresentEntryCls, panIdPresentEntryTypeCtor, panIdPresentValue); - } - - bool channelPresentNull = false; - bool channelPresentHasValue = true; - - bool channelPresentValue = entry.channelPresent; - - jobject channelPresent = nullptr; - if (!channelPresentNull && channelPresentHasValue) - { - jclass channelPresentEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Boolean", channelPresentEntryCls); - chip::JniClass channelPresentJniClass(channelPresentEntryCls); - jmethodID channelPresentEntryTypeCtor = env->GetMethodID(channelPresentEntryCls, "", "(Z)V"); - channelPresent = env->NewObject(channelPresentEntryCls, channelPresentEntryTypeCtor, channelPresentValue); - } - - bool pskcPresentNull = false; - bool pskcPresentHasValue = true; - - bool pskcPresentValue = entry.pskcPresent; - - jobject pskcPresent = nullptr; - if (!pskcPresentNull && pskcPresentHasValue) - { - jclass pskcPresentEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Boolean", pskcPresentEntryCls); - chip::JniClass pskcPresentJniClass(pskcPresentEntryCls); - jmethodID pskcPresentEntryTypeCtor = env->GetMethodID(pskcPresentEntryCls, "", "(Z)V"); - pskcPresent = env->NewObject(pskcPresentEntryCls, pskcPresentEntryTypeCtor, pskcPresentValue); - } - - bool securityPolicyPresentNull = false; - bool securityPolicyPresentHasValue = true; + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; - bool securityPolicyPresentValue = entry.securityPolicyPresent; - - jobject securityPolicyPresent = nullptr; - if (!securityPolicyPresentNull && securityPolicyPresentHasValue) - { - jclass securityPolicyPresentEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Boolean", securityPolicyPresentEntryCls); - chip::JniClass securityPolicyPresentJniClass(securityPolicyPresentEntryCls); - jmethodID securityPolicyPresentEntryTypeCtor = env->GetMethodID(securityPolicyPresentEntryCls, "", "(Z)V"); - securityPolicyPresent = - env->NewObject(securityPolicyPresentEntryCls, securityPolicyPresentEntryTypeCtor, securityPolicyPresentValue); - } - - bool channelMaskPresentNull = false; - bool channelMaskPresentHasValue = true; - - bool channelMaskPresentValue = entry.channelMaskPresent; - - jobject channelMaskPresent = nullptr; - if (!channelMaskPresentNull && channelMaskPresentHasValue) + jobject entryObject = nullptr; + if (!entryNull) { - jclass channelMaskPresentEntryCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Boolean", channelMaskPresentEntryCls); - chip::JniClass channelMaskPresentJniClass(channelMaskPresentEntryCls); - jmethodID channelMaskPresentEntryTypeCtor = env->GetMethodID(channelMaskPresentEntryCls, "", "(Z)V"); - channelMaskPresent = - env->NewObject(channelMaskPresentEntryCls, channelMaskPresentEntryTypeCtor, channelMaskPresentValue); + jclass entryTypeCls; + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); + chip::JniClass jniClass(entryTypeCls); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); + entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); } - jobject attributeObj = - env->NewObject(attributeClass, attributeCtor, activeTimestampPresent, pendingTimestampPresent, masterKeyPresent, - networkNamePresent, extendedPanIdPresent, meshLocalPrefixPresent, delayPresent, panIdPresent, - channelPresent, pskcPresent, securityPolicyPresent, channelMaskPresent); - VerifyOrReturn(attributeObj != nullptr, ChipLogError(Zcl, "Could not create OperationalDatasetComponentsAttribute object")); - - env->CallBooleanMethod(arrayListObj, arrayListAddMethod, attributeObj); + env->CallBooleanMethod(arrayListObj, arrayListAddMethod, entryObject); } - VerifyOrReturn(iter.GetStatus() == CHIP_NO_ERROR, - ChipLogError(Zcl, "Error decoding OperationalDatasetComponentsAttribute value: %" CHIP_ERROR_FORMAT, - iter.GetStatus().Format())); + VerifyOrReturn( + iter.GetStatus() == CHIP_NO_ERROR, + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); env->ExceptionClear(); env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); } -CHIPThreadNetworkDiagnosticsActiveNetworkFaultsListAttributeCallback:: - CHIPThreadNetworkDiagnosticsActiveNetworkFaultsListAttributeCallback(jobject javaCallback, bool keepAlive) : - chip::Callback::Callback(CallbackFn, this), +CHIPWindowCoveringAttributeListAttributeCallback::CHIPWindowCoveringAttributeListAttributeCallback(jobject javaCallback, + bool keepAlive) : + chip::Callback::Callback(CallbackFn, this), keepAlive(keepAlive) { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -7972,8 +13244,7 @@ CHIPThreadNetworkDiagnosticsActiveNetworkFaultsListAttributeCallback:: } } -CHIPThreadNetworkDiagnosticsActiveNetworkFaultsListAttributeCallback:: - ~CHIPThreadNetworkDiagnosticsActiveNetworkFaultsListAttributeCallback() +CHIPWindowCoveringAttributeListAttributeCallback::~CHIPWindowCoveringAttributeListAttributeCallback() { JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -7984,8 +13255,8 @@ CHIPThreadNetworkDiagnosticsActiveNetworkFaultsListAttributeCallback:: env->DeleteGlobalRef(javaCallbackRef); } -void CHIPThreadNetworkDiagnosticsActiveNetworkFaultsListAttributeCallback::CallbackFn( - void * context, const chip::app::DataModel::DecodableList & list) +void CHIPWindowCoveringAttributeListAttributeCallback::CallbackFn( + void * context, const chip::app::DataModel::DecodableList & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -7994,8 +13265,8 @@ void CHIPThreadNetworkDiagnosticsActiveNetworkFaultsListAttributeCallback::Callb VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env")); - std::unique_ptr cppCallback( - reinterpret_cast(context), maybeDestroy); + std::unique_ptr cppCallback( + reinterpret_cast(context), maybeDestroy); // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback. javaCallbackRef = cppCallback.get()->javaCallbackRef; @@ -8020,17 +13291,17 @@ void CHIPThreadNetworkDiagnosticsActiveNetworkFaultsListAttributeCallback::Callb auto iter = list.begin(); while (iter.Next()) { - auto & entry = iter.GetValue(); - bool entryNull = false; - chip::app::Clusters::ThreadNetworkDiagnostics::NetworkFault entryValue = entry; + auto & entry = iter.GetValue(); + bool entryNull = false; + chip::AttributeId entryValue = entry; jobject entryObject = nullptr; if (!entryNull) { jclass entryTypeCls; - chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Integer", entryTypeCls); + chip::JniReferences::GetInstance().GetClassRef(env, "java/lang/Long", entryTypeCls); chip::JniClass jniClass(entryTypeCls); - jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(I)V"); + jmethodID entryTypeCtor = env->GetMethodID(entryTypeCls, "", "(J)V"); entryObject = env->NewObject(entryTypeCls, entryTypeCtor, entryValue); } @@ -8038,7 +13309,7 @@ void CHIPThreadNetworkDiagnosticsActiveNetworkFaultsListAttributeCallback::Callb } VerifyOrReturn( iter.GetStatus() == CHIP_NO_ERROR, - ChipLogError(Zcl, "Error decoding ActiveNetworkFaultsListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); + ChipLogError(Zcl, "Error decoding AttributeListAttribute value: %" CHIP_ERROR_FORMAT, iter.GetStatus().Format())); env->ExceptionClear(); env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj); diff --git a/src/controller/java/zap-generated/CHIPReadCallbacks.h b/src/controller/java/zap-generated/CHIPReadCallbacks.h index 375a0106e337ff..789959af1250c5 100644 --- a/src/controller/java/zap-generated/CHIPReadCallbacks.h +++ b/src/controller/java/zap-generated/CHIPReadCallbacks.h @@ -361,880 +361,2126 @@ class CHIPAccessControlExtensionAttributeCallback bool keepAlive; }; +class CHIPAccessControlAttributeListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPAccessControlAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPAccessControlAttributeListAttributeCallback(); + + static void maybeDestroy(CHIPAccessControlAttributeListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPAccountLoginAttributeListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPAccountLoginAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPAccountLoginAttributeListAttributeCallback(); + + static void maybeDestroy(CHIPAccountLoginAttributeListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPAdministratorCommissioningAttributeListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPAdministratorCommissioningAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPAdministratorCommissioningAttributeListAttributeCallback(); + + static void maybeDestroy(CHIPAdministratorCommissioningAttributeListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPApplicationBasicAttributeListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPApplicationBasicAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPApplicationBasicAttributeListAttributeCallback(); + + static void maybeDestroy(CHIPApplicationBasicAttributeListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + class CHIPApplicationLauncherApplicationLauncherListAttributeCallback : public chip::Callback::Callback { public: CHIPApplicationLauncherApplicationLauncherListAttributeCallback(jobject javaCallback, bool keepAlive = false); - ~CHIPApplicationLauncherApplicationLauncherListAttributeCallback(); + ~CHIPApplicationLauncherApplicationLauncherListAttributeCallback(); + + static void maybeDestroy(CHIPApplicationLauncherApplicationLauncherListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPApplicationLauncherAttributeListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPApplicationLauncherAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPApplicationLauncherAttributeListAttributeCallback(); + + static void maybeDestroy(CHIPApplicationLauncherAttributeListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPAudioOutputAudioOutputListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPAudioOutputAudioOutputListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPAudioOutputAudioOutputListAttributeCallback(); + + static void maybeDestroy(CHIPAudioOutputAudioOutputListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn( + void * context, + const chip::app::DataModel::DecodableList & + list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPAudioOutputAttributeListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPAudioOutputAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPAudioOutputAttributeListAttributeCallback(); + + static void maybeDestroy(CHIPAudioOutputAttributeListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPBarrierControlAttributeListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPBarrierControlAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPBarrierControlAttributeListAttributeCallback(); + + static void maybeDestroy(CHIPBarrierControlAttributeListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPBasicAttributeListAttributeCallback : public chip::Callback::Callback +{ +public: + CHIPBasicAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPBasicAttributeListAttributeCallback(); + + static void maybeDestroy(CHIPBasicAttributeListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPBinaryInputBasicAttributeListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPBinaryInputBasicAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPBinaryInputBasicAttributeListAttributeCallback(); + + static void maybeDestroy(CHIPBinaryInputBasicAttributeListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPBindingAttributeListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPBindingAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPBindingAttributeListAttributeCallback(); + + static void maybeDestroy(CHIPBindingAttributeListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPBooleanStateAttributeListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPBooleanStateAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPBooleanStateAttributeListAttributeCallback(); + + static void maybeDestroy(CHIPBooleanStateAttributeListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPBridgedActionsActionListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPBridgedActionsActionListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPBridgedActionsActionListAttributeCallback(); + + static void maybeDestroy(CHIPBridgedActionsActionListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn( + void * context, + const chip::app::DataModel::DecodableList & + list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPBridgedActionsEndpointListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPBridgedActionsEndpointListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPBridgedActionsEndpointListAttributeCallback(); + + static void maybeDestroy(CHIPBridgedActionsEndpointListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn( + void * context, + const chip::app::DataModel::DecodableList & + list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPBridgedActionsAttributeListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPBridgedActionsAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPBridgedActionsAttributeListAttributeCallback(); + + static void maybeDestroy(CHIPBridgedActionsAttributeListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPBridgedDeviceBasicAttributeListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPBridgedDeviceBasicAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPBridgedDeviceBasicAttributeListAttributeCallback(); + + static void maybeDestroy(CHIPBridgedDeviceBasicAttributeListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPColorControlAttributeListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPColorControlAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPColorControlAttributeListAttributeCallback(); + + static void maybeDestroy(CHIPColorControlAttributeListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPContentLauncherAcceptsHeaderListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPContentLauncherAcceptsHeaderListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPContentLauncherAcceptsHeaderListAttributeCallback(); + + static void maybeDestroy(CHIPContentLauncherAcceptsHeaderListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPContentLauncherSupportedStreamingTypesAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPContentLauncherSupportedStreamingTypesAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPContentLauncherSupportedStreamingTypesAttributeCallback(); + + static void maybeDestroy(CHIPContentLauncherSupportedStreamingTypesAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void + CallbackFn(void * context, + const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPContentLauncherAttributeListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPContentLauncherAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPContentLauncherAttributeListAttributeCallback(); + + static void maybeDestroy(CHIPContentLauncherAttributeListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPDescriptorDeviceListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPDescriptorDeviceListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPDescriptorDeviceListAttributeCallback(); + + static void maybeDestroy(CHIPDescriptorDeviceListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn( + void * context, + const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPDescriptorServerListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPDescriptorServerListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPDescriptorServerListAttributeCallback(); + + static void maybeDestroy(CHIPDescriptorServerListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPDescriptorClientListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPDescriptorClientListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPDescriptorClientListAttributeCallback(); + + static void maybeDestroy(CHIPDescriptorClientListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPDescriptorPartsListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPDescriptorPartsListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPDescriptorPartsListAttributeCallback(); + + static void maybeDestroy(CHIPDescriptorPartsListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPDescriptorAttributeListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPDescriptorAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPDescriptorAttributeListAttributeCallback(); + + static void maybeDestroy(CHIPDescriptorAttributeListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPDiagnosticLogsAttributeListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPDiagnosticLogsAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPDiagnosticLogsAttributeListAttributeCallback(); + + static void maybeDestroy(CHIPDiagnosticLogsAttributeListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPDoorLockAttributeListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPDoorLockAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPDoorLockAttributeListAttributeCallback(); + + static void maybeDestroy(CHIPDoorLockAttributeListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPElectricalMeasurementAttributeListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPElectricalMeasurementAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPElectricalMeasurementAttributeListAttributeCallback(); + + static void maybeDestroy(CHIPElectricalMeasurementAttributeListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPEthernetNetworkDiagnosticsAttributeListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPEthernetNetworkDiagnosticsAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPEthernetNetworkDiagnosticsAttributeListAttributeCallback(); + + static void maybeDestroy(CHIPEthernetNetworkDiagnosticsAttributeListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPFixedLabelLabelListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPFixedLabelLabelListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPFixedLabelLabelListAttributeCallback(); + + static void maybeDestroy(CHIPFixedLabelLabelListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn( + void * context, + const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPFixedLabelAttributeListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPFixedLabelAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPFixedLabelAttributeListAttributeCallback(); + + static void maybeDestroy(CHIPFixedLabelAttributeListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPFlowMeasurementAttributeListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPFlowMeasurementAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPFlowMeasurementAttributeListAttributeCallback(); + + static void maybeDestroy(CHIPFlowMeasurementAttributeListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPGeneralCommissioningBasicCommissioningInfoListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPGeneralCommissioningBasicCommissioningInfoListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPGeneralCommissioningBasicCommissioningInfoListAttributeCallback(); + + static void maybeDestroy(CHIPGeneralCommissioningBasicCommissioningInfoListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void + CallbackFn(void * context, + const chip::app::DataModel::DecodableList< + chip::app::Clusters::GeneralCommissioning::Structs::BasicCommissioningInfoType::DecodableType> & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPGeneralCommissioningAttributeListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPGeneralCommissioningAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPGeneralCommissioningAttributeListAttributeCallback(); + + static void maybeDestroy(CHIPGeneralCommissioningAttributeListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPGeneralDiagnosticsNetworkInterfacesAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPGeneralDiagnosticsNetworkInterfacesAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPGeneralDiagnosticsNetworkInterfacesAttributeCallback(); + + static void maybeDestroy(CHIPGeneralDiagnosticsNetworkInterfacesAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, + const chip::app::DataModel::DecodableList< + chip::app::Clusters::GeneralDiagnostics::Structs::NetworkInterfaceType::DecodableType> & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPGeneralDiagnosticsActiveHardwareFaultsAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPGeneralDiagnosticsActiveHardwareFaultsAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPGeneralDiagnosticsActiveHardwareFaultsAttributeCallback(); + + static void maybeDestroy(CHIPGeneralDiagnosticsActiveHardwareFaultsAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPGeneralDiagnosticsActiveRadioFaultsAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPGeneralDiagnosticsActiveRadioFaultsAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPGeneralDiagnosticsActiveRadioFaultsAttributeCallback(); + + static void maybeDestroy(CHIPGeneralDiagnosticsActiveRadioFaultsAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPGeneralDiagnosticsActiveNetworkFaultsAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPGeneralDiagnosticsActiveNetworkFaultsAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPGeneralDiagnosticsActiveNetworkFaultsAttributeCallback(); + + static void maybeDestroy(CHIPGeneralDiagnosticsActiveNetworkFaultsAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPGeneralDiagnosticsAttributeListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPGeneralDiagnosticsAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPGeneralDiagnosticsAttributeListAttributeCallback(); + + static void maybeDestroy(CHIPGeneralDiagnosticsAttributeListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPGroupKeyManagementGroupsAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPGroupKeyManagementGroupsAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPGroupKeyManagementGroupsAttributeCallback(); + + static void maybeDestroy(CHIPGroupKeyManagementGroupsAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn( + void * context, + const chip::app::DataModel::DecodableList & + list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPGroupKeyManagementGroupKeysAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPGroupKeyManagementGroupKeysAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPGroupKeyManagementGroupKeysAttributeCallback(); + + static void maybeDestroy(CHIPGroupKeyManagementGroupKeysAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn( + void * context, + const chip::app::DataModel::DecodableList & + list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPGroupKeyManagementAttributeListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPGroupKeyManagementAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPGroupKeyManagementAttributeListAttributeCallback(); + + static void maybeDestroy(CHIPGroupKeyManagementAttributeListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPGroupsAttributeListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPGroupsAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPGroupsAttributeListAttributeCallback(); + + static void maybeDestroy(CHIPGroupsAttributeListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPIdentifyAttributeListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPIdentifyAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPIdentifyAttributeListAttributeCallback(); + + static void maybeDestroy(CHIPIdentifyAttributeListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPIlluminanceMeasurementMeasuredValueAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPIlluminanceMeasurementMeasuredValueAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPIlluminanceMeasurementMeasuredValueAttributeCallback(); + + static void maybeDestroy(CHIPIlluminanceMeasurementMeasuredValueAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::Nullable & value); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPIlluminanceMeasurementMinMeasuredValueAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPIlluminanceMeasurementMinMeasuredValueAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPIlluminanceMeasurementMinMeasuredValueAttributeCallback(); + + static void maybeDestroy(CHIPIlluminanceMeasurementMinMeasuredValueAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::Nullable & value); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPIlluminanceMeasurementMaxMeasuredValueAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPIlluminanceMeasurementMaxMeasuredValueAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPIlluminanceMeasurementMaxMeasuredValueAttributeCallback(); + + static void maybeDestroy(CHIPIlluminanceMeasurementMaxMeasuredValueAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::Nullable & value); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPIlluminanceMeasurementAttributeListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPIlluminanceMeasurementAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPIlluminanceMeasurementAttributeListAttributeCallback(); + + static void maybeDestroy(CHIPIlluminanceMeasurementAttributeListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPKeypadInputAttributeListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPKeypadInputAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPKeypadInputAttributeListAttributeCallback(); + + static void maybeDestroy(CHIPKeypadInputAttributeListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPLevelControlOnTransitionTimeAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPLevelControlOnTransitionTimeAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPLevelControlOnTransitionTimeAttributeCallback(); + + static void maybeDestroy(CHIPLevelControlOnTransitionTimeAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::Nullable & value); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPLevelControlOffTransitionTimeAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPLevelControlOffTransitionTimeAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPLevelControlOffTransitionTimeAttributeCallback(); - static void maybeDestroy(CHIPApplicationLauncherApplicationLauncherListAttributeCallback * callback) + static void maybeDestroy(CHIPLevelControlOffTransitionTimeAttributeCallback * callback) { if (!callback->keepAlive) { callback->Cancel(); - chip::Platform::Delete(callback); + chip::Platform::Delete(callback); } } - static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + static void CallbackFn(void * context, const chip::app::DataModel::Nullable & value); private: jobject javaCallbackRef; bool keepAlive; }; -class CHIPAudioOutputAudioOutputListAttributeCallback - : public chip::Callback::Callback +class CHIPLevelControlAttributeListAttributeCallback + : public chip::Callback::Callback { public: - CHIPAudioOutputAudioOutputListAttributeCallback(jobject javaCallback, bool keepAlive = false); + CHIPLevelControlAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); - ~CHIPAudioOutputAudioOutputListAttributeCallback(); + ~CHIPLevelControlAttributeListAttributeCallback(); - static void maybeDestroy(CHIPAudioOutputAudioOutputListAttributeCallback * callback) + static void maybeDestroy(CHIPLevelControlAttributeListAttributeCallback * callback) { if (!callback->keepAlive) { callback->Cancel(); - chip::Platform::Delete(callback); + chip::Platform::Delete(callback); } } - static void CallbackFn( - void * context, - const chip::app::DataModel::DecodableList & - list); + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); private: jobject javaCallbackRef; bool keepAlive; }; -class CHIPBridgedActionsActionListAttributeCallback - : public chip::Callback::Callback +class CHIPLowPowerAttributeListAttributeCallback + : public chip::Callback::Callback { public: - CHIPBridgedActionsActionListAttributeCallback(jobject javaCallback, bool keepAlive = false); + CHIPLowPowerAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); - ~CHIPBridgedActionsActionListAttributeCallback(); + ~CHIPLowPowerAttributeListAttributeCallback(); - static void maybeDestroy(CHIPBridgedActionsActionListAttributeCallback * callback) + static void maybeDestroy(CHIPLowPowerAttributeListAttributeCallback * callback) { if (!callback->keepAlive) { callback->Cancel(); - chip::Platform::Delete(callback); + chip::Platform::Delete(callback); } } - static void CallbackFn( - void * context, - const chip::app::DataModel::DecodableList & - list); + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); private: jobject javaCallbackRef; bool keepAlive; }; -class CHIPBridgedActionsEndpointListAttributeCallback - : public chip::Callback::Callback +class CHIPMediaInputMediaInputListAttributeCallback + : public chip::Callback::Callback { public: - CHIPBridgedActionsEndpointListAttributeCallback(jobject javaCallback, bool keepAlive = false); + CHIPMediaInputMediaInputListAttributeCallback(jobject javaCallback, bool keepAlive = false); - ~CHIPBridgedActionsEndpointListAttributeCallback(); + ~CHIPMediaInputMediaInputListAttributeCallback(); - static void maybeDestroy(CHIPBridgedActionsEndpointListAttributeCallback * callback) + static void maybeDestroy(CHIPMediaInputMediaInputListAttributeCallback * callback) { if (!callback->keepAlive) { callback->Cancel(); - chip::Platform::Delete(callback); + chip::Platform::Delete(callback); } } static void CallbackFn( void * context, - const chip::app::DataModel::DecodableList & - list); + const chip::app::DataModel::DecodableList & list); private: jobject javaCallbackRef; bool keepAlive; }; -class CHIPContentLauncherAcceptsHeaderListAttributeCallback - : public chip::Callback::Callback +class CHIPMediaInputAttributeListAttributeCallback + : public chip::Callback::Callback { public: - CHIPContentLauncherAcceptsHeaderListAttributeCallback(jobject javaCallback, bool keepAlive = false); + CHIPMediaInputAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); - ~CHIPContentLauncherAcceptsHeaderListAttributeCallback(); + ~CHIPMediaInputAttributeListAttributeCallback(); - static void maybeDestroy(CHIPContentLauncherAcceptsHeaderListAttributeCallback * callback) + static void maybeDestroy(CHIPMediaInputAttributeListAttributeCallback * callback) { if (!callback->keepAlive) { callback->Cancel(); - chip::Platform::Delete(callback); + chip::Platform::Delete(callback); } } - static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); private: jobject javaCallbackRef; bool keepAlive; }; -class CHIPContentLauncherSupportedStreamingTypesAttributeCallback - : public chip::Callback::Callback +class CHIPMediaPlaybackAttributeListAttributeCallback + : public chip::Callback::Callback { public: - CHIPContentLauncherSupportedStreamingTypesAttributeCallback(jobject javaCallback, bool keepAlive = false); + CHIPMediaPlaybackAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); - ~CHIPContentLauncherSupportedStreamingTypesAttributeCallback(); + ~CHIPMediaPlaybackAttributeListAttributeCallback(); - static void maybeDestroy(CHIPContentLauncherSupportedStreamingTypesAttributeCallback * callback) + static void maybeDestroy(CHIPMediaPlaybackAttributeListAttributeCallback * callback) { if (!callback->keepAlive) { callback->Cancel(); - chip::Platform::Delete(callback); + chip::Platform::Delete(callback); } } - static void - CallbackFn(void * context, - const chip::app::DataModel::DecodableList & list); + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); private: jobject javaCallbackRef; bool keepAlive; }; -class CHIPDescriptorDeviceListAttributeCallback - : public chip::Callback::Callback +class CHIPModeSelectSupportedModesAttributeCallback + : public chip::Callback::Callback { public: - CHIPDescriptorDeviceListAttributeCallback(jobject javaCallback, bool keepAlive = false); + CHIPModeSelectSupportedModesAttributeCallback(jobject javaCallback, bool keepAlive = false); - ~CHIPDescriptorDeviceListAttributeCallback(); + ~CHIPModeSelectSupportedModesAttributeCallback(); - static void maybeDestroy(CHIPDescriptorDeviceListAttributeCallback * callback) + static void maybeDestroy(CHIPModeSelectSupportedModesAttributeCallback * callback) { if (!callback->keepAlive) { callback->Cancel(); - chip::Platform::Delete(callback); + chip::Platform::Delete(callback); } } static void CallbackFn( void * context, - const chip::app::DataModel::DecodableList & list); + const chip::app::DataModel::DecodableList & + list); private: jobject javaCallbackRef; bool keepAlive; }; -class CHIPDescriptorServerListAttributeCallback - : public chip::Callback::Callback +class CHIPModeSelectAttributeListAttributeCallback + : public chip::Callback::Callback { public: - CHIPDescriptorServerListAttributeCallback(jobject javaCallback, bool keepAlive = false); + CHIPModeSelectAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); - ~CHIPDescriptorServerListAttributeCallback(); + ~CHIPModeSelectAttributeListAttributeCallback(); - static void maybeDestroy(CHIPDescriptorServerListAttributeCallback * callback) + static void maybeDestroy(CHIPModeSelectAttributeListAttributeCallback * callback) { if (!callback->keepAlive) { callback->Cancel(); - chip::Platform::Delete(callback); + chip::Platform::Delete(callback); } } - static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); private: jobject javaCallbackRef; bool keepAlive; }; -class CHIPDescriptorClientListAttributeCallback - : public chip::Callback::Callback +class CHIPNetworkCommissioningAttributeListAttributeCallback + : public chip::Callback::Callback { public: - CHIPDescriptorClientListAttributeCallback(jobject javaCallback, bool keepAlive = false); + CHIPNetworkCommissioningAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); - ~CHIPDescriptorClientListAttributeCallback(); + ~CHIPNetworkCommissioningAttributeListAttributeCallback(); - static void maybeDestroy(CHIPDescriptorClientListAttributeCallback * callback) + static void maybeDestroy(CHIPNetworkCommissioningAttributeListAttributeCallback * callback) { if (!callback->keepAlive) { callback->Cancel(); - chip::Platform::Delete(callback); + chip::Platform::Delete(callback); } } - static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); private: jobject javaCallbackRef; bool keepAlive; }; -class CHIPDescriptorPartsListAttributeCallback - : public chip::Callback::Callback +class CHIPOtaSoftwareUpdateProviderAttributeListAttributeCallback + : public chip::Callback::Callback { public: - CHIPDescriptorPartsListAttributeCallback(jobject javaCallback, bool keepAlive = false); + CHIPOtaSoftwareUpdateProviderAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); - ~CHIPDescriptorPartsListAttributeCallback(); + ~CHIPOtaSoftwareUpdateProviderAttributeListAttributeCallback(); - static void maybeDestroy(CHIPDescriptorPartsListAttributeCallback * callback) + static void maybeDestroy(CHIPOtaSoftwareUpdateProviderAttributeListAttributeCallback * callback) { if (!callback->keepAlive) { callback->Cancel(); - chip::Platform::Delete(callback); + chip::Platform::Delete(callback); } } - static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); private: jobject javaCallbackRef; bool keepAlive; }; -class CHIPFixedLabelLabelListAttributeCallback - : public chip::Callback::Callback +class CHIPOtaSoftwareUpdateRequestorAttributeListAttributeCallback + : public chip::Callback::Callback { public: - CHIPFixedLabelLabelListAttributeCallback(jobject javaCallback, bool keepAlive = false); + CHIPOtaSoftwareUpdateRequestorAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); - ~CHIPFixedLabelLabelListAttributeCallback(); + ~CHIPOtaSoftwareUpdateRequestorAttributeListAttributeCallback(); - static void maybeDestroy(CHIPFixedLabelLabelListAttributeCallback * callback) + static void maybeDestroy(CHIPOtaSoftwareUpdateRequestorAttributeListAttributeCallback * callback) { if (!callback->keepAlive) { callback->Cancel(); - chip::Platform::Delete(callback); + chip::Platform::Delete(callback); } } - static void CallbackFn( - void * context, - const chip::app::DataModel::DecodableList & list); + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); private: jobject javaCallbackRef; bool keepAlive; }; -class CHIPGeneralCommissioningBasicCommissioningInfoListAttributeCallback - : public chip::Callback::Callback +class CHIPOccupancySensingAttributeListAttributeCallback + : public chip::Callback::Callback { public: - CHIPGeneralCommissioningBasicCommissioningInfoListAttributeCallback(jobject javaCallback, bool keepAlive = false); + CHIPOccupancySensingAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); - ~CHIPGeneralCommissioningBasicCommissioningInfoListAttributeCallback(); + ~CHIPOccupancySensingAttributeListAttributeCallback(); - static void maybeDestroy(CHIPGeneralCommissioningBasicCommissioningInfoListAttributeCallback * callback) + static void maybeDestroy(CHIPOccupancySensingAttributeListAttributeCallback * callback) { if (!callback->keepAlive) { callback->Cancel(); - chip::Platform::Delete(callback); + chip::Platform::Delete(callback); } } - static void - CallbackFn(void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::GeneralCommissioning::Structs::BasicCommissioningInfoType::DecodableType> & list); + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); private: jobject javaCallbackRef; bool keepAlive; }; -class CHIPGeneralDiagnosticsNetworkInterfacesAttributeCallback - : public chip::Callback::Callback +class CHIPOnOffAttributeListAttributeCallback : public chip::Callback::Callback { public: - CHIPGeneralDiagnosticsNetworkInterfacesAttributeCallback(jobject javaCallback, bool keepAlive = false); + CHIPOnOffAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); - ~CHIPGeneralDiagnosticsNetworkInterfacesAttributeCallback(); + ~CHIPOnOffAttributeListAttributeCallback(); - static void maybeDestroy(CHIPGeneralDiagnosticsNetworkInterfacesAttributeCallback * callback) + static void maybeDestroy(CHIPOnOffAttributeListAttributeCallback * callback) { if (!callback->keepAlive) { callback->Cancel(); - chip::Platform::Delete(callback); + chip::Platform::Delete(callback); } } - static void CallbackFn(void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::GeneralDiagnostics::Structs::NetworkInterfaceType::DecodableType> & list); + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); private: jobject javaCallbackRef; bool keepAlive; }; -class CHIPGeneralDiagnosticsActiveHardwareFaultsAttributeCallback - : public chip::Callback::Callback +class CHIPOnOffSwitchConfigurationAttributeListAttributeCallback + : public chip::Callback::Callback { public: - CHIPGeneralDiagnosticsActiveHardwareFaultsAttributeCallback(jobject javaCallback, bool keepAlive = false); + CHIPOnOffSwitchConfigurationAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); - ~CHIPGeneralDiagnosticsActiveHardwareFaultsAttributeCallback(); + ~CHIPOnOffSwitchConfigurationAttributeListAttributeCallback(); - static void maybeDestroy(CHIPGeneralDiagnosticsActiveHardwareFaultsAttributeCallback * callback) + static void maybeDestroy(CHIPOnOffSwitchConfigurationAttributeListAttributeCallback * callback) { if (!callback->keepAlive) { callback->Cancel(); - chip::Platform::Delete(callback); + chip::Platform::Delete(callback); } } - static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); private: jobject javaCallbackRef; bool keepAlive; }; -class CHIPGeneralDiagnosticsActiveRadioFaultsAttributeCallback - : public chip::Callback::Callback +class CHIPOperationalCredentialsFabricsListAttributeCallback + : public chip::Callback::Callback { public: - CHIPGeneralDiagnosticsActiveRadioFaultsAttributeCallback(jobject javaCallback, bool keepAlive = false); + CHIPOperationalCredentialsFabricsListAttributeCallback(jobject javaCallback, bool keepAlive = false); - ~CHIPGeneralDiagnosticsActiveRadioFaultsAttributeCallback(); + ~CHIPOperationalCredentialsFabricsListAttributeCallback(); - static void maybeDestroy(CHIPGeneralDiagnosticsActiveRadioFaultsAttributeCallback * callback) + static void maybeDestroy(CHIPOperationalCredentialsFabricsListAttributeCallback * callback) { if (!callback->keepAlive) { callback->Cancel(); - chip::Platform::Delete(callback); + chip::Platform::Delete(callback); } } - static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + static void CallbackFn(void * context, + const chip::app::DataModel::DecodableList< + chip::app::Clusters::OperationalCredentials::Structs::FabricDescriptor::DecodableType> & list); private: jobject javaCallbackRef; bool keepAlive; }; -class CHIPGeneralDiagnosticsActiveNetworkFaultsAttributeCallback - : public chip::Callback::Callback +class CHIPOperationalCredentialsTrustedRootCertificatesAttributeCallback + : public chip::Callback::Callback { public: - CHIPGeneralDiagnosticsActiveNetworkFaultsAttributeCallback(jobject javaCallback, bool keepAlive = false); + CHIPOperationalCredentialsTrustedRootCertificatesAttributeCallback(jobject javaCallback, bool keepAlive = false); - ~CHIPGeneralDiagnosticsActiveNetworkFaultsAttributeCallback(); + ~CHIPOperationalCredentialsTrustedRootCertificatesAttributeCallback(); - static void maybeDestroy(CHIPGeneralDiagnosticsActiveNetworkFaultsAttributeCallback * callback) + static void maybeDestroy(CHIPOperationalCredentialsTrustedRootCertificatesAttributeCallback * callback) { if (!callback->keepAlive) { callback->Cancel(); - chip::Platform::Delete(callback); + chip::Platform::Delete(callback); } } - static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); private: jobject javaCallbackRef; bool keepAlive; }; -class CHIPGroupKeyManagementGroupsAttributeCallback - : public chip::Callback::Callback +class CHIPOperationalCredentialsCurrentFabricIndexAttributeCallback + : public chip::Callback::Callback { public: - CHIPGroupKeyManagementGroupsAttributeCallback(jobject javaCallback, bool keepAlive = false); + CHIPOperationalCredentialsCurrentFabricIndexAttributeCallback(jobject javaCallback, bool keepAlive = false); - ~CHIPGroupKeyManagementGroupsAttributeCallback(); + ~CHIPOperationalCredentialsCurrentFabricIndexAttributeCallback(); - static void maybeDestroy(CHIPGroupKeyManagementGroupsAttributeCallback * callback) + static void maybeDestroy(CHIPOperationalCredentialsCurrentFabricIndexAttributeCallback * callback) { if (!callback->keepAlive) { callback->Cancel(); - chip::Platform::Delete(callback); + chip::Platform::Delete(callback); } } - static void CallbackFn( - void * context, - const chip::app::DataModel::DecodableList & - list); + static void CallbackFn(void * context, chip::FabricIndex value); private: jobject javaCallbackRef; bool keepAlive; }; -class CHIPGroupKeyManagementGroupKeysAttributeCallback - : public chip::Callback::Callback +class CHIPOperationalCredentialsAttributeListAttributeCallback + : public chip::Callback::Callback { public: - CHIPGroupKeyManagementGroupKeysAttributeCallback(jobject javaCallback, bool keepAlive = false); + CHIPOperationalCredentialsAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); - ~CHIPGroupKeyManagementGroupKeysAttributeCallback(); + ~CHIPOperationalCredentialsAttributeListAttributeCallback(); - static void maybeDestroy(CHIPGroupKeyManagementGroupKeysAttributeCallback * callback) + static void maybeDestroy(CHIPOperationalCredentialsAttributeListAttributeCallback * callback) { if (!callback->keepAlive) { callback->Cancel(); - chip::Platform::Delete(callback); + chip::Platform::Delete(callback); } } - static void CallbackFn( - void * context, - const chip::app::DataModel::DecodableList & - list); + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); private: jobject javaCallbackRef; bool keepAlive; }; -class CHIPIlluminanceMeasurementMeasuredValueAttributeCallback - : public chip::Callback::Callback +class CHIPPowerSourceActiveBatteryFaultsAttributeCallback + : public chip::Callback::Callback { public: - CHIPIlluminanceMeasurementMeasuredValueAttributeCallback(jobject javaCallback, bool keepAlive = false); + CHIPPowerSourceActiveBatteryFaultsAttributeCallback(jobject javaCallback, bool keepAlive = false); - ~CHIPIlluminanceMeasurementMeasuredValueAttributeCallback(); + ~CHIPPowerSourceActiveBatteryFaultsAttributeCallback(); - static void maybeDestroy(CHIPIlluminanceMeasurementMeasuredValueAttributeCallback * callback) + static void maybeDestroy(CHIPPowerSourceActiveBatteryFaultsAttributeCallback * callback) { if (!callback->keepAlive) { callback->Cancel(); - chip::Platform::Delete(callback); + chip::Platform::Delete(callback); } } - static void CallbackFn(void * context, const chip::app::DataModel::Nullable & value); + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); private: jobject javaCallbackRef; bool keepAlive; }; -class CHIPIlluminanceMeasurementMinMeasuredValueAttributeCallback - : public chip::Callback::Callback +class CHIPPowerSourceAttributeListAttributeCallback + : public chip::Callback::Callback { public: - CHIPIlluminanceMeasurementMinMeasuredValueAttributeCallback(jobject javaCallback, bool keepAlive = false); + CHIPPowerSourceAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); - ~CHIPIlluminanceMeasurementMinMeasuredValueAttributeCallback(); + ~CHIPPowerSourceAttributeListAttributeCallback(); - static void maybeDestroy(CHIPIlluminanceMeasurementMinMeasuredValueAttributeCallback * callback) + static void maybeDestroy(CHIPPowerSourceAttributeListAttributeCallback * callback) { if (!callback->keepAlive) { callback->Cancel(); - chip::Platform::Delete(callback); + chip::Platform::Delete(callback); } } - static void CallbackFn(void * context, const chip::app::DataModel::Nullable & value); + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); private: jobject javaCallbackRef; bool keepAlive; }; -class CHIPIlluminanceMeasurementMaxMeasuredValueAttributeCallback - : public chip::Callback::Callback +class CHIPPowerSourceConfigurationSourcesAttributeCallback + : public chip::Callback::Callback { public: - CHIPIlluminanceMeasurementMaxMeasuredValueAttributeCallback(jobject javaCallback, bool keepAlive = false); + CHIPPowerSourceConfigurationSourcesAttributeCallback(jobject javaCallback, bool keepAlive = false); - ~CHIPIlluminanceMeasurementMaxMeasuredValueAttributeCallback(); + ~CHIPPowerSourceConfigurationSourcesAttributeCallback(); - static void maybeDestroy(CHIPIlluminanceMeasurementMaxMeasuredValueAttributeCallback * callback) + static void maybeDestroy(CHIPPowerSourceConfigurationSourcesAttributeCallback * callback) { if (!callback->keepAlive) { callback->Cancel(); - chip::Platform::Delete(callback); + chip::Platform::Delete(callback); } } - static void CallbackFn(void * context, const chip::app::DataModel::Nullable & value); + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); private: jobject javaCallbackRef; bool keepAlive; }; -class CHIPLevelControlOnTransitionTimeAttributeCallback - : public chip::Callback::Callback +class CHIPPowerSourceConfigurationAttributeListAttributeCallback + : public chip::Callback::Callback { public: - CHIPLevelControlOnTransitionTimeAttributeCallback(jobject javaCallback, bool keepAlive = false); + CHIPPowerSourceConfigurationAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); - ~CHIPLevelControlOnTransitionTimeAttributeCallback(); + ~CHIPPowerSourceConfigurationAttributeListAttributeCallback(); - static void maybeDestroy(CHIPLevelControlOnTransitionTimeAttributeCallback * callback) + static void maybeDestroy(CHIPPowerSourceConfigurationAttributeListAttributeCallback * callback) { if (!callback->keepAlive) { callback->Cancel(); - chip::Platform::Delete(callback); + chip::Platform::Delete(callback); } } - static void CallbackFn(void * context, const chip::app::DataModel::Nullable & value); + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); private: jobject javaCallbackRef; bool keepAlive; }; -class CHIPLevelControlOffTransitionTimeAttributeCallback - : public chip::Callback::Callback +class CHIPPressureMeasurementAttributeListAttributeCallback + : public chip::Callback::Callback { public: - CHIPLevelControlOffTransitionTimeAttributeCallback(jobject javaCallback, bool keepAlive = false); + CHIPPressureMeasurementAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); - ~CHIPLevelControlOffTransitionTimeAttributeCallback(); + ~CHIPPressureMeasurementAttributeListAttributeCallback(); - static void maybeDestroy(CHIPLevelControlOffTransitionTimeAttributeCallback * callback) + static void maybeDestroy(CHIPPressureMeasurementAttributeListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPPumpConfigurationAndControlLifetimeRunningHoursAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPPumpConfigurationAndControlLifetimeRunningHoursAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPPumpConfigurationAndControlLifetimeRunningHoursAttributeCallback(); + + static void maybeDestroy(CHIPPumpConfigurationAndControlLifetimeRunningHoursAttributeCallback * callback) { if (!callback->keepAlive) { callback->Cancel(); - chip::Platform::Delete(callback); + chip::Platform::Delete(callback); } } - static void CallbackFn(void * context, const chip::app::DataModel::Nullable & value); + static void CallbackFn(void * context, const chip::app::DataModel::Nullable & value); private: jobject javaCallbackRef; bool keepAlive; }; -class CHIPMediaInputMediaInputListAttributeCallback - : public chip::Callback::Callback +class CHIPPumpConfigurationAndControlLifetimeEnergyConsumedAttributeCallback + : public chip::Callback::Callback { public: - CHIPMediaInputMediaInputListAttributeCallback(jobject javaCallback, bool keepAlive = false); + CHIPPumpConfigurationAndControlLifetimeEnergyConsumedAttributeCallback(jobject javaCallback, bool keepAlive = false); - ~CHIPMediaInputMediaInputListAttributeCallback(); + ~CHIPPumpConfigurationAndControlLifetimeEnergyConsumedAttributeCallback(); - static void maybeDestroy(CHIPMediaInputMediaInputListAttributeCallback * callback) + static void maybeDestroy(CHIPPumpConfigurationAndControlLifetimeEnergyConsumedAttributeCallback * callback) { if (!callback->keepAlive) { callback->Cancel(); - chip::Platform::Delete(callback); + chip::Platform::Delete(callback); } } - static void CallbackFn( - void * context, - const chip::app::DataModel::DecodableList & list); + static void CallbackFn(void * context, const chip::app::DataModel::Nullable & value); private: jobject javaCallbackRef; bool keepAlive; }; -class CHIPModeSelectSupportedModesAttributeCallback - : public chip::Callback::Callback +class CHIPPumpConfigurationAndControlAttributeListAttributeCallback + : public chip::Callback::Callback { public: - CHIPModeSelectSupportedModesAttributeCallback(jobject javaCallback, bool keepAlive = false); + CHIPPumpConfigurationAndControlAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); - ~CHIPModeSelectSupportedModesAttributeCallback(); + ~CHIPPumpConfigurationAndControlAttributeListAttributeCallback(); - static void maybeDestroy(CHIPModeSelectSupportedModesAttributeCallback * callback) + static void maybeDestroy(CHIPPumpConfigurationAndControlAttributeListAttributeCallback * callback) { if (!callback->keepAlive) { callback->Cancel(); - chip::Platform::Delete(callback); + chip::Platform::Delete(callback); } } - static void CallbackFn( - void * context, - const chip::app::DataModel::DecodableList & - list); + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); private: jobject javaCallbackRef; bool keepAlive; }; -class CHIPOperationalCredentialsFabricsListAttributeCallback - : public chip::Callback::Callback +class CHIPRelativeHumidityMeasurementAttributeListAttributeCallback + : public chip::Callback::Callback { public: - CHIPOperationalCredentialsFabricsListAttributeCallback(jobject javaCallback, bool keepAlive = false); + CHIPRelativeHumidityMeasurementAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); - ~CHIPOperationalCredentialsFabricsListAttributeCallback(); + ~CHIPRelativeHumidityMeasurementAttributeListAttributeCallback(); - static void maybeDestroy(CHIPOperationalCredentialsFabricsListAttributeCallback * callback) + static void maybeDestroy(CHIPRelativeHumidityMeasurementAttributeListAttributeCallback * callback) { if (!callback->keepAlive) { callback->Cancel(); - chip::Platform::Delete(callback); + chip::Platform::Delete(callback); } } - static void CallbackFn(void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::OperationalCredentials::Structs::FabricDescriptor::DecodableType> & list); + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); private: jobject javaCallbackRef; bool keepAlive; }; -class CHIPOperationalCredentialsTrustedRootCertificatesAttributeCallback - : public chip::Callback::Callback +class CHIPScenesAttributeListAttributeCallback + : public chip::Callback::Callback { public: - CHIPOperationalCredentialsTrustedRootCertificatesAttributeCallback(jobject javaCallback, bool keepAlive = false); + CHIPScenesAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); - ~CHIPOperationalCredentialsTrustedRootCertificatesAttributeCallback(); + ~CHIPScenesAttributeListAttributeCallback(); - static void maybeDestroy(CHIPOperationalCredentialsTrustedRootCertificatesAttributeCallback * callback) + static void maybeDestroy(CHIPScenesAttributeListAttributeCallback * callback) { if (!callback->keepAlive) { callback->Cancel(); - chip::Platform::Delete(callback); + chip::Platform::Delete(callback); } } - static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); private: jobject javaCallbackRef; bool keepAlive; }; -class CHIPOperationalCredentialsCurrentFabricIndexAttributeCallback - : public chip::Callback::Callback +class CHIPSoftwareDiagnosticsThreadMetricsAttributeCallback + : public chip::Callback::Callback { public: - CHIPOperationalCredentialsCurrentFabricIndexAttributeCallback(jobject javaCallback, bool keepAlive = false); + CHIPSoftwareDiagnosticsThreadMetricsAttributeCallback(jobject javaCallback, bool keepAlive = false); - ~CHIPOperationalCredentialsCurrentFabricIndexAttributeCallback(); + ~CHIPSoftwareDiagnosticsThreadMetricsAttributeCallback(); - static void maybeDestroy(CHIPOperationalCredentialsCurrentFabricIndexAttributeCallback * callback) + static void maybeDestroy(CHIPSoftwareDiagnosticsThreadMetricsAttributeCallback * callback) { if (!callback->keepAlive) { callback->Cancel(); - chip::Platform::Delete(callback); + chip::Platform::Delete(callback); } } - static void CallbackFn(void * context, chip::FabricIndex value); + static void CallbackFn( + void * context, + const chip::app::DataModel::DecodableList & + list); private: jobject javaCallbackRef; bool keepAlive; }; -class CHIPPowerSourceActiveBatteryFaultsAttributeCallback - : public chip::Callback::Callback +class CHIPSoftwareDiagnosticsAttributeListAttributeCallback + : public chip::Callback::Callback { public: - CHIPPowerSourceActiveBatteryFaultsAttributeCallback(jobject javaCallback, bool keepAlive = false); + CHIPSoftwareDiagnosticsAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); - ~CHIPPowerSourceActiveBatteryFaultsAttributeCallback(); + ~CHIPSoftwareDiagnosticsAttributeListAttributeCallback(); - static void maybeDestroy(CHIPPowerSourceActiveBatteryFaultsAttributeCallback * callback) + static void maybeDestroy(CHIPSoftwareDiagnosticsAttributeListAttributeCallback * callback) { if (!callback->keepAlive) { callback->Cancel(); - chip::Platform::Delete(callback); + chip::Platform::Delete(callback); } } - static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); private: jobject javaCallbackRef; bool keepAlive; }; -class CHIPPowerSourceConfigurationSourcesAttributeCallback - : public chip::Callback::Callback +class CHIPSwitchAttributeListAttributeCallback + : public chip::Callback::Callback { public: - CHIPPowerSourceConfigurationSourcesAttributeCallback(jobject javaCallback, bool keepAlive = false); + CHIPSwitchAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); - ~CHIPPowerSourceConfigurationSourcesAttributeCallback(); + ~CHIPSwitchAttributeListAttributeCallback(); - static void maybeDestroy(CHIPPowerSourceConfigurationSourcesAttributeCallback * callback) + static void maybeDestroy(CHIPSwitchAttributeListAttributeCallback * callback) { if (!callback->keepAlive) { callback->Cancel(); - chip::Platform::Delete(callback); + chip::Platform::Delete(callback); } } - static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); private: jobject javaCallbackRef; bool keepAlive; }; -class CHIPPumpConfigurationAndControlLifetimeRunningHoursAttributeCallback - : public chip::Callback::Callback +class CHIPTvChannelTvChannelListAttributeCallback + : public chip::Callback::Callback { public: - CHIPPumpConfigurationAndControlLifetimeRunningHoursAttributeCallback(jobject javaCallback, bool keepAlive = false); + CHIPTvChannelTvChannelListAttributeCallback(jobject javaCallback, bool keepAlive = false); - ~CHIPPumpConfigurationAndControlLifetimeRunningHoursAttributeCallback(); + ~CHIPTvChannelTvChannelListAttributeCallback(); - static void maybeDestroy(CHIPPumpConfigurationAndControlLifetimeRunningHoursAttributeCallback * callback) + static void maybeDestroy(CHIPTvChannelTvChannelListAttributeCallback * callback) { if (!callback->keepAlive) { callback->Cancel(); - chip::Platform::Delete(callback); + chip::Platform::Delete(callback); } } - static void CallbackFn(void * context, const chip::app::DataModel::Nullable & value); + static void CallbackFn( + void * context, + const chip::app::DataModel::DecodableList & list); private: jobject javaCallbackRef; bool keepAlive; }; -class CHIPPumpConfigurationAndControlLifetimeEnergyConsumedAttributeCallback - : public chip::Callback::Callback +class CHIPTvChannelAttributeListAttributeCallback + : public chip::Callback::Callback { public: - CHIPPumpConfigurationAndControlLifetimeEnergyConsumedAttributeCallback(jobject javaCallback, bool keepAlive = false); + CHIPTvChannelAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); - ~CHIPPumpConfigurationAndControlLifetimeEnergyConsumedAttributeCallback(); + ~CHIPTvChannelAttributeListAttributeCallback(); - static void maybeDestroy(CHIPPumpConfigurationAndControlLifetimeEnergyConsumedAttributeCallback * callback) + static void maybeDestroy(CHIPTvChannelAttributeListAttributeCallback * callback) { if (!callback->keepAlive) { callback->Cancel(); - chip::Platform::Delete(callback); + chip::Platform::Delete(callback); } } - static void CallbackFn(void * context, const chip::app::DataModel::Nullable & value); + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); private: jobject javaCallbackRef; bool keepAlive; }; -class CHIPSoftwareDiagnosticsThreadMetricsAttributeCallback - : public chip::Callback::Callback +class CHIPTargetNavigatorTargetNavigatorListAttributeCallback + : public chip::Callback::Callback { public: - CHIPSoftwareDiagnosticsThreadMetricsAttributeCallback(jobject javaCallback, bool keepAlive = false); + CHIPTargetNavigatorTargetNavigatorListAttributeCallback(jobject javaCallback, bool keepAlive = false); - ~CHIPSoftwareDiagnosticsThreadMetricsAttributeCallback(); + ~CHIPTargetNavigatorTargetNavigatorListAttributeCallback(); - static void maybeDestroy(CHIPSoftwareDiagnosticsThreadMetricsAttributeCallback * callback) + static void maybeDestroy(CHIPTargetNavigatorTargetNavigatorListAttributeCallback * callback) { if (!callback->keepAlive) { callback->Cancel(); - chip::Platform::Delete(callback); + chip::Platform::Delete(callback); } } - static void CallbackFn( - void * context, - const chip::app::DataModel::DecodableList & - list); + static void CallbackFn(void * context, + const chip::app::DataModel::DecodableList< + chip::app::Clusters::TargetNavigator::Structs::NavigateTargetTargetInfo::DecodableType> & list); private: jobject javaCallbackRef; bool keepAlive; }; -class CHIPTvChannelTvChannelListAttributeCallback - : public chip::Callback::Callback +class CHIPTargetNavigatorAttributeListAttributeCallback + : public chip::Callback::Callback { public: - CHIPTvChannelTvChannelListAttributeCallback(jobject javaCallback, bool keepAlive = false); + CHIPTargetNavigatorAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); - ~CHIPTvChannelTvChannelListAttributeCallback(); + ~CHIPTargetNavigatorAttributeListAttributeCallback(); - static void maybeDestroy(CHIPTvChannelTvChannelListAttributeCallback * callback) + static void maybeDestroy(CHIPTargetNavigatorAttributeListAttributeCallback * callback) { if (!callback->keepAlive) { callback->Cancel(); - chip::Platform::Delete(callback); + chip::Platform::Delete(callback); } } - static void CallbackFn( - void * context, - const chip::app::DataModel::DecodableList & list); + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); private: jobject javaCallbackRef; bool keepAlive; }; -class CHIPTargetNavigatorTargetNavigatorListAttributeCallback - : public chip::Callback::Callback +class CHIPTemperatureMeasurementAttributeListAttributeCallback + : public chip::Callback::Callback { public: - CHIPTargetNavigatorTargetNavigatorListAttributeCallback(jobject javaCallback, bool keepAlive = false); + CHIPTemperatureMeasurementAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); - ~CHIPTargetNavigatorTargetNavigatorListAttributeCallback(); + ~CHIPTemperatureMeasurementAttributeListAttributeCallback(); - static void maybeDestroy(CHIPTargetNavigatorTargetNavigatorListAttributeCallback * callback) + static void maybeDestroy(CHIPTemperatureMeasurementAttributeListAttributeCallback * callback) { if (!callback->keepAlive) { callback->Cancel(); - chip::Platform::Delete(callback); + chip::Platform::Delete(callback); } } - static void CallbackFn(void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::TargetNavigator::Structs::NavigateTargetTargetInfo::DecodableType> & list); + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); private: jobject javaCallbackRef; @@ -2038,6 +3284,78 @@ class CHIPTestClusterNullableRangeRestrictedInt16sAttributeCallback bool keepAlive; }; +class CHIPTestClusterAttributeListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPTestClusterAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPTestClusterAttributeListAttributeCallback(); + + static void maybeDestroy(CHIPTestClusterAttributeListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPThermostatAttributeListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPThermostatAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPThermostatAttributeListAttributeCallback(); + + static void maybeDestroy(CHIPThermostatAttributeListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPThermostatUserInterfaceConfigurationAttributeListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPThermostatUserInterfaceConfigurationAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPThermostatUserInterfaceConfigurationAttributeListAttributeCallback(); + + static void maybeDestroy(CHIPThermostatUserInterfaceConfigurationAttributeListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + class CHIPThreadNetworkDiagnosticsNeighborTableListAttributeCallback : public chip::Callback::Callback { @@ -2168,3 +3486,99 @@ class CHIPThreadNetworkDiagnosticsActiveNetworkFaultsListAttributeCallback jobject javaCallbackRef; bool keepAlive; }; + +class CHIPThreadNetworkDiagnosticsAttributeListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPThreadNetworkDiagnosticsAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPThreadNetworkDiagnosticsAttributeListAttributeCallback(); + + static void maybeDestroy(CHIPThreadNetworkDiagnosticsAttributeListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPWakeOnLanAttributeListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPWakeOnLanAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPWakeOnLanAttributeListAttributeCallback(); + + static void maybeDestroy(CHIPWakeOnLanAttributeListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPWiFiNetworkDiagnosticsAttributeListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPWiFiNetworkDiagnosticsAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPWiFiNetworkDiagnosticsAttributeListAttributeCallback(); + + static void maybeDestroy(CHIPWiFiNetworkDiagnosticsAttributeListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; + +class CHIPWindowCoveringAttributeListAttributeCallback + : public chip::Callback::Callback +{ +public: + CHIPWindowCoveringAttributeListAttributeCallback(jobject javaCallback, bool keepAlive = false); + + ~CHIPWindowCoveringAttributeListAttributeCallback(); + + static void maybeDestroy(CHIPWindowCoveringAttributeListAttributeCallback * callback) + { + if (!callback->keepAlive) + { + callback->Cancel(); + chip::Platform::Delete(callback); + } + } + + static void CallbackFn(void * context, const chip::app::DataModel::DecodableList & list); + +private: + jobject javaCallbackRef; + bool keepAlive; +}; diff --git a/src/controller/java/zap-generated/chip/devicecontroller/ChipClusters.java b/src/controller/java/zap-generated/chip/devicecontroller/ChipClusters.java index cc55ee0533515c..3d9228c5714c20 100644 --- a/src/controller/java/zap-generated/chip/devicecontroller/ChipClusters.java +++ b/src/controller/java/zap-generated/chip/devicecontroller/ChipClusters.java @@ -176,6 +176,12 @@ public interface ExtensionAttributeCallback { void onError(Exception ex); } + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readAclAttribute(AclAttributeCallback callback) { readAclAttribute(chipClusterPtr, callback); } @@ -184,6 +190,10 @@ public void readExtensionAttribute(ExtensionAttributeCallback callback) { readExtensionAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -193,6 +203,9 @@ public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { private native void readExtensionAttribute( long chipClusterPtr, ExtensionAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); } @@ -233,6 +246,16 @@ public interface GetSetupPINResponseCallback { void onError(Exception error); } + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -246,6 +269,9 @@ public void reportClusterRevisionAttribute(IntegerAttributeCallback callback) { reportClusterRevisionAttribute(chipClusterPtr, callback); } + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -311,6 +337,16 @@ private native void openCommissioningWindow( private native void revokeCommissioning(long chipClusterPtr, DefaultClusterCallback Callback); + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -324,6 +360,9 @@ public void reportClusterRevisionAttribute(IntegerAttributeCallback callback) { reportClusterRevisionAttribute(chipClusterPtr, callback); } + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -353,6 +392,12 @@ public void changeStatus(DefaultClusterCallback callback, Integer status) { private native void changeStatus( long chipClusterPtr, DefaultClusterCallback Callback, Integer status); + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readVendorNameAttribute(CharStringAttributeCallback callback) { readVendorNameAttribute(chipClusterPtr, callback); } @@ -444,6 +489,10 @@ public void reportApplicationStatusAttribute(IntegerAttributeCallback callback) reportApplicationStatusAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -520,6 +569,9 @@ private native void subscribeApplicationStatusAttribute( private native void reportApplicationStatusAttribute( long chipClusterPtr, IntegerAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -569,6 +621,12 @@ public interface ApplicationLauncherListAttributeCallback { void onError(Exception ex); } + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readApplicationLauncherListAttribute( ApplicationLauncherListAttributeCallback callback) { readApplicationLauncherListAttribute(chipClusterPtr, callback); @@ -600,6 +658,10 @@ public void reportApplicationIdAttribute(IntegerAttributeCallback callback) { reportApplicationIdAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -634,6 +696,9 @@ private native void subscribeApplicationIdAttribute( private native void reportApplicationIdAttribute( long chipClusterPtr, IntegerAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -706,6 +771,12 @@ public interface AudioOutputListAttributeCallback { void onError(Exception ex); } + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readAudioOutputListAttribute(AudioOutputListAttributeCallback callback) { readAudioOutputListAttribute(chipClusterPtr, callback); } @@ -723,6 +794,10 @@ public void reportCurrentAudioOutputAttribute(IntegerAttributeCallback callback) reportCurrentAudioOutputAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -748,6 +823,9 @@ private native void subscribeCurrentAudioOutputAttribute( private native void reportCurrentAudioOutputAttribute( long chipClusterPtr, IntegerAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -783,6 +861,12 @@ private native void barrierControlGoToPercent( private native void barrierControlStop(long chipClusterPtr, DefaultClusterCallback Callback); + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readBarrierMovingStateAttribute(IntegerAttributeCallback callback) { readBarrierMovingStateAttribute(chipClusterPtr, callback); } @@ -835,6 +919,10 @@ public void reportBarrierPositionAttribute(IntegerAttributeCallback callback) { reportBarrierPositionAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -884,6 +972,9 @@ private native void subscribeBarrierPositionAttribute( private native void reportBarrierPositionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -912,6 +1003,12 @@ public void mfgSpecificPing(DefaultClusterCallback callback) { private native void mfgSpecificPing(long chipClusterPtr, DefaultClusterCallback Callback); + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readInteractionModelVersionAttribute(IntegerAttributeCallback callback) { readInteractionModelVersionAttribute(chipClusterPtr, callback); } @@ -1162,6 +1259,10 @@ public void readUniqueIDAttribute(CharStringAttributeCallback callback) { readUniqueIDAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -1349,6 +1450,9 @@ private native void reportReachableAttribute( private native void readUniqueIDAttribute( long chipClusterPtr, CharStringAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -1371,6 +1475,12 @@ public static long clusterId() { @Override public native long initWithDevice(long devicePtr, int endpointId); + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readOutOfServiceAttribute(BooleanAttributeCallback callback) { readOutOfServiceAttribute(chipClusterPtr, callback); } @@ -1418,6 +1528,10 @@ public void reportStatusFlagsAttribute(IntegerAttributeCallback callback) { reportStatusFlagsAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -1464,6 +1578,9 @@ private native void subscribeStatusFlagsAttribute( private native void reportStatusFlagsAttribute( long chipClusterPtr, IntegerAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -1520,6 +1637,16 @@ private native void unbind( Integer endpointId, Long clusterId); + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -1533,6 +1660,9 @@ public void reportClusterRevisionAttribute(IntegerAttributeCallback callback) { reportClusterRevisionAttribute(chipClusterPtr, callback); } + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -1555,6 +1685,12 @@ public static long clusterId() { @Override public native long initWithDevice(long devicePtr, int endpointId); + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readStateValueAttribute(BooleanAttributeCallback callback) { readStateValueAttribute(chipClusterPtr, callback); } @@ -1568,6 +1704,10 @@ public void reportStateValueAttribute(BooleanAttributeCallback callback) { reportStateValueAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -1590,6 +1730,9 @@ private native void subscribeStateValueAttribute( private native void reportStateValueAttribute( long chipClusterPtr, BooleanAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -1848,6 +1991,12 @@ public interface EndpointListAttributeCallback { void onError(Exception ex); } + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readActionListAttribute(ActionListAttributeCallback callback) { readActionListAttribute(chipClusterPtr, callback); } @@ -1869,6 +2018,10 @@ public void reportSetupUrlAttribute(CharStringAttributeCallback callback) { reportSetupUrlAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -1897,6 +2050,9 @@ private native void subscribeSetupUrlAttribute( private native void reportSetupUrlAttribute( long chipClusterPtr, CharStringAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -1919,6 +2075,16 @@ public static long clusterId() { @Override public native long initWithDevice(long devicePtr, int endpointId); + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -1932,6 +2098,9 @@ public void reportClusterRevisionAttribute(IntegerAttributeCallback callback) { reportClusterRevisionAttribute(chipClusterPtr, callback); } + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -2372,6 +2541,12 @@ private native void stopMoveStep( Integer optionsMask, Integer optionsOverride); + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readCurrentHueAttribute(IntegerAttributeCallback callback) { readCurrentHueAttribute(chipClusterPtr, callback); } @@ -3105,6 +3280,10 @@ public void reportStartUpColorTemperatureMiredsAttribute(IntegerAttributeCallbac reportStartUpColorTemperatureMiredsAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -3625,6 +3804,9 @@ private native void subscribeStartUpColorTemperatureMiredsAttribute( private native void reportStartUpColorTemperatureMiredsAttribute( long chipClusterPtr, IntegerAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -3690,6 +3872,12 @@ public interface SupportedStreamingTypesAttributeCallback { void onError(Exception ex); } + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readAcceptsHeaderListAttribute(AcceptsHeaderListAttributeCallback callback) { readAcceptsHeaderListAttribute(chipClusterPtr, callback); } @@ -3699,6 +3887,10 @@ public void readSupportedStreamingTypesAttribute( readSupportedStreamingTypesAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -3718,6 +3910,9 @@ private native void readAcceptsHeaderListAttribute( private native void readSupportedStreamingTypesAttribute( long chipClusterPtr, SupportedStreamingTypesAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -3788,6 +3983,12 @@ public interface PartsListAttributeCallback { void onError(Exception ex); } + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readDeviceListAttribute(DeviceListAttributeCallback callback) { readDeviceListAttribute(chipClusterPtr, callback); } @@ -3804,6 +4005,10 @@ public void readPartsListAttribute(PartsListAttributeCallback callback) { readPartsListAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -3829,6 +4034,9 @@ private native void readClientListAttribute( private native void readPartsListAttribute( long chipClusterPtr, PartsListAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -3872,6 +4080,19 @@ public interface RetrieveLogsResponseCallback { void onError(Exception error); } + + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); } public static class DoorLockCluster extends BaseChipCluster { @@ -4208,6 +4429,12 @@ void onSuccess( void onError(Exception error); } + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readActuatorEnabledAttribute(BooleanAttributeCallback callback) { readActuatorEnabledAttribute(chipClusterPtr, callback); } @@ -4221,6 +4448,10 @@ public void reportActuatorEnabledAttribute(BooleanAttributeCallback callback) { reportActuatorEnabledAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -4243,6 +4474,9 @@ private native void subscribeActuatorEnabledAttribute( private native void reportActuatorEnabledAttribute( long chipClusterPtr, BooleanAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -4265,6 +4499,12 @@ public static long clusterId() { @Override public native long initWithDevice(long devicePtr, int endpointId); + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readMeasurementTypeAttribute(LongAttributeCallback callback) { readMeasurementTypeAttribute(chipClusterPtr, callback); } @@ -4408,6 +4648,10 @@ public void reportActivePowerMaxAttribute(IntegerAttributeCallback callback) { reportActivePowerMaxAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -4520,6 +4764,9 @@ private native void subscribeActivePowerMaxAttribute( private native void reportActivePowerMaxAttribute( long chipClusterPtr, IntegerAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -4548,6 +4795,12 @@ public void resetCounts(DefaultClusterCallback callback) { private native void resetCounts(long chipClusterPtr, DefaultClusterCallback Callback); + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readPHYRateAttribute(IntegerAttributeCallback callback) { readPHYRateAttribute(chipClusterPtr, callback); } @@ -4665,6 +4918,10 @@ public void reportTimeSinceResetAttribute(LongAttributeCallback callback) { reportTimeSinceResetAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readFeatureMapAttribute(LongAttributeCallback callback) { readFeatureMapAttribute(chipClusterPtr, callback); } @@ -4763,6 +5020,9 @@ private native void subscribeTimeSinceResetAttribute( private native void reportTimeSinceResetAttribute( long chipClusterPtr, LongAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readFeatureMapAttribute( long chipClusterPtr, LongAttributeCallback callback); @@ -4818,10 +5078,20 @@ public interface LabelListAttributeCallback { void onError(Exception ex); } + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readLabelListAttribute(LabelListAttributeCallback callback) { readLabelListAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -4838,6 +5108,9 @@ public void reportClusterRevisionAttribute(IntegerAttributeCallback callback) { private native void readLabelListAttribute( long chipClusterPtr, LabelListAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -4860,6 +5133,12 @@ public static long clusterId() { @Override public native long initWithDevice(long devicePtr, int endpointId); + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readMeasuredValueAttribute(IntegerAttributeCallback callback) { readMeasuredValueAttribute(chipClusterPtr, callback); } @@ -4912,6 +5191,10 @@ public void reportToleranceAttribute(IntegerAttributeCallback callback) { reportToleranceAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -4961,6 +5244,9 @@ private native void subscribeToleranceAttribute( private native void reportToleranceAttribute( long chipClusterPtr, IntegerAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -5064,6 +5350,12 @@ public interface BasicCommissioningInfoListAttributeCallback { void onError(Exception ex); } + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readBreadcrumbAttribute(LongAttributeCallback callback) { readBreadcrumbAttribute(chipClusterPtr, callback); } @@ -5094,6 +5386,10 @@ public void readLocationCapabilityAttribute(IntegerAttributeCallback callback) { readLocationCapabilityAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -5128,6 +5424,9 @@ private native void readRegulatoryConfigAttribute( private native void readLocationCapabilityAttribute( long chipClusterPtr, IntegerAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -5228,6 +5527,12 @@ public interface ActiveNetworkFaultsAttributeCallback { void onError(Exception ex); } + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readNetworkInterfacesAttribute(NetworkInterfacesAttributeCallback callback) { readNetworkInterfacesAttribute(chipClusterPtr, callback); } @@ -5296,6 +5601,10 @@ public void readActiveNetworkFaultsAttribute(ActiveNetworkFaultsAttributeCallbac readActiveNetworkFaultsAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -5355,6 +5664,9 @@ private native void readActiveRadioFaultsAttribute( private native void readActiveNetworkFaultsAttribute( long chipClusterPtr, ActiveNetworkFaultsAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -5466,6 +5778,12 @@ public interface GroupKeysAttributeCallback { void onError(Exception ex); } + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readGroupsAttribute(GroupsAttributeCallback callback) { readGroupsAttribute(chipClusterPtr, callback); } @@ -5474,6 +5792,10 @@ public void readGroupKeysAttribute(GroupKeysAttributeCallback callback) { readGroupKeysAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -5492,6 +5814,9 @@ public void reportClusterRevisionAttribute(IntegerAttributeCallback callback) { private native void readGroupKeysAttribute( long chipClusterPtr, GroupKeysAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -5583,6 +5908,12 @@ public interface ViewGroupResponseCallback { void onError(Exception error); } + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readNameSupportAttribute(IntegerAttributeCallback callback) { readNameSupportAttribute(chipClusterPtr, callback); } @@ -5596,6 +5927,10 @@ public void reportNameSupportAttribute(IntegerAttributeCallback callback) { reportNameSupportAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -5618,6 +5953,9 @@ private native void subscribeNameSupportAttribute( private native void reportNameSupportAttribute( long chipClusterPtr, IntegerAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -5670,6 +6008,12 @@ public interface IdentifyQueryResponseCallback { void onError(Exception error); } + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readIdentifyTimeAttribute(IntegerAttributeCallback callback) { readIdentifyTimeAttribute(chipClusterPtr, callback); } @@ -5700,6 +6044,10 @@ public void reportIdentifyTypeAttribute(IntegerAttributeCallback callback) { reportIdentifyTypeAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -5734,6 +6082,9 @@ private native void subscribeIdentifyTypeAttribute( private native void reportIdentifyTypeAttribute( long chipClusterPtr, IntegerAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -5774,6 +6125,12 @@ public interface MaxMeasuredValueAttributeCallback { void onError(Exception ex); } + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readMeasuredValueAttribute(MeasuredValueAttributeCallback callback) { readMeasuredValueAttribute(chipClusterPtr, callback); } @@ -5839,6 +6196,10 @@ public void reportLightSensorTypeAttribute(IntegerAttributeCallback callback) { reportLightSensorTypeAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -5897,6 +6258,9 @@ private native void subscribeLightSensorTypeAttribute( private native void reportLightSensorTypeAttribute( long chipClusterPtr, IntegerAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -5932,6 +6296,16 @@ public interface SendKeyResponseCallback { void onError(Exception error); } + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -5945,6 +6319,9 @@ public void reportClusterRevisionAttribute(IntegerAttributeCallback callback) { reportClusterRevisionAttribute(chipClusterPtr, callback); } + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -6082,6 +6459,12 @@ public interface OffTransitionTimeAttributeCallback { void onError(Exception ex); } + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readCurrentLevelAttribute(IntegerAttributeCallback callback) { readCurrentLevelAttribute(chipClusterPtr, callback); } @@ -6295,6 +6678,10 @@ public void reportStartUpCurrentLevelAttribute(IntegerAttributeCallback callback reportStartUpCurrentLevelAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -6455,6 +6842,9 @@ private native void subscribeStartUpCurrentLevelAttribute( private native void reportStartUpCurrentLevelAttribute( long chipClusterPtr, IntegerAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -6483,6 +6873,16 @@ public void sleep(DefaultClusterCallback callback) { private native void sleep(long chipClusterPtr, DefaultClusterCallback Callback); + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -6496,6 +6896,9 @@ public void reportClusterRevisionAttribute(IntegerAttributeCallback callback) { reportClusterRevisionAttribute(chipClusterPtr, callback); } + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -6587,6 +6990,12 @@ public interface MediaInputListAttributeCallback { void onError(Exception ex); } + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readMediaInputListAttribute(MediaInputListAttributeCallback callback) { readMediaInputListAttribute(chipClusterPtr, callback); } @@ -6604,6 +7013,10 @@ public void reportCurrentMediaInputAttribute(IntegerAttributeCallback callback) reportCurrentMediaInputAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -6629,6 +7042,9 @@ private native void subscribeCurrentMediaInputAttribute( private native void reportCurrentMediaInputAttribute( long chipClusterPtr, IntegerAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -6794,6 +7210,12 @@ public interface MediaStopResponseCallback { void onError(Exception error); } + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readPlaybackStateAttribute(IntegerAttributeCallback callback) { readPlaybackStateAttribute(chipClusterPtr, callback); } @@ -6898,6 +7320,10 @@ public void reportSeekRangeStartAttribute(LongAttributeCallback callback) { reportSeekRangeStartAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -6980,6 +7406,9 @@ private native void subscribeSeekRangeStartAttribute( private native void reportSeekRangeStartAttribute( long chipClusterPtr, LongAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -7045,6 +7474,12 @@ public interface SupportedModesAttributeCallback { void onError(Exception ex); } + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readCurrentModeAttribute(IntegerAttributeCallback callback) { readCurrentModeAttribute(chipClusterPtr, callback); } @@ -7105,6 +7540,10 @@ public void reportDescriptionAttribute(CharStringAttributeCallback callback) { reportDescriptionAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -7159,6 +7598,9 @@ private native void subscribeDescriptionAttribute( private native void reportDescriptionAttribute( long chipClusterPtr, CharStringAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -7349,6 +7791,16 @@ public interface UpdateWiFiNetworkResponseCallback { void onError(Exception error); } + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readFeatureMapAttribute(LongAttributeCallback callback) { readFeatureMapAttribute(chipClusterPtr, callback); } @@ -7375,6 +7827,9 @@ public void reportClusterRevisionAttribute(IntegerAttributeCallback callback) { reportClusterRevisionAttribute(chipClusterPtr, callback); } + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readFeatureMapAttribute( long chipClusterPtr, LongAttributeCallback callback); @@ -7483,6 +7938,16 @@ void onSuccess( void onError(Exception error); } + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -7496,6 +7961,9 @@ public void reportClusterRevisionAttribute(IntegerAttributeCallback callback) { reportClusterRevisionAttribute(chipClusterPtr, callback); } + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -7541,6 +8009,12 @@ private native void announceOtaProvider( Integer announcementReason, Optional metadataForNode); + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readDefaultOtaProviderAttribute(OctetStringAttributeCallback callback) { readDefaultOtaProviderAttribute(chipClusterPtr, callback); } @@ -7571,6 +8045,10 @@ public void reportUpdatePossibleAttribute(BooleanAttributeCallback callback) { reportUpdatePossibleAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -7605,6 +8083,9 @@ private native void subscribeUpdatePossibleAttribute( private native void reportUpdatePossibleAttribute( long chipClusterPtr, BooleanAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -7627,6 +8108,12 @@ public static long clusterId() { @Override public native long initWithDevice(long devicePtr, int endpointId); + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readOccupancyAttribute(IntegerAttributeCallback callback) { readOccupancyAttribute(chipClusterPtr, callback); } @@ -7667,6 +8154,10 @@ public void reportOccupancySensorTypeBitmapAttribute(IntegerAttributeCallback ca reportOccupancySensorTypeBitmapAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -7707,6 +8198,9 @@ private native void subscribeOccupancySensorTypeBitmapAttribute( private native void reportOccupancySensorTypeBitmapAttribute( long chipClusterPtr, IntegerAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -7780,6 +8274,12 @@ private native void onWithTimedOff( private native void toggle(long chipClusterPtr, DefaultClusterCallback Callback); + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readOnOffAttribute(BooleanAttributeCallback callback) { readOnOffAttribute(chipClusterPtr, callback); } @@ -7857,6 +8357,10 @@ public void reportStartUpOnOffAttribute(IntegerAttributeCallback callback) { reportStartUpOnOffAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readFeatureMapAttribute(LongAttributeCallback callback) { readFeatureMapAttribute(chipClusterPtr, callback); } @@ -7935,6 +8439,9 @@ private native void subscribeStartUpOnOffAttribute( private native void reportStartUpOnOffAttribute( long chipClusterPtr, IntegerAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readFeatureMapAttribute( long chipClusterPtr, LongAttributeCallback callback); @@ -7966,6 +8473,12 @@ public static long clusterId() { @Override public native long initWithDevice(long devicePtr, int endpointId); + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readSwitchTypeAttribute(IntegerAttributeCallback callback) { readSwitchTypeAttribute(chipClusterPtr, callback); } @@ -7996,6 +8509,10 @@ public void reportSwitchActionsAttribute(IntegerAttributeCallback callback) { reportSwitchActionsAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -8030,6 +8547,9 @@ private native void subscribeSwitchActionsAttribute( private native void reportSwitchActionsAttribute( long chipClusterPtr, IntegerAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -8229,6 +8749,12 @@ public interface CurrentFabricIndexAttributeCallback { void onError(Exception ex); } + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readFabricsListAttribute(FabricsListAttributeCallback callback) { readFabricsListAttribute(chipClusterPtr, callback); } @@ -8277,6 +8803,10 @@ public void reportCurrentFabricIndexAttribute(IntegerAttributeCallback callback) reportCurrentFabricIndexAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -8323,6 +8853,9 @@ private native void subscribeCurrentFabricIndexAttribute( private native void reportCurrentFabricIndexAttribute( long chipClusterPtr, IntegerAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -8351,6 +8884,12 @@ public interface ActiveBatteryFaultsAttributeCallback { void onError(Exception ex); } + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readStatusAttribute(IntegerAttributeCallback callback) { readStatusAttribute(chipClusterPtr, callback); } @@ -8459,6 +8998,10 @@ public void reportBatteryChargeStateAttribute(IntegerAttributeCallback callback) reportBatteryChargeStateAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readFeatureMapAttribute(LongAttributeCallback callback) { readFeatureMapAttribute(chipClusterPtr, callback); } @@ -8558,6 +9101,9 @@ private native void subscribeBatteryChargeStateAttribute( private native void reportBatteryChargeStateAttribute( long chipClusterPtr, IntegerAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readFeatureMapAttribute( long chipClusterPtr, LongAttributeCallback callback); @@ -8595,10 +9141,20 @@ public interface SourcesAttributeCallback { void onError(Exception ex); } + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readSourcesAttribute(SourcesAttributeCallback callback) { readSourcesAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -8606,6 +9162,9 @@ public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { private native void readSourcesAttribute( long chipClusterPtr, SourcesAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); } @@ -8622,6 +9181,12 @@ public static long clusterId() { @Override public native long initWithDevice(long devicePtr, int endpointId); + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readMeasuredValueAttribute(IntegerAttributeCallback callback) { readMeasuredValueAttribute(chipClusterPtr, callback); } @@ -8661,6 +9226,10 @@ public void reportMaxMeasuredValueAttribute(IntegerAttributeCallback callback) { reportMaxMeasuredValueAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -8701,6 +9270,9 @@ private native void subscribeMaxMeasuredValueAttribute( private native void reportMaxMeasuredValueAttribute( long chipClusterPtr, IntegerAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -8735,6 +9307,12 @@ public interface LifetimeEnergyConsumedAttributeCallback { void onError(Exception ex); } + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readMaxPressureAttribute(IntegerAttributeCallback callback) { readMaxPressureAttribute(chipClusterPtr, callback); } @@ -9066,6 +9644,10 @@ public void reportAlarmMaskAttribute(IntegerAttributeCallback callback) { reportAlarmMaskAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readFeatureMapAttribute(LongAttributeCallback callback) { readFeatureMapAttribute(chipClusterPtr, callback); } @@ -9317,6 +9899,9 @@ private native void subscribeAlarmMaskAttribute( private native void reportAlarmMaskAttribute( long chipClusterPtr, IntegerAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readFeatureMapAttribute( long chipClusterPtr, LongAttributeCallback callback); @@ -9348,6 +9933,12 @@ public static long clusterId() { @Override public native long initWithDevice(long devicePtr, int endpointId); + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readMeasuredValueAttribute(IntegerAttributeCallback callback) { readMeasuredValueAttribute(chipClusterPtr, callback); } @@ -9400,6 +9991,10 @@ public void reportToleranceAttribute(IntegerAttributeCallback callback) { reportToleranceAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -9449,6 +10044,9 @@ private native void subscribeToleranceAttribute( private native void reportToleranceAttribute( long chipClusterPtr, IntegerAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -9597,6 +10195,12 @@ void onSuccess( void onError(Exception error); } + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readSceneCountAttribute(IntegerAttributeCallback callback) { readSceneCountAttribute(chipClusterPtr, callback); } @@ -9662,6 +10266,10 @@ public void reportNameSupportAttribute(IntegerAttributeCallback callback) { reportNameSupportAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -9720,6 +10328,9 @@ private native void subscribeNameSupportAttribute( private native void reportNameSupportAttribute( long chipClusterPtr, IntegerAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -9797,6 +10408,12 @@ public interface ThreadMetricsAttributeCallback { void onError(Exception ex); } + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readThreadMetricsAttribute(ThreadMetricsAttributeCallback callback) { readThreadMetricsAttribute(chipClusterPtr, callback); } @@ -9841,6 +10458,10 @@ public void reportCurrentHeapHighWatermarkAttribute(LongAttributeCallback callba reportCurrentHeapHighWatermarkAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readFeatureMapAttribute(LongAttributeCallback callback) { readFeatureMapAttribute(chipClusterPtr, callback); } @@ -9888,6 +10509,9 @@ private native void subscribeCurrentHeapHighWatermarkAttribute( private native void reportCurrentHeapHighWatermarkAttribute( long chipClusterPtr, LongAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readFeatureMapAttribute( long chipClusterPtr, LongAttributeCallback callback); @@ -9913,6 +10537,12 @@ public static long clusterId() { @Override public native long initWithDevice(long devicePtr, int endpointId); + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readNumberOfPositionsAttribute(IntegerAttributeCallback callback) { readNumberOfPositionsAttribute(chipClusterPtr, callback); } @@ -9952,6 +10582,10 @@ public void reportMultiPressMaxAttribute(IntegerAttributeCallback callback) { reportMultiPressMaxAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readFeatureMapAttribute(LongAttributeCallback callback) { readFeatureMapAttribute(chipClusterPtr, callback); } @@ -10005,6 +10639,9 @@ private native void subscribeMultiPressMaxAttribute( private native void reportMultiPressMaxAttribute( long chipClusterPtr, IntegerAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readFeatureMapAttribute( long chipClusterPtr, LongAttributeCallback callback); @@ -10122,6 +10759,12 @@ public interface TvChannelListAttributeCallback { void onError(Exception ex); } + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readTvChannelListAttribute(TvChannelListAttributeCallback callback) { readTvChannelListAttribute(chipClusterPtr, callback); } @@ -10152,6 +10795,10 @@ public void reportCurrentTvChannelAttribute(OctetStringAttributeCallback callbac reportCurrentTvChannelAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -10186,6 +10833,9 @@ private native void subscribeCurrentTvChannelAttribute( private native void reportCurrentTvChannelAttribute( long chipClusterPtr, OctetStringAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -10252,10 +10902,20 @@ public interface TargetNavigatorListAttributeCallback { void onError(Exception ex); } + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readTargetNavigatorListAttribute(TargetNavigatorListAttributeCallback callback) { readTargetNavigatorListAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -10272,6 +10932,9 @@ public void reportClusterRevisionAttribute(IntegerAttributeCallback callback) { private native void readTargetNavigatorListAttribute( long chipClusterPtr, TargetNavigatorListAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -10294,6 +10957,12 @@ public static long clusterId() { @Override public native long initWithDevice(long devicePtr, int endpointId); + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readMeasuredValueAttribute(IntegerAttributeCallback callback) { readMeasuredValueAttribute(chipClusterPtr, callback); } @@ -10346,6 +11015,10 @@ public void reportToleranceAttribute(IntegerAttributeCallback callback) { reportToleranceAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -10395,6 +11068,9 @@ private native void subscribeToleranceAttribute( private native void reportToleranceAttribute( long chipClusterPtr, IntegerAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -10907,6 +11583,12 @@ public interface NullableRangeRestrictedInt16sAttributeCallback { void onError(Exception ex); } + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readBooleanAttribute(BooleanAttributeCallback callback) { readBooleanAttribute(chipClusterPtr, callback); } @@ -12133,6 +12815,10 @@ public void reportNullableRangeRestrictedInt16sAttribute(IntegerAttributeCallbac reportNullableRangeRestrictedInt16sAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -12947,6 +13633,9 @@ private native void subscribeNullableRangeRestrictedInt16sAttribute( private native void reportNullableRangeRestrictedInt16sAttribute( long chipClusterPtr, IntegerAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -13022,6 +13711,12 @@ private native void setWeeklySchedule( private native void setpointRaiseLower( long chipClusterPtr, DefaultClusterCallback Callback, Integer mode, Integer amount); + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readLocalTemperatureAttribute(IntegerAttributeCallback callback) { readLocalTemperatureAttribute(chipClusterPtr, callback); } @@ -13285,6 +13980,10 @@ public void reportNumberOfDailyTransitionsAttribute(IntegerAttributeCallback cal reportNumberOfDailyTransitionsAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readFeatureMapAttribute(LongAttributeCallback callback) { readFeatureMapAttribute(chipClusterPtr, callback); } @@ -13491,6 +14190,9 @@ private native void subscribeNumberOfDailyTransitionsAttribute( private native void reportNumberOfDailyTransitionsAttribute( long chipClusterPtr, IntegerAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readFeatureMapAttribute( long chipClusterPtr, LongAttributeCallback callback); @@ -13522,6 +14224,12 @@ public static long clusterId() { @Override public native long initWithDevice(long devicePtr, int endpointId); + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readTemperatureDisplayModeAttribute(IntegerAttributeCallback callback) { readTemperatureDisplayModeAttribute(chipClusterPtr, callback); } @@ -13576,6 +14284,10 @@ public void reportScheduleProgrammingVisibilityAttribute(IntegerAttributeCallbac reportScheduleProgrammingVisibilityAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -13625,6 +14337,9 @@ private native void subscribeScheduleProgrammingVisibilityAttribute( private native void reportScheduleProgrammingVisibilityAttribute( long chipClusterPtr, IntegerAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -13995,6 +14710,12 @@ public interface ActiveNetworkFaultsListAttributeCallback { void onError(Exception ex); } + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readChannelAttribute(IntegerAttributeCallback callback) { readChannelAttribute(chipClusterPtr, callback); } @@ -14777,6 +15498,10 @@ public void readActiveNetworkFaultsListAttribute( readActiveNetworkFaultsListAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readFeatureMapAttribute(LongAttributeCallback callback) { readFeatureMapAttribute(chipClusterPtr, callback); } @@ -15328,6 +16053,9 @@ private native void readOperationalDatasetComponentsAttribute( private native void readActiveNetworkFaultsListAttribute( long chipClusterPtr, ActiveNetworkFaultsListAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readFeatureMapAttribute( long chipClusterPtr, LongAttributeCallback callback); @@ -15353,6 +16081,12 @@ public static long clusterId() { @Override public native long initWithDevice(long devicePtr, int endpointId); + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readWakeOnLanMacAddressAttribute(CharStringAttributeCallback callback) { readWakeOnLanMacAddressAttribute(chipClusterPtr, callback); } @@ -15366,6 +16100,10 @@ public void reportWakeOnLanMacAddressAttribute(CharStringAttributeCallback callb reportWakeOnLanMacAddressAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readClusterRevisionAttribute(IntegerAttributeCallback callback) { readClusterRevisionAttribute(chipClusterPtr, callback); } @@ -15388,6 +16126,9 @@ private native void subscribeWakeOnLanMacAddressAttribute( private native void reportWakeOnLanMacAddressAttribute( long chipClusterPtr, CharStringAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readClusterRevisionAttribute( long chipClusterPtr, IntegerAttributeCallback callback); @@ -15416,6 +16157,12 @@ public void resetCounts(DefaultClusterCallback callback) { private native void resetCounts(long chipClusterPtr, DefaultClusterCallback Callback); + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readBssidAttribute(OctetStringAttributeCallback callback) { readBssidAttribute(chipClusterPtr, callback); } @@ -15585,6 +16332,10 @@ public void reportOverrunCountAttribute(LongAttributeCallback callback) { reportOverrunCountAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readFeatureMapAttribute(LongAttributeCallback callback) { readFeatureMapAttribute(chipClusterPtr, callback); } @@ -15717,6 +16468,9 @@ private native void subscribeOverrunCountAttribute( private native void reportOverrunCountAttribute( long chipClusterPtr, LongAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readFeatureMapAttribute( long chipClusterPtr, LongAttributeCallback callback); @@ -15800,6 +16554,12 @@ private native void goToTiltValue( private native void upOrOpen(long chipClusterPtr, DefaultClusterCallback Callback); + public interface AttributeListAttributeCallback { + void onSuccess(List valueList); + + void onError(Exception ex); + } + public void readTypeAttribute(IntegerAttributeCallback callback) { readTypeAttribute(chipClusterPtr, callback); } @@ -16046,6 +16806,10 @@ public void reportSafetyStatusAttribute(IntegerAttributeCallback callback) { reportSafetyStatusAttribute(chipClusterPtr, callback); } + public void readAttributeListAttribute(AttributeListAttributeCallback callback) { + readAttributeListAttribute(chipClusterPtr, callback); + } + public void readFeatureMapAttribute(LongAttributeCallback callback) { readFeatureMapAttribute(chipClusterPtr, callback); } @@ -16233,6 +16997,9 @@ private native void subscribeSafetyStatusAttribute( private native void reportSafetyStatusAttribute( long chipClusterPtr, IntegerAttributeCallback callback); + private native void readAttributeListAttribute( + long chipClusterPtr, AttributeListAttributeCallback callback); + private native void readFeatureMapAttribute( long chipClusterPtr, LongAttributeCallback callback); diff --git a/src/controller/java/zap-generated/chip/devicecontroller/ClusterInfoMapping.java b/src/controller/java/zap-generated/chip/devicecontroller/ClusterInfoMapping.java index daebcc16f60a82..85e42f6bba1801 100644 --- a/src/controller/java/zap-generated/chip/devicecontroller/ClusterInfoMapping.java +++ b/src/controller/java/zap-generated/chip/devicecontroller/ClusterInfoMapping.java @@ -274,6 +274,31 @@ public void onError(Exception ex) { } } + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.AccessControlCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + public static class DelegatedGetSetupPINResponseCallback implements ChipClusters.AccountLoginCluster.GetSetupPINResponseCallback, DelegatedClusterCallback { @@ -298,6 +323,81 @@ public void onError(Exception error) { } } + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.AccountLoginCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.AdministratorCommissioningCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.ApplicationBasicCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + public static class DelegatedLaunchAppResponseCallback implements ChipClusters.ApplicationLauncherCluster.LaunchAppResponseCallback, DelegatedClusterCallback { @@ -350,6 +450,31 @@ public void onError(Exception ex) { } } + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.ApplicationLauncherCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + public static class DelegatedAudioOutputListAttributeCallback implements ChipClusters.AudioOutputCluster.AudioOutputListAttributeCallback, DelegatedClusterCallback { @@ -378,6 +503,156 @@ public void onError(Exception ex) { } } + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.AudioOutputCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.BarrierControlCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.BasicCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.BinaryInputBasicCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.BindingCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.BooleanStateCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + public static class DelegatedActionListAttributeCallback implements ChipClusters.BridgedActionsCluster.ActionListAttributeCallback, DelegatedClusterCallback { @@ -433,6 +708,81 @@ public void onError(Exception ex) { } } + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.BridgedActionsCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.BridgedDeviceBasicCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.ColorControlCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + public static class DelegatedLaunchContentResponseCallback implements ChipClusters.ContentLauncherCluster.LaunchContentResponseCallback, DelegatedClusterCallback { @@ -539,6 +889,31 @@ public void onError(Exception ex) { } } + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.ContentLauncherCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + public static class DelegatedDeviceListAttributeCallback implements ChipClusters.DescriptorCluster.DeviceListAttributeCallback, DelegatedClusterCallback { @@ -642,6 +1017,31 @@ public void onError(Exception ex) { } } + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.DescriptorCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + public static class DelegatedRetrieveLogsResponseCallback implements ChipClusters.DiagnosticLogsCluster.RetrieveLogsResponseCallback, DelegatedClusterCallback { @@ -673,6 +1073,31 @@ public void onError(Exception error) { } } + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.DiagnosticLogsCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + public static class DelegatedGetHolidayScheduleResponseCallback implements ChipClusters.DoorLockCluster.GetHolidayScheduleResponseCallback, DelegatedClusterCallback { @@ -933,13 +1358,140 @@ public void onSuccess( } @Override - public void onError(Exception error) { - callback.onFailure(error); + public void onError(Exception error) { + callback.onFailure(error); + } + } + + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.DoorLockCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.ElectricalMeasurementCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.EthernetNetworkDiagnosticsCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + + public static class DelegatedLabelListAttributeCallback + implements ChipClusters.FixedLabelCluster.LabelListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = + new CommandResponseInfo( + "valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.FixedLabelCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); } } - public static class DelegatedLabelListAttributeCallback - implements ChipClusters.FixedLabelCluster.LabelListAttributeCallback, + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.FlowMeasurementCluster.AttributeListAttributeCallback, DelegatedClusterCallback { private ClusterCommandCallback callback; @@ -949,11 +1501,9 @@ public void setCallbackDelegate(ClusterCommandCallback callback) { } @Override - public void onSuccess(List valueList) { + public void onSuccess(List valueList) { Map responseValues = new LinkedHashMap<>(); - CommandResponseInfo commandResponseInfo = - new CommandResponseInfo( - "valueList", "List"); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); responseValues.put(commandResponseInfo, valueList); callback.onSuccess(responseValues); @@ -1074,6 +1624,31 @@ public void onError(Exception ex) { } } + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.GeneralCommissioningCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + public static class DelegatedNetworkInterfacesAttributeCallback implements ChipClusters.GeneralDiagnosticsCluster.NetworkInterfacesAttributeCallback, DelegatedClusterCallback { @@ -1181,6 +1756,31 @@ public void onError(Exception ex) { } } + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.GeneralDiagnosticsCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + public static class DelegatedGroupsAttributeCallback implements ChipClusters.GroupKeyManagementCluster.GroupsAttributeCallback, DelegatedClusterCallback { @@ -1236,6 +1836,31 @@ public void onError(Exception ex) { } } + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.GroupKeyManagementCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + public static class DelegatedAddGroupResponseCallback implements ChipClusters.GroupsCluster.AddGroupResponseCallback, DelegatedClusterCallback { private ClusterCommandCallback callback; @@ -1342,8 +1967,180 @@ public void onError(Exception error) { } } - public static class DelegatedIdentifyQueryResponseCallback - implements ChipClusters.IdentifyCluster.IdentifyQueryResponseCallback, + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.GroupsCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + + public static class DelegatedIdentifyQueryResponseCallback + implements ChipClusters.IdentifyCluster.IdentifyQueryResponseCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(Integer timeout) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo timeoutResponseValue = new CommandResponseInfo("timeout", "int"); + responseValues.put(timeoutResponseValue, timeout); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception error) { + callback.onFailure(error); + } + } + + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.IdentifyCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.IlluminanceMeasurementCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + + public static class DelegatedSendKeyResponseCallback + implements ChipClusters.KeypadInputCluster.SendKeyResponseCallback, DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(Integer status) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo statusResponseValue = new CommandResponseInfo("status", "int"); + responseValues.put(statusResponseValue, status); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception error) { + callback.onFailure(error); + } + } + + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.KeypadInputCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.LevelControlCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.LowPowerCluster.AttributeListAttributeCallback, DelegatedClusterCallback { private ClusterCommandCallback callback; @@ -1353,21 +2150,23 @@ public void setCallbackDelegate(ClusterCommandCallback callback) { } @Override - public void onSuccess(Integer timeout) { + public void onSuccess(List valueList) { Map responseValues = new LinkedHashMap<>(); - CommandResponseInfo timeoutResponseValue = new CommandResponseInfo("timeout", "int"); - responseValues.put(timeoutResponseValue, timeout); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); callback.onSuccess(responseValues); } @Override - public void onError(Exception error) { - callback.onFailure(error); + public void onError(Exception ex) { + callback.onFailure(ex); } } - public static class DelegatedSendKeyResponseCallback - implements ChipClusters.KeypadInputCluster.SendKeyResponseCallback, DelegatedClusterCallback { + public static class DelegatedMediaInputListAttributeCallback + implements ChipClusters.MediaInputCluster.MediaInputListAttributeCallback, + DelegatedClusterCallback { private ClusterCommandCallback callback; @Override @@ -1376,21 +2175,24 @@ public void setCallbackDelegate(ClusterCommandCallback callback) { } @Override - public void onSuccess(Integer status) { + public void onSuccess(List valueList) { Map responseValues = new LinkedHashMap<>(); - CommandResponseInfo statusResponseValue = new CommandResponseInfo("status", "int"); - responseValues.put(statusResponseValue, status); + CommandResponseInfo commandResponseInfo = + new CommandResponseInfo( + "valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); callback.onSuccess(responseValues); } @Override - public void onError(Exception error) { - callback.onFailure(error); + public void onError(Exception ex) { + callback.onFailure(ex); } } - public static class DelegatedMediaInputListAttributeCallback - implements ChipClusters.MediaInputCluster.MediaInputListAttributeCallback, + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.MediaInputCluster.AttributeListAttributeCallback, DelegatedClusterCallback { private ClusterCommandCallback callback; @@ -1400,11 +2202,9 @@ public void setCallbackDelegate(ClusterCommandCallback callback) { } @Override - public void onSuccess(List valueList) { + public void onSuccess(List valueList) { Map responseValues = new LinkedHashMap<>(); - CommandResponseInfo commandResponseInfo = - new CommandResponseInfo( - "valueList", "List"); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); responseValues.put(commandResponseInfo, valueList); callback.onSuccess(responseValues); @@ -1691,6 +2491,31 @@ public void onError(Exception error) { } } + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.MediaPlaybackCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + public static class DelegatedSupportedModesAttributeCallback implements ChipClusters.ModeSelectCluster.SupportedModesAttributeCallback, DelegatedClusterCallback { @@ -1718,6 +2543,31 @@ public void onError(Exception ex) { } } + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.ModeSelectCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + public static class DelegatedAddThreadNetworkResponseCallback implements ChipClusters.NetworkCommissioningCluster.AddThreadNetworkResponseCallback, DelegatedClusterCallback { @@ -1935,8 +2785,187 @@ public void onError(Exception error) { } } - public static class DelegatedApplyUpdateResponseCallback - implements ChipClusters.OtaSoftwareUpdateProviderCluster.ApplyUpdateResponseCallback, + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.NetworkCommissioningCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + + public static class DelegatedApplyUpdateResponseCallback + implements ChipClusters.OtaSoftwareUpdateProviderCluster.ApplyUpdateResponseCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(Integer action, Long delayedActionTime) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo actionResponseValue = new CommandResponseInfo("action", "int"); + responseValues.put(actionResponseValue, action); + CommandResponseInfo delayedActionTimeResponseValue = + new CommandResponseInfo("delayedActionTime", "long"); + responseValues.put(delayedActionTimeResponseValue, delayedActionTime); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception error) { + callback.onFailure(error); + } + } + + public static class DelegatedQueryImageResponseCallback + implements ChipClusters.OtaSoftwareUpdateProviderCluster.QueryImageResponseCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess( + Integer status, + Optional delayedActionTime, + Optional imageURI, + Optional softwareVersion, + Optional softwareVersionString, + Optional updateToken, + Optional userConsentNeeded, + Optional metadataForRequestor) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo statusResponseValue = new CommandResponseInfo("status", "int"); + responseValues.put(statusResponseValue, status); + CommandResponseInfo delayedActionTimeResponseValue = + new CommandResponseInfo("delayedActionTime", "long"); + responseValues.put(delayedActionTimeResponseValue, delayedActionTime); + CommandResponseInfo imageURIResponseValue = new CommandResponseInfo("imageURI", "String"); + responseValues.put(imageURIResponseValue, imageURI); + CommandResponseInfo softwareVersionResponseValue = + new CommandResponseInfo("softwareVersion", "long"); + responseValues.put(softwareVersionResponseValue, softwareVersion); + CommandResponseInfo softwareVersionStringResponseValue = + new CommandResponseInfo("softwareVersionString", "String"); + responseValues.put(softwareVersionStringResponseValue, softwareVersionString); + CommandResponseInfo updateTokenResponseValue = + new CommandResponseInfo("updateToken", "byte[]"); + responseValues.put(updateTokenResponseValue, updateToken); + CommandResponseInfo userConsentNeededResponseValue = + new CommandResponseInfo("userConsentNeeded", "boolean"); + responseValues.put(userConsentNeededResponseValue, userConsentNeeded); + CommandResponseInfo metadataForRequestorResponseValue = + new CommandResponseInfo("metadataForRequestor", "byte[]"); + responseValues.put(metadataForRequestorResponseValue, metadataForRequestor); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception error) { + callback.onFailure(error); + } + } + + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.OtaSoftwareUpdateProviderCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.OtaSoftwareUpdateRequestorCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.OccupancySensingCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.OnOffCluster.AttributeListAttributeCallback, DelegatedClusterCallback { private ClusterCommandCallback callback; @@ -1946,24 +2975,22 @@ public void setCallbackDelegate(ClusterCommandCallback callback) { } @Override - public void onSuccess(Integer action, Long delayedActionTime) { + public void onSuccess(List valueList) { Map responseValues = new LinkedHashMap<>(); - CommandResponseInfo actionResponseValue = new CommandResponseInfo("action", "int"); - responseValues.put(actionResponseValue, action); - CommandResponseInfo delayedActionTimeResponseValue = - new CommandResponseInfo("delayedActionTime", "long"); - responseValues.put(delayedActionTimeResponseValue, delayedActionTime); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); callback.onSuccess(responseValues); } @Override - public void onError(Exception error) { - callback.onFailure(error); + public void onError(Exception ex) { + callback.onFailure(ex); } } - public static class DelegatedQueryImageResponseCallback - implements ChipClusters.OtaSoftwareUpdateProviderCluster.QueryImageResponseCallback, + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.OnOffSwitchConfigurationCluster.AttributeListAttributeCallback, DelegatedClusterCallback { private ClusterCommandCallback callback; @@ -1973,44 +3000,17 @@ public void setCallbackDelegate(ClusterCommandCallback callback) { } @Override - public void onSuccess( - Integer status, - Optional delayedActionTime, - Optional imageURI, - Optional softwareVersion, - Optional softwareVersionString, - Optional updateToken, - Optional userConsentNeeded, - Optional metadataForRequestor) { + public void onSuccess(List valueList) { Map responseValues = new LinkedHashMap<>(); - CommandResponseInfo statusResponseValue = new CommandResponseInfo("status", "int"); - responseValues.put(statusResponseValue, status); - CommandResponseInfo delayedActionTimeResponseValue = - new CommandResponseInfo("delayedActionTime", "long"); - responseValues.put(delayedActionTimeResponseValue, delayedActionTime); - CommandResponseInfo imageURIResponseValue = new CommandResponseInfo("imageURI", "String"); - responseValues.put(imageURIResponseValue, imageURI); - CommandResponseInfo softwareVersionResponseValue = - new CommandResponseInfo("softwareVersion", "long"); - responseValues.put(softwareVersionResponseValue, softwareVersion); - CommandResponseInfo softwareVersionStringResponseValue = - new CommandResponseInfo("softwareVersionString", "String"); - responseValues.put(softwareVersionStringResponseValue, softwareVersionString); - CommandResponseInfo updateTokenResponseValue = - new CommandResponseInfo("updateToken", "byte[]"); - responseValues.put(updateTokenResponseValue, updateToken); - CommandResponseInfo userConsentNeededResponseValue = - new CommandResponseInfo("userConsentNeeded", "boolean"); - responseValues.put(userConsentNeededResponseValue, userConsentNeeded); - CommandResponseInfo metadataForRequestorResponseValue = - new CommandResponseInfo("metadataForRequestor", "byte[]"); - responseValues.put(metadataForRequestorResponseValue, metadataForRequestor); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); callback.onSuccess(responseValues); } @Override - public void onError(Exception error) { - callback.onFailure(error); + public void onError(Exception ex) { + callback.onFailure(ex); } } @@ -2177,6 +3177,31 @@ public void onError(Exception ex) { } } + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.OperationalCredentialsCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + public static class DelegatedActiveBatteryFaultsAttributeCallback implements ChipClusters.PowerSourceCluster.ActiveBatteryFaultsAttributeCallback, DelegatedClusterCallback { @@ -2203,6 +3228,31 @@ public void onError(Exception ex) { } } + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.PowerSourceCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + public static class DelegatedSourcesAttributeCallback implements ChipClusters.PowerSourceConfigurationCluster.SourcesAttributeCallback, DelegatedClusterCallback { @@ -2229,6 +3279,106 @@ public void onError(Exception ex) { } } + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.PowerSourceConfigurationCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.PressureMeasurementCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.PumpConfigurationAndControlCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.RelativeHumidityMeasurementCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + public static class DelegatedAddSceneResponseCallback implements ChipClusters.ScenesCluster.AddSceneResponseCallback, DelegatedClusterCallback { private ClusterCommandCallback callback; @@ -2404,13 +3554,91 @@ public void onSuccess( } @Override - public void onError(Exception error) { - callback.onFailure(error); + public void onError(Exception error) { + callback.onFailure(error); + } + } + + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.ScenesCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + + public static class DelegatedThreadMetricsAttributeCallback + implements ChipClusters.SoftwareDiagnosticsCluster.ThreadMetricsAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess( + List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = + new CommandResponseInfo( + "valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.SoftwareDiagnosticsCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); } } - public static class DelegatedThreadMetricsAttributeCallback - implements ChipClusters.SoftwareDiagnosticsCluster.ThreadMetricsAttributeCallback, + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.SwitchCluster.AttributeListAttributeCallback, DelegatedClusterCallback { private ClusterCommandCallback callback; @@ -2420,12 +3648,9 @@ public void setCallbackDelegate(ClusterCommandCallback callback) { } @Override - public void onSuccess( - List valueList) { + public void onSuccess(List valueList) { Map responseValues = new LinkedHashMap<>(); - CommandResponseInfo commandResponseInfo = - new CommandResponseInfo( - "valueList", "List"); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); responseValues.put(commandResponseInfo, valueList); callback.onSuccess(responseValues); @@ -2492,6 +3717,31 @@ public void onError(Exception ex) { } } + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.TvChannelCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + public static class DelegatedNavigateTargetResponseCallback implements ChipClusters.TargetNavigatorCluster.NavigateTargetResponseCallback, DelegatedClusterCallback { @@ -2547,6 +3797,56 @@ public void onError(Exception ex) { } } + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.TargetNavigatorCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.TemperatureMeasurementCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + public static class DelegatedBooleanResponseCallback implements ChipClusters.TestClusterCluster.BooleanResponseCallback, DelegatedClusterCallback { private ClusterCommandCallback callback; @@ -2867,6 +4167,82 @@ public void onError(Exception ex) { } } + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.TestClusterCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.ThermostatCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.ThermostatUserInterfaceConfigurationCluster + .AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + public static class DelegatedNeighborTableListAttributeCallback implements ChipClusters.ThreadNetworkDiagnosticsCluster.NeighborTableListAttributeCallback, DelegatedClusterCallback { @@ -3012,6 +4388,106 @@ public void onError(Exception ex) { } } + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.ThreadNetworkDiagnosticsCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.WakeOnLanCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.WiFiNetworkDiagnosticsCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + + public static class DelegatedAttributeListAttributeCallback + implements ChipClusters.WindowCoveringCluster.AttributeListAttributeCallback, + DelegatedClusterCallback { + private ClusterCommandCallback callback; + + @Override + public void setCallbackDelegate(ClusterCommandCallback callback) { + this.callback = callback; + } + + @Override + public void onSuccess(List valueList) { + Map responseValues = new LinkedHashMap<>(); + CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); + + responseValues.put(commandResponseInfo, valueList); + callback.onSuccess(responseValues); + } + + @Override + public void onError(Exception ex) { + callback.onFailure(ex); + } + } + public Map getClusterMap() { Map clusterMap = initializeClusterMap(); Map> commandMap = getCommandMap(); diff --git a/src/controller/java/zap-generated/chip/devicecontroller/ClusterReadMapping.java b/src/controller/java/zap-generated/chip/devicecontroller/ClusterReadMapping.java index c0e85c6463f5d4..2aa7379606d8d6 100644 --- a/src/controller/java/zap-generated/chip/devicecontroller/ClusterReadMapping.java +++ b/src/controller/java/zap-generated/chip/devicecontroller/ClusterReadMapping.java @@ -56,6 +56,19 @@ public Map> getReadAttributeMap() { readAccessControlExtensionCommandParams); readAccessControlInteractionInfo.put( "readExtensionAttribute", readAccessControlExtensionAttributeInteractionInfo); + Map readAccessControlAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readAccessControlAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AccessControlCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.AccessControlCluster.AttributeListAttributeCallback) callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readAccessControlAttributeListCommandParams); + readAccessControlInteractionInfo.put( + "readAttributeListAttribute", readAccessControlAttributeListAttributeInteractionInfo); Map readAccessControlClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readAccessControlClusterRevisionAttributeInteractionInfo = @@ -70,6 +83,19 @@ public Map> getReadAttributeMap() { "readClusterRevisionAttribute", readAccessControlClusterRevisionAttributeInteractionInfo); readAttributeMap.put("accessControl", readAccessControlInteractionInfo); Map readAccountLoginInteractionInfo = new LinkedHashMap<>(); + Map readAccountLoginAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readAccountLoginAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AccountLoginCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.AccountLoginCluster.AttributeListAttributeCallback) callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readAccountLoginAttributeListCommandParams); + readAccountLoginInteractionInfo.put( + "readAttributeListAttribute", readAccountLoginAttributeListAttributeInteractionInfo); Map readAccountLoginClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readAccountLoginClusterRevisionAttributeInteractionInfo = @@ -85,6 +111,22 @@ public Map> getReadAttributeMap() { readAttributeMap.put("accountLogin", readAccountLoginInteractionInfo); Map readAdministratorCommissioningInteractionInfo = new LinkedHashMap<>(); + Map readAdministratorCommissioningAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readAdministratorCommissioningAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AdministratorCommissioningCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.AdministratorCommissioningCluster + .AttributeListAttributeCallback) + callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readAdministratorCommissioningAttributeListCommandParams); + readAdministratorCommissioningInteractionInfo.put( + "readAttributeListAttribute", + readAdministratorCommissioningAttributeListAttributeInteractionInfo); Map readAdministratorCommissioningClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readAdministratorCommissioningClusterRevisionAttributeInteractionInfo = @@ -189,6 +231,20 @@ public Map> getReadAttributeMap() { readApplicationBasicInteractionInfo.put( "readApplicationStatusAttribute", readApplicationBasicApplicationStatusAttributeInteractionInfo); + Map readApplicationBasicAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readApplicationBasicAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ApplicationBasicCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.ApplicationBasicCluster.AttributeListAttributeCallback) + callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readApplicationBasicAttributeListCommandParams); + readApplicationBasicInteractionInfo.put( + "readAttributeListAttribute", readApplicationBasicAttributeListAttributeInteractionInfo); Map readApplicationBasicClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readApplicationBasicClusterRevisionAttributeInteractionInfo = @@ -245,6 +301,20 @@ public Map> getReadAttributeMap() { readApplicationLauncherApplicationIdCommandParams); readApplicationLauncherInteractionInfo.put( "readApplicationIdAttribute", readApplicationLauncherApplicationIdAttributeInteractionInfo); + Map readApplicationLauncherAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readApplicationLauncherAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ApplicationLauncherCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.ApplicationLauncherCluster.AttributeListAttributeCallback) + callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readApplicationLauncherAttributeListCommandParams); + readApplicationLauncherInteractionInfo.put( + "readAttributeListAttribute", readApplicationLauncherAttributeListAttributeInteractionInfo); Map readApplicationLauncherClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readApplicationLauncherClusterRevisionAttributeInteractionInfo = @@ -287,6 +357,19 @@ public Map> getReadAttributeMap() { readAudioOutputInteractionInfo.put( "readCurrentAudioOutputAttribute", readAudioOutputCurrentAudioOutputAttributeInteractionInfo); + Map readAudioOutputAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readAudioOutputAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.AudioOutputCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.AudioOutputCluster.AttributeListAttributeCallback) callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readAudioOutputAttributeListCommandParams); + readAudioOutputInteractionInfo.put( + "readAttributeListAttribute", readAudioOutputAttributeListAttributeInteractionInfo); Map readAudioOutputClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readAudioOutputClusterRevisionAttributeInteractionInfo = @@ -355,6 +438,19 @@ public Map> getReadAttributeMap() { readBarrierControlBarrierPositionCommandParams); readBarrierControlInteractionInfo.put( "readBarrierPositionAttribute", readBarrierControlBarrierPositionAttributeInteractionInfo); + Map readBarrierControlAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readBarrierControlAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BarrierControlCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.BarrierControlCluster.AttributeListAttributeCallback) callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readBarrierControlAttributeListCommandParams); + readBarrierControlInteractionInfo.put( + "readAttributeListAttribute", readBarrierControlAttributeListAttributeInteractionInfo); Map readBarrierControlClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readBarrierControlClusterRevisionAttributeInteractionInfo = @@ -605,6 +701,19 @@ public Map> getReadAttributeMap() { readBasicUniqueIDCommandParams); readBasicInteractionInfo.put( "readUniqueIDAttribute", readBasicUniqueIDAttributeInteractionInfo); + Map readBasicAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readBasicAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BasicCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.BasicCluster.AttributeListAttributeCallback) callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readBasicAttributeListCommandParams); + readBasicInteractionInfo.put( + "readAttributeListAttribute", readBasicAttributeListAttributeInteractionInfo); Map readBasicClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readBasicClusterRevisionAttributeInteractionInfo = @@ -655,6 +764,20 @@ public Map> getReadAttributeMap() { readBinaryInputBasicStatusFlagsCommandParams); readBinaryInputBasicInteractionInfo.put( "readStatusFlagsAttribute", readBinaryInputBasicStatusFlagsAttributeInteractionInfo); + Map readBinaryInputBasicAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readBinaryInputBasicAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BinaryInputBasicCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.BinaryInputBasicCluster.AttributeListAttributeCallback) + callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readBinaryInputBasicAttributeListCommandParams); + readBinaryInputBasicInteractionInfo.put( + "readAttributeListAttribute", readBinaryInputBasicAttributeListAttributeInteractionInfo); Map readBinaryInputBasicClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readBinaryInputBasicClusterRevisionAttributeInteractionInfo = @@ -670,6 +793,19 @@ public Map> getReadAttributeMap() { readBinaryInputBasicClusterRevisionAttributeInteractionInfo); readAttributeMap.put("binaryInputBasic", readBinaryInputBasicInteractionInfo); Map readBindingInteractionInfo = new LinkedHashMap<>(); + Map readBindingAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readBindingAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BindingCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.BindingCluster.AttributeListAttributeCallback) callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readBindingAttributeListCommandParams); + readBindingInteractionInfo.put( + "readAttributeListAttribute", readBindingAttributeListAttributeInteractionInfo); Map readBindingClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readBindingClusterRevisionAttributeInteractionInfo = @@ -696,6 +832,19 @@ public Map> getReadAttributeMap() { readBooleanStateStateValueCommandParams); readBooleanStateInteractionInfo.put( "readStateValueAttribute", readBooleanStateStateValueAttributeInteractionInfo); + Map readBooleanStateAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readBooleanStateAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BooleanStateCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.BooleanStateCluster.AttributeListAttributeCallback) callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readBooleanStateAttributeListCommandParams); + readBooleanStateInteractionInfo.put( + "readAttributeListAttribute", readBooleanStateAttributeListAttributeInteractionInfo); Map readBooleanStateClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readBooleanStateClusterRevisionAttributeInteractionInfo = @@ -748,6 +897,19 @@ public Map> getReadAttributeMap() { readBridgedActionsSetupUrlCommandParams); readBridgedActionsInteractionInfo.put( "readSetupUrlAttribute", readBridgedActionsSetupUrlAttributeInteractionInfo); + Map readBridgedActionsAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readBridgedActionsAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BridgedActionsCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.BridgedActionsCluster.AttributeListAttributeCallback) callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readBridgedActionsAttributeListCommandParams); + readBridgedActionsInteractionInfo.put( + "readAttributeListAttribute", readBridgedActionsAttributeListAttributeInteractionInfo); Map readBridgedActionsClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readBridgedActionsClusterRevisionAttributeInteractionInfo = @@ -762,6 +924,20 @@ public Map> getReadAttributeMap() { "readClusterRevisionAttribute", readBridgedActionsClusterRevisionAttributeInteractionInfo); readAttributeMap.put("bridgedActions", readBridgedActionsInteractionInfo); Map readBridgedDeviceBasicInteractionInfo = new LinkedHashMap<>(); + Map readBridgedDeviceBasicAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readBridgedDeviceBasicAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.BridgedDeviceBasicCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.BridgedDeviceBasicCluster.AttributeListAttributeCallback) + callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readBridgedDeviceBasicAttributeListCommandParams); + readBridgedDeviceBasicInteractionInfo.put( + "readAttributeListAttribute", readBridgedDeviceBasicAttributeListAttributeInteractionInfo); Map readBridgedDeviceBasicClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readBridgedDeviceBasicClusterRevisionAttributeInteractionInfo = @@ -1437,6 +1613,19 @@ public Map> getReadAttributeMap() { readColorControlInteractionInfo.put( "readStartUpColorTemperatureMiredsAttribute", readColorControlStartUpColorTemperatureMiredsAttributeInteractionInfo); + Map readColorControlAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readColorControlAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ColorControlCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.ColorControlCluster.AttributeListAttributeCallback) callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readColorControlAttributeListCommandParams); + readColorControlInteractionInfo.put( + "readAttributeListAttribute", readColorControlAttributeListAttributeInteractionInfo); Map readColorControlClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readColorControlClusterRevisionAttributeInteractionInfo = @@ -1481,6 +1670,20 @@ public Map> getReadAttributeMap() { readContentLauncherInteractionInfo.put( "readSupportedStreamingTypesAttribute", readContentLauncherSupportedStreamingTypesAttributeInteractionInfo); + Map readContentLauncherAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readContentLauncherAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ContentLauncherCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.ContentLauncherCluster.AttributeListAttributeCallback) + callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readContentLauncherAttributeListCommandParams); + readContentLauncherInteractionInfo.put( + "readAttributeListAttribute", readContentLauncherAttributeListAttributeInteractionInfo); Map readContentLauncherClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readContentLauncherClusterRevisionAttributeInteractionInfo = @@ -1547,6 +1750,19 @@ public Map> getReadAttributeMap() { readDescriptorPartsListCommandParams); readDescriptorInteractionInfo.put( "readPartsListAttribute", readDescriptorPartsListAttributeInteractionInfo); + Map readDescriptorAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readDescriptorAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DescriptorCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.DescriptorCluster.AttributeListAttributeCallback) callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readDescriptorAttributeListCommandParams); + readDescriptorInteractionInfo.put( + "readAttributeListAttribute", readDescriptorAttributeListAttributeInteractionInfo); Map readDescriptorClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readDescriptorClusterRevisionAttributeInteractionInfo = @@ -1561,6 +1777,19 @@ public Map> getReadAttributeMap() { "readClusterRevisionAttribute", readDescriptorClusterRevisionAttributeInteractionInfo); readAttributeMap.put("descriptor", readDescriptorInteractionInfo); Map readDiagnosticLogsInteractionInfo = new LinkedHashMap<>(); + Map readDiagnosticLogsAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readDiagnosticLogsAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DiagnosticLogsCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.DiagnosticLogsCluster.AttributeListAttributeCallback) callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readDiagnosticLogsAttributeListCommandParams); + readDiagnosticLogsInteractionInfo.put( + "readAttributeListAttribute", readDiagnosticLogsAttributeListAttributeInteractionInfo); readAttributeMap.put("diagnosticLogs", readDiagnosticLogsInteractionInfo); Map readDoorLockInteractionInfo = new LinkedHashMap<>(); Map readDoorLockActuatorEnabledCommandParams = @@ -1575,6 +1804,19 @@ public Map> getReadAttributeMap() { readDoorLockActuatorEnabledCommandParams); readDoorLockInteractionInfo.put( "readActuatorEnabledAttribute", readDoorLockActuatorEnabledAttributeInteractionInfo); + Map readDoorLockAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readDoorLockAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.DoorLockCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.DoorLockCluster.AttributeListAttributeCallback) callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readDoorLockAttributeListCommandParams); + readDoorLockInteractionInfo.put( + "readAttributeListAttribute", readDoorLockAttributeListAttributeInteractionInfo); Map readDoorLockClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readDoorLockClusterRevisionAttributeInteractionInfo = @@ -1729,6 +1971,21 @@ public Map> getReadAttributeMap() { readElectricalMeasurementInteractionInfo.put( "readActivePowerMaxAttribute", readElectricalMeasurementActivePowerMaxAttributeInteractionInfo); + Map readElectricalMeasurementAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readElectricalMeasurementAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ElectricalMeasurementCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.ElectricalMeasurementCluster.AttributeListAttributeCallback) + callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readElectricalMeasurementAttributeListCommandParams); + readElectricalMeasurementInteractionInfo.put( + "readAttributeListAttribute", + readElectricalMeasurementAttributeListAttributeInteractionInfo); Map readElectricalMeasurementClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readElectricalMeasurementClusterRevisionAttributeInteractionInfo = @@ -1861,6 +2118,22 @@ public Map> getReadAttributeMap() { readEthernetNetworkDiagnosticsInteractionInfo.put( "readTimeSinceResetAttribute", readEthernetNetworkDiagnosticsTimeSinceResetAttributeInteractionInfo); + Map readEthernetNetworkDiagnosticsAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readEthernetNetworkDiagnosticsAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.EthernetNetworkDiagnosticsCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.EthernetNetworkDiagnosticsCluster + .AttributeListAttributeCallback) + callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readEthernetNetworkDiagnosticsAttributeListCommandParams); + readEthernetNetworkDiagnosticsInteractionInfo.put( + "readAttributeListAttribute", + readEthernetNetworkDiagnosticsAttributeListAttributeInteractionInfo); Map readEthernetNetworkDiagnosticsFeatureMapCommandParams = new LinkedHashMap(); InteractionInfo readEthernetNetworkDiagnosticsFeatureMapAttributeInteractionInfo = @@ -1903,6 +2176,19 @@ public Map> getReadAttributeMap() { readFixedLabelLabelListCommandParams); readFixedLabelInteractionInfo.put( "readLabelListAttribute", readFixedLabelLabelListAttributeInteractionInfo); + Map readFixedLabelAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readFixedLabelAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FixedLabelCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.FixedLabelCluster.AttributeListAttributeCallback) callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readFixedLabelAttributeListCommandParams); + readFixedLabelInteractionInfo.put( + "readAttributeListAttribute", readFixedLabelAttributeListAttributeInteractionInfo); Map readFixedLabelClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readFixedLabelClusterRevisionAttributeInteractionInfo = @@ -1967,6 +2253,20 @@ public Map> getReadAttributeMap() { readFlowMeasurementToleranceCommandParams); readFlowMeasurementInteractionInfo.put( "readToleranceAttribute", readFlowMeasurementToleranceAttributeInteractionInfo); + Map readFlowMeasurementAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readFlowMeasurementAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.FlowMeasurementCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.FlowMeasurementCluster.AttributeListAttributeCallback) + callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readFlowMeasurementAttributeListCommandParams); + readFlowMeasurementInteractionInfo.put( + "readAttributeListAttribute", readFlowMeasurementAttributeListAttributeInteractionInfo); Map readFlowMeasurementClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readFlowMeasurementClusterRevisionAttributeInteractionInfo = @@ -2037,6 +2337,21 @@ public Map> getReadAttributeMap() { readGeneralCommissioningInteractionInfo.put( "readLocationCapabilityAttribute", readGeneralCommissioningLocationCapabilityAttributeInteractionInfo); + Map readGeneralCommissioningAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readGeneralCommissioningAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GeneralCommissioningCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.GeneralCommissioningCluster.AttributeListAttributeCallback) + callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readGeneralCommissioningAttributeListCommandParams); + readGeneralCommissioningInteractionInfo.put( + "readAttributeListAttribute", + readGeneralCommissioningAttributeListAttributeInteractionInfo); Map readGeneralCommissioningClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readGeneralCommissioningClusterRevisionAttributeInteractionInfo = @@ -2162,6 +2477,20 @@ public Map> getReadAttributeMap() { readGeneralDiagnosticsInteractionInfo.put( "readActiveNetworkFaultsAttribute", readGeneralDiagnosticsActiveNetworkFaultsAttributeInteractionInfo); + Map readGeneralDiagnosticsAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readGeneralDiagnosticsAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GeneralDiagnosticsCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.GeneralDiagnosticsCluster.AttributeListAttributeCallback) + callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readGeneralDiagnosticsAttributeListCommandParams); + readGeneralDiagnosticsInteractionInfo.put( + "readAttributeListAttribute", readGeneralDiagnosticsAttributeListAttributeInteractionInfo); Map readGeneralDiagnosticsClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readGeneralDiagnosticsClusterRevisionAttributeInteractionInfo = @@ -2203,6 +2532,20 @@ public Map> getReadAttributeMap() { readGroupKeyManagementGroupKeysCommandParams); readGroupKeyManagementInteractionInfo.put( "readGroupKeysAttribute", readGroupKeyManagementGroupKeysAttributeInteractionInfo); + Map readGroupKeyManagementAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readGroupKeyManagementAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GroupKeyManagementCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.GroupKeyManagementCluster.AttributeListAttributeCallback) + callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readGroupKeyManagementAttributeListCommandParams); + readGroupKeyManagementInteractionInfo.put( + "readAttributeListAttribute", readGroupKeyManagementAttributeListAttributeInteractionInfo); Map readGroupKeyManagementClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readGroupKeyManagementClusterRevisionAttributeInteractionInfo = @@ -2230,6 +2573,19 @@ public Map> getReadAttributeMap() { readGroupsNameSupportCommandParams); readGroupsInteractionInfo.put( "readNameSupportAttribute", readGroupsNameSupportAttributeInteractionInfo); + Map readGroupsAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readGroupsAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.GroupsCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.GroupsCluster.AttributeListAttributeCallback) callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readGroupsAttributeListCommandParams); + readGroupsInteractionInfo.put( + "readAttributeListAttribute", readGroupsAttributeListAttributeInteractionInfo); Map readGroupsClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readGroupsClusterRevisionAttributeInteractionInfo = @@ -2268,6 +2624,19 @@ public Map> getReadAttributeMap() { readIdentifyIdentifyTypeCommandParams); readIdentifyInteractionInfo.put( "readIdentifyTypeAttribute", readIdentifyIdentifyTypeAttributeInteractionInfo); + Map readIdentifyAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readIdentifyAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.IdentifyCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.IdentifyCluster.AttributeListAttributeCallback) callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readIdentifyAttributeListCommandParams); + readIdentifyInteractionInfo.put( + "readAttributeListAttribute", readIdentifyAttributeListAttributeInteractionInfo); Map readIdentifyClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readIdentifyClusterRevisionAttributeInteractionInfo = @@ -2352,6 +2721,21 @@ public Map> getReadAttributeMap() { readIlluminanceMeasurementInteractionInfo.put( "readLightSensorTypeAttribute", readIlluminanceMeasurementLightSensorTypeAttributeInteractionInfo); + Map readIlluminanceMeasurementAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readIlluminanceMeasurementAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.IlluminanceMeasurementCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.IlluminanceMeasurementCluster.AttributeListAttributeCallback) + callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readIlluminanceMeasurementAttributeListCommandParams); + readIlluminanceMeasurementInteractionInfo.put( + "readAttributeListAttribute", + readIlluminanceMeasurementAttributeListAttributeInteractionInfo); Map readIlluminanceMeasurementClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readIlluminanceMeasurementClusterRevisionAttributeInteractionInfo = @@ -2367,6 +2751,19 @@ public Map> getReadAttributeMap() { readIlluminanceMeasurementClusterRevisionAttributeInteractionInfo); readAttributeMap.put("illuminanceMeasurement", readIlluminanceMeasurementInteractionInfo); Map readKeypadInputInteractionInfo = new LinkedHashMap<>(); + Map readKeypadInputAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readKeypadInputAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.KeypadInputCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.KeypadInputCluster.AttributeListAttributeCallback) callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readKeypadInputAttributeListCommandParams); + readKeypadInputInteractionInfo.put( + "readAttributeListAttribute", readKeypadInputAttributeListAttributeInteractionInfo); Map readKeypadInputClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readKeypadInputClusterRevisionAttributeInteractionInfo = @@ -2558,6 +2955,19 @@ public Map> getReadAttributeMap() { readLevelControlInteractionInfo.put( "readStartUpCurrentLevelAttribute", readLevelControlStartUpCurrentLevelAttributeInteractionInfo); + Map readLevelControlAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readLevelControlAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.LevelControlCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.LevelControlCluster.AttributeListAttributeCallback) callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readLevelControlAttributeListCommandParams); + readLevelControlInteractionInfo.put( + "readAttributeListAttribute", readLevelControlAttributeListAttributeInteractionInfo); Map readLevelControlClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readLevelControlClusterRevisionAttributeInteractionInfo = @@ -2572,6 +2982,19 @@ public Map> getReadAttributeMap() { "readClusterRevisionAttribute", readLevelControlClusterRevisionAttributeInteractionInfo); readAttributeMap.put("levelControl", readLevelControlInteractionInfo); Map readLowPowerInteractionInfo = new LinkedHashMap<>(); + Map readLowPowerAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readLowPowerAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.LowPowerCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.LowPowerCluster.AttributeListAttributeCallback) callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readLowPowerAttributeListCommandParams); + readLowPowerInteractionInfo.put( + "readAttributeListAttribute", readLowPowerAttributeListAttributeInteractionInfo); Map readLowPowerClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readLowPowerClusterRevisionAttributeInteractionInfo = @@ -2611,6 +3034,19 @@ public Map> getReadAttributeMap() { readMediaInputCurrentMediaInputCommandParams); readMediaInputInteractionInfo.put( "readCurrentMediaInputAttribute", readMediaInputCurrentMediaInputAttributeInteractionInfo); + Map readMediaInputAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readMediaInputAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.MediaInputCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.MediaInputCluster.AttributeListAttributeCallback) callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readMediaInputAttributeListCommandParams); + readMediaInputInteractionInfo.put( + "readAttributeListAttribute", readMediaInputAttributeListAttributeInteractionInfo); Map readMediaInputClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readMediaInputClusterRevisionAttributeInteractionInfo = @@ -2722,6 +3158,19 @@ public Map> getReadAttributeMap() { readMediaPlaybackSeekRangeStartCommandParams); readMediaPlaybackInteractionInfo.put( "readSeekRangeStartAttribute", readMediaPlaybackSeekRangeStartAttributeInteractionInfo); + Map readMediaPlaybackAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readMediaPlaybackAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.MediaPlaybackCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.MediaPlaybackCluster.AttributeListAttributeCallback) callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readMediaPlaybackAttributeListCommandParams); + readMediaPlaybackInteractionInfo.put( + "readAttributeListAttribute", readMediaPlaybackAttributeListAttributeInteractionInfo); Map readMediaPlaybackClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readMediaPlaybackClusterRevisionAttributeInteractionInfo = @@ -2797,6 +3246,19 @@ public Map> getReadAttributeMap() { readModeSelectDescriptionCommandParams); readModeSelectInteractionInfo.put( "readDescriptionAttribute", readModeSelectDescriptionAttributeInteractionInfo); + Map readModeSelectAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readModeSelectAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ModeSelectCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.ModeSelectCluster.AttributeListAttributeCallback) callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readModeSelectAttributeListCommandParams); + readModeSelectInteractionInfo.put( + "readAttributeListAttribute", readModeSelectAttributeListAttributeInteractionInfo); Map readModeSelectClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readModeSelectClusterRevisionAttributeInteractionInfo = @@ -2811,6 +3273,21 @@ public Map> getReadAttributeMap() { "readClusterRevisionAttribute", readModeSelectClusterRevisionAttributeInteractionInfo); readAttributeMap.put("modeSelect", readModeSelectInteractionInfo); Map readNetworkCommissioningInteractionInfo = new LinkedHashMap<>(); + Map readNetworkCommissioningAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readNetworkCommissioningAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.NetworkCommissioningCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.NetworkCommissioningCluster.AttributeListAttributeCallback) + callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readNetworkCommissioningAttributeListCommandParams); + readNetworkCommissioningInteractionInfo.put( + "readAttributeListAttribute", + readNetworkCommissioningAttributeListAttributeInteractionInfo); Map readNetworkCommissioningFeatureMapCommandParams = new LinkedHashMap(); InteractionInfo readNetworkCommissioningFeatureMapAttributeInteractionInfo = @@ -2839,6 +3316,21 @@ public Map> getReadAttributeMap() { readAttributeMap.put("networkCommissioning", readNetworkCommissioningInteractionInfo); Map readOtaSoftwareUpdateProviderInteractionInfo = new LinkedHashMap<>(); + Map readOtaSoftwareUpdateProviderAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readOtaSoftwareUpdateProviderAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OtaSoftwareUpdateProviderCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.OtaSoftwareUpdateProviderCluster.AttributeListAttributeCallback) + callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readOtaSoftwareUpdateProviderAttributeListCommandParams); + readOtaSoftwareUpdateProviderInteractionInfo.put( + "readAttributeListAttribute", + readOtaSoftwareUpdateProviderAttributeListAttributeInteractionInfo); Map readOtaSoftwareUpdateProviderClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readOtaSoftwareUpdateProviderClusterRevisionAttributeInteractionInfo = @@ -2883,6 +3375,22 @@ public Map> getReadAttributeMap() { readOtaSoftwareUpdateRequestorInteractionInfo.put( "readUpdatePossibleAttribute", readOtaSoftwareUpdateRequestorUpdatePossibleAttributeInteractionInfo); + Map readOtaSoftwareUpdateRequestorAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readOtaSoftwareUpdateRequestorAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OtaSoftwareUpdateRequestorCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.OtaSoftwareUpdateRequestorCluster + .AttributeListAttributeCallback) + callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readOtaSoftwareUpdateRequestorAttributeListCommandParams); + readOtaSoftwareUpdateRequestorInteractionInfo.put( + "readAttributeListAttribute", + readOtaSoftwareUpdateRequestorAttributeListAttributeInteractionInfo); Map readOtaSoftwareUpdateRequestorClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readOtaSoftwareUpdateRequestorClusterRevisionAttributeInteractionInfo = @@ -2939,6 +3447,20 @@ public Map> getReadAttributeMap() { readOccupancySensingInteractionInfo.put( "readOccupancySensorTypeBitmapAttribute", readOccupancySensingOccupancySensorTypeBitmapAttributeInteractionInfo); + Map readOccupancySensingAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readOccupancySensingAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OccupancySensingCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.OccupancySensingCluster.AttributeListAttributeCallback) + callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readOccupancySensingAttributeListCommandParams); + readOccupancySensingInteractionInfo.put( + "readAttributeListAttribute", readOccupancySensingAttributeListAttributeInteractionInfo); Map readOccupancySensingClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readOccupancySensingClusterRevisionAttributeInteractionInfo = @@ -3013,6 +3535,19 @@ public Map> getReadAttributeMap() { readOnOffStartUpOnOffCommandParams); readOnOffInteractionInfo.put( "readStartUpOnOffAttribute", readOnOffStartUpOnOffAttributeInteractionInfo); + Map readOnOffAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readOnOffAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OnOffCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.OnOffCluster.AttributeListAttributeCallback) callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readOnOffAttributeListCommandParams); + readOnOffInteractionInfo.put( + "readAttributeListAttribute", readOnOffAttributeListAttributeInteractionInfo); Map readOnOffFeatureMapCommandParams = new LinkedHashMap(); InteractionInfo readOnOffFeatureMapAttributeInteractionInfo = @@ -3065,6 +3600,21 @@ public Map> getReadAttributeMap() { readOnOffSwitchConfigurationInteractionInfo.put( "readSwitchActionsAttribute", readOnOffSwitchConfigurationSwitchActionsAttributeInteractionInfo); + Map readOnOffSwitchConfigurationAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readOnOffSwitchConfigurationAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OnOffSwitchConfigurationCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.OnOffSwitchConfigurationCluster.AttributeListAttributeCallback) + callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readOnOffSwitchConfigurationAttributeListCommandParams); + readOnOffSwitchConfigurationInteractionInfo.put( + "readAttributeListAttribute", + readOnOffSwitchConfigurationAttributeListAttributeInteractionInfo); Map readOnOffSwitchConfigurationClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readOnOffSwitchConfigurationClusterRevisionAttributeInteractionInfo = @@ -3154,6 +3704,21 @@ public Map> getReadAttributeMap() { readOperationalCredentialsInteractionInfo.put( "readCurrentFabricIndexAttribute", readOperationalCredentialsCurrentFabricIndexAttributeInteractionInfo); + Map readOperationalCredentialsAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readOperationalCredentialsAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.OperationalCredentialsCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.OperationalCredentialsCluster.AttributeListAttributeCallback) + callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readOperationalCredentialsAttributeListCommandParams); + readOperationalCredentialsInteractionInfo.put( + "readAttributeListAttribute", + readOperationalCredentialsAttributeListAttributeInteractionInfo); Map readOperationalCredentialsClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readOperationalCredentialsClusterRevisionAttributeInteractionInfo = @@ -3287,6 +3852,19 @@ public Map> getReadAttributeMap() { readPowerSourceInteractionInfo.put( "readBatteryChargeStateAttribute", readPowerSourceBatteryChargeStateAttributeInteractionInfo); + Map readPowerSourceAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readPowerSourceAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.PowerSourceCluster.AttributeListAttributeCallback) callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readPowerSourceAttributeListCommandParams); + readPowerSourceInteractionInfo.put( + "readAttributeListAttribute", readPowerSourceAttributeListAttributeInteractionInfo); Map readPowerSourceFeatureMapCommandParams = new LinkedHashMap(); InteractionInfo readPowerSourceFeatureMapAttributeInteractionInfo = @@ -3328,6 +3906,21 @@ public Map> getReadAttributeMap() { readPowerSourceConfigurationSourcesCommandParams); readPowerSourceConfigurationInteractionInfo.put( "readSourcesAttribute", readPowerSourceConfigurationSourcesAttributeInteractionInfo); + Map readPowerSourceConfigurationAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readPowerSourceConfigurationAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PowerSourceConfigurationCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.PowerSourceConfigurationCluster.AttributeListAttributeCallback) + callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readPowerSourceConfigurationAttributeListCommandParams); + readPowerSourceConfigurationInteractionInfo.put( + "readAttributeListAttribute", + readPowerSourceConfigurationAttributeListAttributeInteractionInfo); Map readPowerSourceConfigurationClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readPowerSourceConfigurationClusterRevisionAttributeInteractionInfo = @@ -3381,6 +3974,20 @@ public Map> getReadAttributeMap() { readPressureMeasurementInteractionInfo.put( "readMaxMeasuredValueAttribute", readPressureMeasurementMaxMeasuredValueAttributeInteractionInfo); + Map readPressureMeasurementAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readPressureMeasurementAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PressureMeasurementCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.PressureMeasurementCluster.AttributeListAttributeCallback) + callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readPressureMeasurementAttributeListCommandParams); + readPressureMeasurementInteractionInfo.put( + "readAttributeListAttribute", readPressureMeasurementAttributeListAttributeInteractionInfo); Map readPressureMeasurementClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readPressureMeasurementClusterRevisionAttributeInteractionInfo = @@ -3715,6 +4322,22 @@ public Map> getReadAttributeMap() { readPumpConfigurationAndControlAlarmMaskCommandParams); readPumpConfigurationAndControlInteractionInfo.put( "readAlarmMaskAttribute", readPumpConfigurationAndControlAlarmMaskAttributeInteractionInfo); + Map readPumpConfigurationAndControlAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readPumpConfigurationAndControlAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.PumpConfigurationAndControlCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.PumpConfigurationAndControlCluster + .AttributeListAttributeCallback) + callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readPumpConfigurationAndControlAttributeListCommandParams); + readPumpConfigurationAndControlInteractionInfo.put( + "readAttributeListAttribute", + readPumpConfigurationAndControlAttributeListAttributeInteractionInfo); Map readPumpConfigurationAndControlFeatureMapCommandParams = new LinkedHashMap(); InteractionInfo readPumpConfigurationAndControlFeatureMapAttributeInteractionInfo = @@ -3796,6 +4419,22 @@ public Map> getReadAttributeMap() { readRelativeHumidityMeasurementToleranceCommandParams); readRelativeHumidityMeasurementInteractionInfo.put( "readToleranceAttribute", readRelativeHumidityMeasurementToleranceAttributeInteractionInfo); + Map readRelativeHumidityMeasurementAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readRelativeHumidityMeasurementAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.RelativeHumidityMeasurementCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.RelativeHumidityMeasurementCluster + .AttributeListAttributeCallback) + callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readRelativeHumidityMeasurementAttributeListCommandParams); + readRelativeHumidityMeasurementInteractionInfo.put( + "readAttributeListAttribute", + readRelativeHumidityMeasurementAttributeListAttributeInteractionInfo); Map readRelativeHumidityMeasurementClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readRelativeHumidityMeasurementClusterRevisionAttributeInteractionInfo = @@ -3872,6 +4511,19 @@ public Map> getReadAttributeMap() { readScenesNameSupportCommandParams); readScenesInteractionInfo.put( "readNameSupportAttribute", readScenesNameSupportAttributeInteractionInfo); + Map readScenesAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readScenesAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ScenesCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.ScenesCluster.AttributeListAttributeCallback) callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readScenesAttributeListCommandParams); + readScenesInteractionInfo.put( + "readAttributeListAttribute", readScenesAttributeListAttributeInteractionInfo); Map readScenesClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readScenesClusterRevisionAttributeInteractionInfo = @@ -3940,6 +4592,20 @@ public Map> getReadAttributeMap() { readSoftwareDiagnosticsInteractionInfo.put( "readCurrentHeapHighWatermarkAttribute", readSoftwareDiagnosticsCurrentHeapHighWatermarkAttributeInteractionInfo); + Map readSoftwareDiagnosticsAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readSoftwareDiagnosticsAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.SoftwareDiagnosticsCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.SoftwareDiagnosticsCluster.AttributeListAttributeCallback) + callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readSoftwareDiagnosticsAttributeListCommandParams); + readSoftwareDiagnosticsInteractionInfo.put( + "readAttributeListAttribute", readSoftwareDiagnosticsAttributeListAttributeInteractionInfo); Map readSoftwareDiagnosticsFeatureMapCommandParams = new LinkedHashMap(); InteractionInfo readSoftwareDiagnosticsFeatureMapAttributeInteractionInfo = @@ -4003,6 +4669,19 @@ public Map> getReadAttributeMap() { readSwitchMultiPressMaxCommandParams); readSwitchInteractionInfo.put( "readMultiPressMaxAttribute", readSwitchMultiPressMaxAttributeInteractionInfo); + Map readSwitchAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readSwitchAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.SwitchCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.SwitchCluster.AttributeListAttributeCallback) callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readSwitchAttributeListCommandParams); + readSwitchInteractionInfo.put( + "readAttributeListAttribute", readSwitchAttributeListAttributeInteractionInfo); Map readSwitchFeatureMapCommandParams = new LinkedHashMap(); InteractionInfo readSwitchFeatureMapAttributeInteractionInfo = @@ -4068,6 +4747,19 @@ public Map> getReadAttributeMap() { readTvChannelCurrentTvChannelCommandParams); readTvChannelInteractionInfo.put( "readCurrentTvChannelAttribute", readTvChannelCurrentTvChannelAttributeInteractionInfo); + Map readTvChannelAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readTvChannelAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TvChannelCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.TvChannelCluster.AttributeListAttributeCallback) callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readTvChannelAttributeListCommandParams); + readTvChannelInteractionInfo.put( + "readAttributeListAttribute", readTvChannelAttributeListAttributeInteractionInfo); Map readTvChannelClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readTvChannelClusterRevisionAttributeInteractionInfo = @@ -4097,6 +4789,20 @@ public Map> getReadAttributeMap() { readTargetNavigatorInteractionInfo.put( "readTargetNavigatorListAttribute", readTargetNavigatorTargetNavigatorListAttributeInteractionInfo); + Map readTargetNavigatorAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readTargetNavigatorAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TargetNavigatorCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.TargetNavigatorCluster.AttributeListAttributeCallback) + callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readTargetNavigatorAttributeListCommandParams); + readTargetNavigatorInteractionInfo.put( + "readAttributeListAttribute", readTargetNavigatorAttributeListAttributeInteractionInfo); Map readTargetNavigatorClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readTargetNavigatorClusterRevisionAttributeInteractionInfo = @@ -4162,6 +4868,21 @@ public Map> getReadAttributeMap() { readTemperatureMeasurementToleranceCommandParams); readTemperatureMeasurementInteractionInfo.put( "readToleranceAttribute", readTemperatureMeasurementToleranceAttributeInteractionInfo); + Map readTemperatureMeasurementAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readTemperatureMeasurementAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TemperatureMeasurementCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.TemperatureMeasurementCluster.AttributeListAttributeCallback) + callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readTemperatureMeasurementAttributeListCommandParams); + readTemperatureMeasurementInteractionInfo.put( + "readAttributeListAttribute", + readTemperatureMeasurementAttributeListAttributeInteractionInfo); Map readTemperatureMeasurementClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readTemperatureMeasurementClusterRevisionAttributeInteractionInfo = @@ -5134,6 +5855,19 @@ public Map> getReadAttributeMap() { readTestClusterInteractionInfo.put( "readNullableRangeRestrictedInt16sAttribute", readTestClusterNullableRangeRestrictedInt16sAttributeInteractionInfo); + Map readTestClusterAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readTestClusterAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.TestClusterCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.TestClusterCluster.AttributeListAttributeCallback) callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readTestClusterAttributeListCommandParams); + readTestClusterInteractionInfo.put( + "readAttributeListAttribute", readTestClusterAttributeListAttributeInteractionInfo); Map readTestClusterClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readTestClusterClusterRevisionAttributeInteractionInfo = @@ -5380,6 +6114,19 @@ public Map> getReadAttributeMap() { readThermostatInteractionInfo.put( "readNumberOfDailyTransitionsAttribute", readThermostatNumberOfDailyTransitionsAttributeInteractionInfo); + Map readThermostatAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readThermostatAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.ThermostatCluster.AttributeListAttributeCallback) callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readThermostatAttributeListCommandParams); + readThermostatInteractionInfo.put( + "readAttributeListAttribute", readThermostatAttributeListAttributeInteractionInfo); Map readThermostatFeatureMapCommandParams = new LinkedHashMap(); InteractionInfo readThermostatFeatureMapAttributeInteractionInfo = @@ -5453,6 +6200,23 @@ public Map> getReadAttributeMap() { readThermostatUserInterfaceConfigurationInteractionInfo.put( "readScheduleProgrammingVisibilityAttribute", readThermostatUserInterfaceConfigurationScheduleProgrammingVisibilityAttributeInteractionInfo); + Map + readThermostatUserInterfaceConfigurationAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readThermostatUserInterfaceConfigurationAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThermostatUserInterfaceConfigurationCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.ThermostatUserInterfaceConfigurationCluster + .AttributeListAttributeCallback) + callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readThermostatUserInterfaceConfigurationAttributeListCommandParams); + readThermostatUserInterfaceConfigurationInteractionInfo.put( + "readAttributeListAttribute", + readThermostatUserInterfaceConfigurationAttributeListAttributeInteractionInfo); Map readThermostatUserInterfaceConfigurationClusterRevisionCommandParams = new LinkedHashMap(); @@ -6333,6 +7097,21 @@ public Map> getReadAttributeMap() { readThreadNetworkDiagnosticsInteractionInfo.put( "readActiveNetworkFaultsListAttribute", readThreadNetworkDiagnosticsActiveNetworkFaultsListAttributeInteractionInfo); + Map readThreadNetworkDiagnosticsAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readThreadNetworkDiagnosticsAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.ThreadNetworkDiagnosticsCluster.AttributeListAttributeCallback) + callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readThreadNetworkDiagnosticsAttributeListCommandParams); + readThreadNetworkDiagnosticsInteractionInfo.put( + "readAttributeListAttribute", + readThreadNetworkDiagnosticsAttributeListAttributeInteractionInfo); Map readThreadNetworkDiagnosticsFeatureMapCommandParams = new LinkedHashMap(); InteractionInfo readThreadNetworkDiagnosticsFeatureMapAttributeInteractionInfo = @@ -6374,6 +7153,19 @@ public Map> getReadAttributeMap() { readWakeOnLanInteractionInfo.put( "readWakeOnLanMacAddressAttribute", readWakeOnLanWakeOnLanMacAddressAttributeInteractionInfo); + Map readWakeOnLanAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readWakeOnLanAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WakeOnLanCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.WakeOnLanCluster.AttributeListAttributeCallback) callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readWakeOnLanAttributeListCommandParams); + readWakeOnLanInteractionInfo.put( + "readAttributeListAttribute", readWakeOnLanAttributeListAttributeInteractionInfo); Map readWakeOnLanClusterRevisionCommandParams = new LinkedHashMap(); InteractionInfo readWakeOnLanClusterRevisionAttributeInteractionInfo = @@ -6558,6 +7350,21 @@ public Map> getReadAttributeMap() { readWiFiNetworkDiagnosticsInteractionInfo.put( "readOverrunCountAttribute", readWiFiNetworkDiagnosticsOverrunCountAttributeInteractionInfo); + Map readWiFiNetworkDiagnosticsAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readWiFiNetworkDiagnosticsAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WiFiNetworkDiagnosticsCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.WiFiNetworkDiagnosticsCluster.AttributeListAttributeCallback) + callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readWiFiNetworkDiagnosticsAttributeListCommandParams); + readWiFiNetworkDiagnosticsInteractionInfo.put( + "readAttributeListAttribute", + readWiFiNetworkDiagnosticsAttributeListAttributeInteractionInfo); Map readWiFiNetworkDiagnosticsFeatureMapCommandParams = new LinkedHashMap(); InteractionInfo readWiFiNetworkDiagnosticsFeatureMapAttributeInteractionInfo = @@ -6830,6 +7637,19 @@ public Map> getReadAttributeMap() { readWindowCoveringSafetyStatusCommandParams); readWindowCoveringInteractionInfo.put( "readSafetyStatusAttribute", readWindowCoveringSafetyStatusAttributeInteractionInfo); + Map readWindowCoveringAttributeListCommandParams = + new LinkedHashMap(); + InteractionInfo readWindowCoveringAttributeListAttributeInteractionInfo = + new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.WindowCoveringCluster) cluster) + .readAttributeListAttribute( + (ChipClusters.WindowCoveringCluster.AttributeListAttributeCallback) callback); + }, + () -> new ClusterInfoMapping.DelegatedAttributeListAttributeCallback(), + readWindowCoveringAttributeListCommandParams); + readWindowCoveringInteractionInfo.put( + "readAttributeListAttribute", readWindowCoveringAttributeListAttributeInteractionInfo); Map readWindowCoveringFeatureMapCommandParams = new LinkedHashMap(); InteractionInfo readWindowCoveringFeatureMapAttributeInteractionInfo = diff --git a/src/controller/python/chip/clusters/CHIPClusters.py b/src/controller/python/chip/clusters/CHIPClusters.py index 873f7df846fb44..fbae44209bb3b4 100644 --- a/src/controller/python/chip/clusters/CHIPClusters.py +++ b/src/controller/python/chip/clusters/CHIPClusters.py @@ -49,6 +49,11 @@ class ChipClusters: "reportable": True, "writable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -77,6 +82,11 @@ class ChipClusters: }, }, "attributes": { + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -116,6 +126,11 @@ class ChipClusters: }, }, "attributes": { + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -179,6 +194,11 @@ class ChipClusters: "type": "int", "reportable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -220,6 +240,11 @@ class ChipClusters: "type": "int", "reportable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -261,6 +286,11 @@ class ChipClusters: "type": "int", "reportable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -312,6 +342,11 @@ class ChipClusters: "type": "int", "reportable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -448,6 +483,11 @@ class ChipClusters: "attributeId": 0x00000012, "type": "str", }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -482,6 +522,11 @@ class ChipClusters: "type": "int", "reportable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -516,6 +561,11 @@ class ChipClusters: }, }, "attributes": { + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -536,6 +586,11 @@ class ChipClusters: "type": "bool", "reportable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -669,6 +724,11 @@ class ChipClusters: "type": "str", "reportable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -683,6 +743,11 @@ class ChipClusters: "commands": { }, "attributes": { + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -1227,6 +1292,11 @@ class ChipClusters: "reportable": True, "writable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -1269,6 +1339,11 @@ class ChipClusters: "type": "int", "reportable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -1307,6 +1382,11 @@ class ChipClusters: "type": "int", "reportable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -1330,6 +1410,11 @@ class ChipClusters: }, }, "attributes": { + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, }, } _DOOR_LOCK_CLUSTER_INFO = { @@ -1539,6 +1624,11 @@ class ChipClusters: "type": "bool", "reportable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -1619,6 +1709,11 @@ class ChipClusters: "type": "int", "reportable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -1693,6 +1788,11 @@ class ChipClusters: "type": "int", "reportable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFC: { "attributeName": "FeatureMap", "attributeId": 0x0000FFFC, @@ -1718,6 +1818,11 @@ class ChipClusters: "type": "", "reportable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -1756,6 +1861,11 @@ class ChipClusters: "type": "int", "reportable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -1818,6 +1928,11 @@ class ChipClusters: "attributeId": 0x00000003, "type": "int", }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -1880,6 +1995,11 @@ class ChipClusters: "type": "int", "reportable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -1906,6 +2026,11 @@ class ChipClusters: "type": "", "reportable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -1969,6 +2094,11 @@ class ChipClusters: "type": "int", "reportable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -2017,6 +2147,11 @@ class ChipClusters: "type": "int", "reportable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -2061,6 +2196,11 @@ class ChipClusters: "type": "int", "reportable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -2082,6 +2222,11 @@ class ChipClusters: }, }, "attributes": { + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -2257,6 +2402,11 @@ class ChipClusters: "reportable": True, "writable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -2277,6 +2427,11 @@ class ChipClusters: }, }, "attributes": { + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -2330,6 +2485,11 @@ class ChipClusters: "type": "int", "reportable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -2461,6 +2621,11 @@ class ChipClusters: "type": "int", "reportable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -2513,6 +2678,11 @@ class ChipClusters: "type": "str", "reportable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -2601,6 +2771,11 @@ class ChipClusters: }, }, "attributes": { + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFC: { "attributeName": "FeatureMap", "attributeId": 0x0000FFFC, @@ -2651,6 +2826,11 @@ class ChipClusters: }, }, "attributes": { + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -2688,6 +2868,11 @@ class ChipClusters: "type": "bool", "reportable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -2720,6 +2905,11 @@ class ChipClusters: "type": "int", "reportable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -2808,6 +2998,11 @@ class ChipClusters: "reportable": True, "writable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFC: { "attributeName": "FeatureMap", "attributeId": 0x0000FFFC, @@ -2841,6 +3036,11 @@ class ChipClusters: "reportable": True, "writable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -2953,6 +3153,11 @@ class ChipClusters: "type": "int", "reportable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -3021,6 +3226,11 @@ class ChipClusters: "type": "int", "reportable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFC: { "attributeName": "FeatureMap", "attributeId": 0x0000FFFC, @@ -3046,6 +3256,11 @@ class ChipClusters: "attributeId": 0x00000000, "type": "int", }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -3077,6 +3292,11 @@ class ChipClusters: "type": "int", "reportable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -3239,6 +3459,11 @@ class ChipClusters: "type": "int", "reportable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFC: { "attributeName": "FeatureMap", "attributeId": 0x0000FFFC, @@ -3283,6 +3508,11 @@ class ChipClusters: "type": "int", "reportable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -3387,6 +3617,11 @@ class ChipClusters: "type": "int", "reportable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -3431,6 +3666,11 @@ class ChipClusters: "type": "int", "reportable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFC: { "attributeName": "FeatureMap", "attributeId": 0x0000FFFC, @@ -3468,6 +3708,11 @@ class ChipClusters: "type": "int", "reportable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFC: { "attributeName": "FeatureMap", "attributeId": 0x0000FFFC, @@ -3528,6 +3773,11 @@ class ChipClusters: "type": "bytes", "reportable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -3556,6 +3806,11 @@ class ChipClusters: "type": "", "reportable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -3594,6 +3849,11 @@ class ChipClusters: "type": "int", "reportable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -4301,6 +4561,11 @@ class ChipClusters: "reportable": True, "writable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -4464,6 +4729,11 @@ class ChipClusters: "type": "int", "reportable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFC: { "attributeName": "FeatureMap", "attributeId": 0x0000FFFC, @@ -4505,6 +4775,11 @@ class ChipClusters: "reportable": True, "writable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -4903,6 +5178,11 @@ class ChipClusters: "type": "int", "reportable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFC: { "attributeName": "FeatureMap", "attributeId": 0x0000FFFC, @@ -4928,6 +5208,11 @@ class ChipClusters: "type": "str", "reportable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFD: { "attributeName": "ClusterRevision", "attributeId": 0x0000FFFD, @@ -5026,6 +5311,11 @@ class ChipClusters: "type": "int", "reportable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFC: { "attributeName": "FeatureMap", "attributeId": 0x0000FFFC, @@ -5202,6 +5492,11 @@ class ChipClusters: "type": "int", "reportable": True, }, + 0x0000FFFB: { + "attributeName": "AttributeList", + "attributeId": 0x0000FFFB, + "type": "int", + }, 0x0000FFFC: { "attributeName": "FeatureMap", "attributeId": 0x0000FFFC, diff --git a/src/darwin/Framework/CHIP/zap-generated/CHIPCallbackBridge.mm b/src/darwin/Framework/CHIP/zap-generated/CHIPCallbackBridge.mm index cfba7393cce741..b31f305bad7aa2 100644 --- a/src/darwin/Framework/CHIP/zap-generated/CHIPCallbackBridge.mm +++ b/src/darwin/Framework/CHIP/zap-generated/CHIPCallbackBridge.mm @@ -376,8 +376,8 @@ DispatchSuccess(context, objCValue); }; -void CHIPApplicationLauncherApplicationLauncherListListAttributeCallbackBridge::OnSuccessFn( - void * context, const chip::app::DataModel::DecodableList & value) +void CHIPAccessControlAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) { NSArray * _Nonnull objCValue; auto * array_0 = [NSMutableArray new]; @@ -385,7 +385,7 @@ while (iter_0.Next()) { auto & entry_0 = iter_0.GetValue(); NSNumber * newElement_0; - newElement_0 = [NSNumber numberWithUnsignedShort:entry_0]; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; [array_0 addObject:newElement_0]; } if (iter_0.GetStatus() != CHIP_NO_ERROR) { @@ -396,21 +396,16 @@ DispatchSuccess(context, objCValue); }; -void CHIPAudioOutputAudioOutputListListAttributeCallbackBridge::OnSuccessFn(void * context, - const chip::app::DataModel::DecodableList & value) +void CHIPAccountLoginAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) { NSArray * _Nonnull objCValue; auto * array_0 = [NSMutableArray new]; auto iter_0 = value.begin(); while (iter_0.Next()) { auto & entry_0 = iter_0.GetValue(); - CHIPAudioOutputClusterAudioOutputInfo * newElement_0; - newElement_0 = [CHIPAudioOutputClusterAudioOutputInfo new]; - newElement_0.index = [NSNumber numberWithUnsignedChar:entry_0.index]; - newElement_0.outputType = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0.outputType)]; - newElement_0.name = [[NSString alloc] initWithBytes:entry_0.name.data() - length:entry_0.name.size() - encoding:NSUTF8StringEncoding]; + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; [array_0 addObject:newElement_0]; } if (iter_0.GetStatus() != CHIP_NO_ERROR) { @@ -421,24 +416,16 @@ DispatchSuccess(context, objCValue); }; -void CHIPBridgedActionsActionListListAttributeCallbackBridge::OnSuccessFn(void * context, - const chip::app::DataModel::DecodableList & value) +void CHIPAdministratorCommissioningAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) { NSArray * _Nonnull objCValue; auto * array_0 = [NSMutableArray new]; auto iter_0 = value.begin(); while (iter_0.Next()) { auto & entry_0 = iter_0.GetValue(); - CHIPBridgedActionsClusterActionStruct * newElement_0; - newElement_0 = [CHIPBridgedActionsClusterActionStruct new]; - newElement_0.actionID = [NSNumber numberWithUnsignedShort:entry_0.actionID]; - newElement_0.name = [[NSString alloc] initWithBytes:entry_0.name.data() - length:entry_0.name.size() - encoding:NSUTF8StringEncoding]; - newElement_0.type = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0.type)]; - newElement_0.endpointListID = [NSNumber numberWithUnsignedShort:entry_0.endpointListID]; - newElement_0.supportedCommands = [NSNumber numberWithUnsignedShort:entry_0.supportedCommands]; - newElement_0.status = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0.status)]; + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; [array_0 addObject:newElement_0]; } if (iter_0.GetStatus() != CHIP_NO_ERROR) { @@ -449,33 +436,16 @@ DispatchSuccess(context, objCValue); }; -void CHIPBridgedActionsEndpointListListAttributeCallbackBridge::OnSuccessFn(void * context, - const chip::app::DataModel::DecodableList & - value) +void CHIPApplicationBasicAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) { NSArray * _Nonnull objCValue; auto * array_0 = [NSMutableArray new]; auto iter_0 = value.begin(); while (iter_0.Next()) { auto & entry_0 = iter_0.GetValue(); - CHIPBridgedActionsClusterEndpointListStruct * newElement_0; - newElement_0 = [CHIPBridgedActionsClusterEndpointListStruct new]; - newElement_0.endpointListID = [NSNumber numberWithUnsignedShort:entry_0.endpointListID]; - newElement_0.name = [[NSString alloc] initWithBytes:entry_0.name.data() - length:entry_0.name.size() - encoding:NSUTF8StringEncoding]; - newElement_0.type = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0.type)]; - auto * array_NaN = [NSMutableArray new]; - auto iter_NaN = entry_0.endpoints.begin(); - while (iter_NaN.Next()) { - auto & entry_NaN = iter_NaN.GetValue(); - NSNumber * newElement_NaN; - newElement_NaN = [NSNumber numberWithUnsignedShort:entry_NaN]; - [array_NaN addObject:newElement_NaN]; - } - if (iter_NaN.GetStatus() != CHIP_NO_ERROR) { - } - newElement_0.endpoints = array_NaN; + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; [array_0 addObject:newElement_0]; } if (iter_0.GetStatus() != CHIP_NO_ERROR) { @@ -486,16 +456,16 @@ DispatchSuccess(context, objCValue); }; -void CHIPContentLauncherAcceptsHeaderListListAttributeCallbackBridge::OnSuccessFn( - void * context, const chip::app::DataModel::DecodableList & value) +void CHIPApplicationLauncherApplicationLauncherListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) { NSArray * _Nonnull objCValue; auto * array_0 = [NSMutableArray new]; auto iter_0 = value.begin(); while (iter_0.Next()) { auto & entry_0 = iter_0.GetValue(); - NSData * newElement_0; - newElement_0 = [NSData dataWithBytes:entry_0.data() length:entry_0.size()]; + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedShort:entry_0]; [array_0 addObject:newElement_0]; } if (iter_0.GetStatus() != CHIP_NO_ERROR) { @@ -506,8 +476,8 @@ DispatchSuccess(context, objCValue); }; -void CHIPContentLauncherSupportedStreamingTypesListAttributeCallbackBridge::OnSuccessFn(void * context, - const chip::app::DataModel::DecodableList & value) +void CHIPApplicationLauncherAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) { NSArray * _Nonnull objCValue; auto * array_0 = [NSMutableArray new]; @@ -515,7 +485,7 @@ while (iter_0.Next()) { auto & entry_0 = iter_0.GetValue(); NSNumber * newElement_0; - newElement_0 = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0)]; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; [array_0 addObject:newElement_0]; } if (iter_0.GetStatus() != CHIP_NO_ERROR) { @@ -526,18 +496,21 @@ DispatchSuccess(context, objCValue); }; -void CHIPDescriptorDeviceListListAttributeCallbackBridge::OnSuccessFn(void * context, - const chip::app::DataModel::DecodableList & value) +void CHIPAudioOutputAudioOutputListListAttributeCallbackBridge::OnSuccessFn(void * context, + const chip::app::DataModel::DecodableList & value) { NSArray * _Nonnull objCValue; auto * array_0 = [NSMutableArray new]; auto iter_0 = value.begin(); while (iter_0.Next()) { auto & entry_0 = iter_0.GetValue(); - CHIPDescriptorClusterDeviceType * newElement_0; - newElement_0 = [CHIPDescriptorClusterDeviceType new]; - newElement_0.type = [NSNumber numberWithUnsignedInt:entry_0.type]; - newElement_0.revision = [NSNumber numberWithUnsignedShort:entry_0.revision]; + CHIPAudioOutputClusterAudioOutputInfo * newElement_0; + newElement_0 = [CHIPAudioOutputClusterAudioOutputInfo new]; + newElement_0.index = [NSNumber numberWithUnsignedChar:entry_0.index]; + newElement_0.outputType = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0.outputType)]; + newElement_0.name = [[NSString alloc] initWithBytes:entry_0.name.data() + length:entry_0.name.size() + encoding:NSUTF8StringEncoding]; [array_0 addObject:newElement_0]; } if (iter_0.GetStatus() != CHIP_NO_ERROR) { @@ -548,8 +521,8 @@ DispatchSuccess(context, objCValue); }; -void CHIPDescriptorServerListListAttributeCallbackBridge::OnSuccessFn( - void * context, const chip::app::DataModel::DecodableList & value) +void CHIPAudioOutputAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) { NSArray * _Nonnull objCValue; auto * array_0 = [NSMutableArray new]; @@ -568,8 +541,8 @@ DispatchSuccess(context, objCValue); }; -void CHIPDescriptorClientListListAttributeCallbackBridge::OnSuccessFn( - void * context, const chip::app::DataModel::DecodableList & value) +void CHIPBarrierControlAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) { NSArray * _Nonnull objCValue; auto * array_0 = [NSMutableArray new]; @@ -588,8 +561,8 @@ DispatchSuccess(context, objCValue); }; -void CHIPDescriptorPartsListListAttributeCallbackBridge::OnSuccessFn( - void * context, const chip::app::DataModel::DecodableList & value) +void CHIPBasicAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) { NSArray * _Nonnull objCValue; auto * array_0 = [NSMutableArray new]; @@ -597,7 +570,7 @@ while (iter_0.Next()) { auto & entry_0 = iter_0.GetValue(); NSNumber * newElement_0; - newElement_0 = [NSNumber numberWithUnsignedShort:entry_0]; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; [array_0 addObject:newElement_0]; } if (iter_0.GetStatus() != CHIP_NO_ERROR) { @@ -608,28 +581,16 @@ DispatchSuccess(context, objCValue); }; -void CHIPFixedLabelLabelListListAttributeCallbackBridge::OnSuccessFn(void * context, - const chip::app::DataModel::DecodableList & value) +void CHIPBinaryInputBasicAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) { NSArray * _Nonnull objCValue; auto * array_0 = [NSMutableArray new]; auto iter_0 = value.begin(); while (iter_0.Next()) { auto & entry_0 = iter_0.GetValue(); - CHIPFixedLabelClusterLabelStruct * newElement_0; - newElement_0 = [CHIPFixedLabelClusterLabelStruct new]; - newElement_0.label = [[NSString alloc] initWithBytes:entry_0.label.data() - length:entry_0.label.size() - encoding:NSUTF8StringEncoding]; - newElement_0.label = [[NSString alloc] initWithBytes:entry_0.label.data() - length:entry_0.label.size() - encoding:NSUTF8StringEncoding]; - newElement_0.value = [[NSString alloc] initWithBytes:entry_0.value.data() - length:entry_0.value.size() - encoding:NSUTF8StringEncoding]; - newElement_0.value = [[NSString alloc] initWithBytes:entry_0.value.data() - length:entry_0.value.size() - encoding:NSUTF8StringEncoding]; + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; [array_0 addObject:newElement_0]; } if (iter_0.GetStatus() != CHIP_NO_ERROR) { @@ -640,18 +601,16 @@ DispatchSuccess(context, objCValue); }; -void CHIPGeneralCommissioningBasicCommissioningInfoListListAttributeCallbackBridge::OnSuccessFn(void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::GeneralCommissioning::Structs::BasicCommissioningInfoType::DecodableType> & value) +void CHIPBindingAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) { NSArray * _Nonnull objCValue; auto * array_0 = [NSMutableArray new]; auto iter_0 = value.begin(); while (iter_0.Next()) { auto & entry_0 = iter_0.GetValue(); - CHIPGeneralCommissioningClusterBasicCommissioningInfoType * newElement_0; - newElement_0 = [CHIPGeneralCommissioningClusterBasicCommissioningInfoType new]; - newElement_0.failSafeExpiryLengthMs = [NSNumber numberWithUnsignedInt:entry_0.failSafeExpiryLengthMs]; + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; [array_0 addObject:newElement_0]; } if (iter_0.GetStatus() != CHIP_NO_ERROR) { @@ -662,25 +621,44 @@ DispatchSuccess(context, objCValue); }; -void CHIPGeneralDiagnosticsNetworkInterfacesListAttributeCallbackBridge::OnSuccessFn(void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::GeneralDiagnostics::Structs::NetworkInterfaceType::DecodableType> & value) +void CHIPBooleanStateAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) { NSArray * _Nonnull objCValue; auto * array_0 = [NSMutableArray new]; auto iter_0 = value.begin(); while (iter_0.Next()) { auto & entry_0 = iter_0.GetValue(); - CHIPGeneralDiagnosticsClusterNetworkInterfaceType * newElement_0; - newElement_0 = [CHIPGeneralDiagnosticsClusterNetworkInterfaceType new]; + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPBridgedActionsActionListListAttributeCallbackBridge::OnSuccessFn(void * context, + const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + CHIPBridgedActionsClusterActionStruct * newElement_0; + newElement_0 = [CHIPBridgedActionsClusterActionStruct new]; + newElement_0.actionID = [NSNumber numberWithUnsignedShort:entry_0.actionID]; newElement_0.name = [[NSString alloc] initWithBytes:entry_0.name.data() length:entry_0.name.size() encoding:NSUTF8StringEncoding]; - newElement_0.fabricConnected = [NSNumber numberWithBool:entry_0.fabricConnected]; - newElement_0.offPremiseServicesReachableIPv4 = [NSNumber numberWithBool:entry_0.offPremiseServicesReachableIPv4]; - newElement_0.offPremiseServicesReachableIPv6 = [NSNumber numberWithBool:entry_0.offPremiseServicesReachableIPv6]; - newElement_0.hardwareAddress = [NSData dataWithBytes:entry_0.hardwareAddress.data() length:entry_0.hardwareAddress.size()]; newElement_0.type = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0.type)]; + newElement_0.endpointListID = [NSNumber numberWithUnsignedShort:entry_0.endpointListID]; + newElement_0.supportedCommands = [NSNumber numberWithUnsignedShort:entry_0.supportedCommands]; + newElement_0.status = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0.status)]; [array_0 addObject:newElement_0]; } if (iter_0.GetStatus() != CHIP_NO_ERROR) { @@ -691,8 +669,45 @@ DispatchSuccess(context, objCValue); }; -void CHIPGeneralDiagnosticsActiveHardwareFaultsListAttributeCallbackBridge::OnSuccessFn( - void * context, const chip::app::DataModel::DecodableList & value) +void CHIPBridgedActionsEndpointListListAttributeCallbackBridge::OnSuccessFn(void * context, + const chip::app::DataModel::DecodableList & + value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + CHIPBridgedActionsClusterEndpointListStruct * newElement_0; + newElement_0 = [CHIPBridgedActionsClusterEndpointListStruct new]; + newElement_0.endpointListID = [NSNumber numberWithUnsignedShort:entry_0.endpointListID]; + newElement_0.name = [[NSString alloc] initWithBytes:entry_0.name.data() + length:entry_0.name.size() + encoding:NSUTF8StringEncoding]; + newElement_0.type = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0.type)]; + auto * array_NaN = [NSMutableArray new]; + auto iter_NaN = entry_0.endpoints.begin(); + while (iter_NaN.Next()) { + auto & entry_NaN = iter_NaN.GetValue(); + NSNumber * newElement_NaN; + newElement_NaN = [NSNumber numberWithUnsignedShort:entry_NaN]; + [array_NaN addObject:newElement_NaN]; + } + if (iter_NaN.GetStatus() != CHIP_NO_ERROR) { + } + newElement_0.endpoints = array_NaN; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPBridgedActionsAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) { NSArray * _Nonnull objCValue; auto * array_0 = [NSMutableArray new]; @@ -700,7 +715,7 @@ while (iter_0.Next()) { auto & entry_0 = iter_0.GetValue(); NSNumber * newElement_0; - newElement_0 = [NSNumber numberWithUnsignedChar:entry_0]; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; [array_0 addObject:newElement_0]; } if (iter_0.GetStatus() != CHIP_NO_ERROR) { @@ -711,8 +726,8 @@ DispatchSuccess(context, objCValue); }; -void CHIPGeneralDiagnosticsActiveRadioFaultsListAttributeCallbackBridge::OnSuccessFn( - void * context, const chip::app::DataModel::DecodableList & value) +void CHIPBridgedDeviceBasicAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) { NSArray * _Nonnull objCValue; auto * array_0 = [NSMutableArray new]; @@ -720,7 +735,7 @@ while (iter_0.Next()) { auto & entry_0 = iter_0.GetValue(); NSNumber * newElement_0; - newElement_0 = [NSNumber numberWithUnsignedChar:entry_0]; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; [array_0 addObject:newElement_0]; } if (iter_0.GetStatus() != CHIP_NO_ERROR) { @@ -731,8 +746,8 @@ DispatchSuccess(context, objCValue); }; -void CHIPGeneralDiagnosticsActiveNetworkFaultsListAttributeCallbackBridge::OnSuccessFn( - void * context, const chip::app::DataModel::DecodableList & value) +void CHIPColorControlAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) { NSArray * _Nonnull objCValue; auto * array_0 = [NSMutableArray new]; @@ -740,7 +755,7 @@ while (iter_0.Next()) { auto & entry_0 = iter_0.GetValue(); NSNumber * newElement_0; - newElement_0 = [NSNumber numberWithUnsignedChar:entry_0]; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; [array_0 addObject:newElement_0]; } if (iter_0.GetStatus() != CHIP_NO_ERROR) { @@ -751,19 +766,16 @@ DispatchSuccess(context, objCValue); }; -void CHIPGroupKeyManagementGroupsListAttributeCallbackBridge::OnSuccessFn(void * context, - const chip::app::DataModel::DecodableList & value) +void CHIPContentLauncherAcceptsHeaderListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) { NSArray * _Nonnull objCValue; auto * array_0 = [NSMutableArray new]; auto iter_0 = value.begin(); while (iter_0.Next()) { auto & entry_0 = iter_0.GetValue(); - CHIPGroupKeyManagementClusterGroupState * newElement_0; - newElement_0 = [CHIPGroupKeyManagementClusterGroupState new]; - newElement_0.vendorId = [NSNumber numberWithUnsignedShort:entry_0.vendorId]; - newElement_0.vendorGroupId = [NSNumber numberWithUnsignedShort:entry_0.vendorGroupId]; - newElement_0.groupKeySetIndex = [NSNumber numberWithUnsignedShort:entry_0.groupKeySetIndex]; + NSData * newElement_0; + newElement_0 = [NSData dataWithBytes:entry_0.data() length:entry_0.size()]; [array_0 addObject:newElement_0]; } if (iter_0.GetStatus() != CHIP_NO_ERROR) { @@ -774,21 +786,16 @@ DispatchSuccess(context, objCValue); }; -void CHIPGroupKeyManagementGroupKeysListAttributeCallbackBridge::OnSuccessFn(void * context, - const chip::app::DataModel::DecodableList & value) +void CHIPContentLauncherSupportedStreamingTypesListAttributeCallbackBridge::OnSuccessFn(void * context, + const chip::app::DataModel::DecodableList & value) { NSArray * _Nonnull objCValue; auto * array_0 = [NSMutableArray new]; auto iter_0 = value.begin(); while (iter_0.Next()) { auto & entry_0 = iter_0.GetValue(); - CHIPGroupKeyManagementClusterGroupKey * newElement_0; - newElement_0 = [CHIPGroupKeyManagementClusterGroupKey new]; - newElement_0.vendorId = [NSNumber numberWithUnsignedShort:entry_0.vendorId]; - newElement_0.groupKeyIndex = [NSNumber numberWithUnsignedShort:entry_0.groupKeyIndex]; - newElement_0.groupKeyRoot = [NSData dataWithBytes:entry_0.groupKeyRoot.data() length:entry_0.groupKeyRoot.size()]; - newElement_0.groupKeyEpochStartTime = [NSNumber numberWithUnsignedLongLong:entry_0.groupKeyEpochStartTime]; - newElement_0.groupKeySecurityPolicy = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0.groupKeySecurityPolicy)]; + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0)]; [array_0 addObject:newElement_0]; } if (iter_0.GetStatus() != CHIP_NO_ERROR) { @@ -799,24 +806,971 @@ DispatchSuccess(context, objCValue); }; -void CHIPMediaInputMediaInputListListAttributeCallbackBridge::OnSuccessFn(void * context, - const chip::app::DataModel::DecodableList & value) +void CHIPContentLauncherAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) { NSArray * _Nonnull objCValue; auto * array_0 = [NSMutableArray new]; auto iter_0 = value.begin(); while (iter_0.Next()) { auto & entry_0 = iter_0.GetValue(); - CHIPMediaInputClusterMediaInputInfo * newElement_0; - newElement_0 = [CHIPMediaInputClusterMediaInputInfo new]; - newElement_0.index = [NSNumber numberWithUnsignedChar:entry_0.index]; - newElement_0.inputType = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0.inputType)]; - newElement_0.name = [[NSString alloc] initWithBytes:entry_0.name.data() - length:entry_0.name.size() - encoding:NSUTF8StringEncoding]; - newElement_0.descriptionString = [[NSString alloc] initWithBytes:entry_0.description.data() - length:entry_0.description.size() - encoding:NSUTF8StringEncoding]; + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPDescriptorDeviceListListAttributeCallbackBridge::OnSuccessFn(void * context, + const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + CHIPDescriptorClusterDeviceType * newElement_0; + newElement_0 = [CHIPDescriptorClusterDeviceType new]; + newElement_0.type = [NSNumber numberWithUnsignedInt:entry_0.type]; + newElement_0.revision = [NSNumber numberWithUnsignedShort:entry_0.revision]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPDescriptorServerListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPDescriptorClientListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPDescriptorPartsListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedShort:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPDescriptorAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPDiagnosticLogsAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPDoorLockAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPElectricalMeasurementAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPEthernetNetworkDiagnosticsAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPFixedLabelLabelListListAttributeCallbackBridge::OnSuccessFn(void * context, + const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + CHIPFixedLabelClusterLabelStruct * newElement_0; + newElement_0 = [CHIPFixedLabelClusterLabelStruct new]; + newElement_0.label = [[NSString alloc] initWithBytes:entry_0.label.data() + length:entry_0.label.size() + encoding:NSUTF8StringEncoding]; + newElement_0.label = [[NSString alloc] initWithBytes:entry_0.label.data() + length:entry_0.label.size() + encoding:NSUTF8StringEncoding]; + newElement_0.value = [[NSString alloc] initWithBytes:entry_0.value.data() + length:entry_0.value.size() + encoding:NSUTF8StringEncoding]; + newElement_0.value = [[NSString alloc] initWithBytes:entry_0.value.data() + length:entry_0.value.size() + encoding:NSUTF8StringEncoding]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPFixedLabelAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPFlowMeasurementAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPGeneralCommissioningBasicCommissioningInfoListListAttributeCallbackBridge::OnSuccessFn(void * context, + const chip::app::DataModel::DecodableList< + chip::app::Clusters::GeneralCommissioning::Structs::BasicCommissioningInfoType::DecodableType> & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + CHIPGeneralCommissioningClusterBasicCommissioningInfoType * newElement_0; + newElement_0 = [CHIPGeneralCommissioningClusterBasicCommissioningInfoType new]; + newElement_0.failSafeExpiryLengthMs = [NSNumber numberWithUnsignedInt:entry_0.failSafeExpiryLengthMs]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPGeneralCommissioningAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPGeneralDiagnosticsNetworkInterfacesListAttributeCallbackBridge::OnSuccessFn(void * context, + const chip::app::DataModel::DecodableList< + chip::app::Clusters::GeneralDiagnostics::Structs::NetworkInterfaceType::DecodableType> & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + CHIPGeneralDiagnosticsClusterNetworkInterfaceType * newElement_0; + newElement_0 = [CHIPGeneralDiagnosticsClusterNetworkInterfaceType new]; + newElement_0.name = [[NSString alloc] initWithBytes:entry_0.name.data() + length:entry_0.name.size() + encoding:NSUTF8StringEncoding]; + newElement_0.fabricConnected = [NSNumber numberWithBool:entry_0.fabricConnected]; + newElement_0.offPremiseServicesReachableIPv4 = [NSNumber numberWithBool:entry_0.offPremiseServicesReachableIPv4]; + newElement_0.offPremiseServicesReachableIPv6 = [NSNumber numberWithBool:entry_0.offPremiseServicesReachableIPv6]; + newElement_0.hardwareAddress = [NSData dataWithBytes:entry_0.hardwareAddress.data() length:entry_0.hardwareAddress.size()]; + newElement_0.type = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0.type)]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPGeneralDiagnosticsActiveHardwareFaultsListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedChar:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPGeneralDiagnosticsActiveRadioFaultsListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedChar:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPGeneralDiagnosticsActiveNetworkFaultsListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedChar:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPGeneralDiagnosticsAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPGroupKeyManagementGroupsListAttributeCallbackBridge::OnSuccessFn(void * context, + const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + CHIPGroupKeyManagementClusterGroupState * newElement_0; + newElement_0 = [CHIPGroupKeyManagementClusterGroupState new]; + newElement_0.vendorId = [NSNumber numberWithUnsignedShort:entry_0.vendorId]; + newElement_0.vendorGroupId = [NSNumber numberWithUnsignedShort:entry_0.vendorGroupId]; + newElement_0.groupKeySetIndex = [NSNumber numberWithUnsignedShort:entry_0.groupKeySetIndex]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPGroupKeyManagementGroupKeysListAttributeCallbackBridge::OnSuccessFn(void * context, + const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + CHIPGroupKeyManagementClusterGroupKey * newElement_0; + newElement_0 = [CHIPGroupKeyManagementClusterGroupKey new]; + newElement_0.vendorId = [NSNumber numberWithUnsignedShort:entry_0.vendorId]; + newElement_0.groupKeyIndex = [NSNumber numberWithUnsignedShort:entry_0.groupKeyIndex]; + newElement_0.groupKeyRoot = [NSData dataWithBytes:entry_0.groupKeyRoot.data() length:entry_0.groupKeyRoot.size()]; + newElement_0.groupKeyEpochStartTime = [NSNumber numberWithUnsignedLongLong:entry_0.groupKeyEpochStartTime]; + newElement_0.groupKeySecurityPolicy = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0.groupKeySecurityPolicy)]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPGroupKeyManagementAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPGroupsAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPIdentifyAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPIlluminanceMeasurementAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPKeypadInputAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPLevelControlAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPLowPowerAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPMediaInputMediaInputListListAttributeCallbackBridge::OnSuccessFn(void * context, + const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + CHIPMediaInputClusterMediaInputInfo * newElement_0; + newElement_0 = [CHIPMediaInputClusterMediaInputInfo new]; + newElement_0.index = [NSNumber numberWithUnsignedChar:entry_0.index]; + newElement_0.inputType = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0.inputType)]; + newElement_0.name = [[NSString alloc] initWithBytes:entry_0.name.data() + length:entry_0.name.size() + encoding:NSUTF8StringEncoding]; + newElement_0.descriptionString = [[NSString alloc] initWithBytes:entry_0.description.data() + length:entry_0.description.size() + encoding:NSUTF8StringEncoding]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPMediaInputAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPMediaPlaybackAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPModeSelectSupportedModesListAttributeCallbackBridge::OnSuccessFn(void * context, + const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + CHIPModeSelectClusterModeOptionStruct * newElement_0; + newElement_0 = [CHIPModeSelectClusterModeOptionStruct new]; + newElement_0.label = [[NSString alloc] initWithBytes:entry_0.label.data() + length:entry_0.label.size() + encoding:NSUTF8StringEncoding]; + newElement_0.mode = [NSNumber numberWithUnsignedChar:entry_0.mode]; + newElement_0.semanticTag = [NSNumber numberWithUnsignedInt:entry_0.semanticTag]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPModeSelectAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPNetworkCommissioningAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPOtaSoftwareUpdateProviderAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPOtaSoftwareUpdateRequestorAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPOccupancySensingAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPOnOffAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPOnOffSwitchConfigurationAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPOperationalCredentialsFabricsListListAttributeCallbackBridge::OnSuccessFn(void * context, + const chip::app::DataModel::DecodableList< + chip::app::Clusters::OperationalCredentials::Structs::FabricDescriptor::DecodableType> & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + CHIPOperationalCredentialsClusterFabricDescriptor * newElement_0; + newElement_0 = [CHIPOperationalCredentialsClusterFabricDescriptor new]; + newElement_0.fabricIndex = [NSNumber numberWithUnsignedChar:entry_0.fabricIndex]; + newElement_0.rootPublicKey = [NSData dataWithBytes:entry_0.rootPublicKey.data() length:entry_0.rootPublicKey.size()]; + newElement_0.vendorId = [NSNumber numberWithUnsignedShort:entry_0.vendorId]; + newElement_0.fabricId = [NSNumber numberWithUnsignedLongLong:entry_0.fabricId]; + newElement_0.nodeId = [NSNumber numberWithUnsignedLongLong:entry_0.nodeId]; + newElement_0.label = [[NSString alloc] initWithBytes:entry_0.label.data() + length:entry_0.label.size() + encoding:NSUTF8StringEncoding]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPOperationalCredentialsTrustedRootCertificatesListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSData * newElement_0; + newElement_0 = [NSData dataWithBytes:entry_0.data() length:entry_0.size()]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPOperationalCredentialsAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPPowerSourceActiveBatteryFaultsListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedChar:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPPowerSourceAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPPowerSourceConfigurationSourcesListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedChar:entry_0]; [array_0 addObject:newElement_0]; } if (iter_0.GetStatus() != CHIP_NO_ERROR) { @@ -827,21 +1781,16 @@ DispatchSuccess(context, objCValue); }; -void CHIPModeSelectSupportedModesListAttributeCallbackBridge::OnSuccessFn(void * context, - const chip::app::DataModel::DecodableList & value) +void CHIPPowerSourceConfigurationAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) { NSArray * _Nonnull objCValue; auto * array_0 = [NSMutableArray new]; auto iter_0 = value.begin(); while (iter_0.Next()) { auto & entry_0 = iter_0.GetValue(); - CHIPModeSelectClusterModeOptionStruct * newElement_0; - newElement_0 = [CHIPModeSelectClusterModeOptionStruct new]; - newElement_0.label = [[NSString alloc] initWithBytes:entry_0.label.data() - length:entry_0.label.size() - encoding:NSUTF8StringEncoding]; - newElement_0.mode = [NSNumber numberWithUnsignedChar:entry_0.mode]; - newElement_0.semanticTag = [NSNumber numberWithUnsignedInt:entry_0.semanticTag]; + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; [array_0 addObject:newElement_0]; } if (iter_0.GetStatus() != CHIP_NO_ERROR) { @@ -852,25 +1801,16 @@ DispatchSuccess(context, objCValue); }; -void CHIPOperationalCredentialsFabricsListListAttributeCallbackBridge::OnSuccessFn(void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::OperationalCredentials::Structs::FabricDescriptor::DecodableType> & value) +void CHIPPressureMeasurementAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) { NSArray * _Nonnull objCValue; auto * array_0 = [NSMutableArray new]; auto iter_0 = value.begin(); while (iter_0.Next()) { auto & entry_0 = iter_0.GetValue(); - CHIPOperationalCredentialsClusterFabricDescriptor * newElement_0; - newElement_0 = [CHIPOperationalCredentialsClusterFabricDescriptor new]; - newElement_0.fabricIndex = [NSNumber numberWithUnsignedChar:entry_0.fabricIndex]; - newElement_0.rootPublicKey = [NSData dataWithBytes:entry_0.rootPublicKey.data() length:entry_0.rootPublicKey.size()]; - newElement_0.vendorId = [NSNumber numberWithUnsignedShort:entry_0.vendorId]; - newElement_0.fabricId = [NSNumber numberWithUnsignedLongLong:entry_0.fabricId]; - newElement_0.nodeId = [NSNumber numberWithUnsignedLongLong:entry_0.nodeId]; - newElement_0.label = [[NSString alloc] initWithBytes:entry_0.label.data() - length:entry_0.label.size() - encoding:NSUTF8StringEncoding]; + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; [array_0 addObject:newElement_0]; } if (iter_0.GetStatus() != CHIP_NO_ERROR) { @@ -881,16 +1821,16 @@ DispatchSuccess(context, objCValue); }; -void CHIPOperationalCredentialsTrustedRootCertificatesListAttributeCallbackBridge::OnSuccessFn( - void * context, const chip::app::DataModel::DecodableList & value) +void CHIPPumpConfigurationAndControlAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) { NSArray * _Nonnull objCValue; auto * array_0 = [NSMutableArray new]; auto iter_0 = value.begin(); while (iter_0.Next()) { auto & entry_0 = iter_0.GetValue(); - NSData * newElement_0; - newElement_0 = [NSData dataWithBytes:entry_0.data() length:entry_0.size()]; + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; [array_0 addObject:newElement_0]; } if (iter_0.GetStatus() != CHIP_NO_ERROR) { @@ -901,8 +1841,8 @@ DispatchSuccess(context, objCValue); }; -void CHIPPowerSourceActiveBatteryFaultsListAttributeCallbackBridge::OnSuccessFn( - void * context, const chip::app::DataModel::DecodableList & value) +void CHIPRelativeHumidityMeasurementAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) { NSArray * _Nonnull objCValue; auto * array_0 = [NSMutableArray new]; @@ -910,7 +1850,7 @@ while (iter_0.Next()) { auto & entry_0 = iter_0.GetValue(); NSNumber * newElement_0; - newElement_0 = [NSNumber numberWithUnsignedChar:entry_0]; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; [array_0 addObject:newElement_0]; } if (iter_0.GetStatus() != CHIP_NO_ERROR) { @@ -921,8 +1861,8 @@ DispatchSuccess(context, objCValue); }; -void CHIPPowerSourceConfigurationSourcesListAttributeCallbackBridge::OnSuccessFn( - void * context, const chip::app::DataModel::DecodableList & value) +void CHIPScenesAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) { NSArray * _Nonnull objCValue; auto * array_0 = [NSMutableArray new]; @@ -930,7 +1870,7 @@ while (iter_0.Next()) { auto & entry_0 = iter_0.GetValue(); NSNumber * newElement_0; - newElement_0 = [NSNumber numberWithUnsignedChar:entry_0]; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; [array_0 addObject:newElement_0]; } if (iter_0.GetStatus() != CHIP_NO_ERROR) { @@ -969,6 +1909,46 @@ DispatchSuccess(context, objCValue); }; +void CHIPSoftwareDiagnosticsAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPSwitchAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + void CHIPTvChannelTvChannelListListAttributeCallbackBridge::OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value) { @@ -1000,6 +1980,26 @@ DispatchSuccess(context, objCValue); }; +void CHIPTvChannelAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + void CHIPTargetNavigatorTargetNavigatorListListAttributeCallbackBridge::OnSuccessFn(void * context, const chip::app::DataModel::DecodableList< chip::app::Clusters::TargetNavigator::Structs::NavigateTargetTargetInfo::DecodableType> & value) @@ -1025,6 +2025,46 @@ DispatchSuccess(context, objCValue); }; +void CHIPTargetNavigatorAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPTemperatureMeasurementAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + void CHIPTestClusterListInt8uListAttributeCallbackBridge::OnSuccessFn( void * context, const chip::app::DataModel::DecodableList & value) { @@ -1281,6 +2321,66 @@ DispatchSuccess(context, objCValue); }; +void CHIPTestClusterAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPThermostatAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPThermostatUserInterfaceConfigurationAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + void CHIPThreadNetworkDiagnosticsNeighborTableListListAttributeCallbackBridge::OnSuccessFn(void * context, const chip::app::DataModel::DecodableList< chip::app::Clusters::ThreadNetworkDiagnostics::Structs::NeighborTable::DecodableType> & value) @@ -1423,6 +2523,86 @@ DispatchSuccess(context, objCValue); }; +void CHIPThreadNetworkDiagnosticsAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPWakeOnLanAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPWiFiNetworkDiagnosticsAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + +void CHIPWindowCoveringAttributeListListAttributeCallbackBridge::OnSuccessFn( + void * context, const chip::app::DataModel::DecodableList & value) +{ + NSArray * _Nonnull objCValue; + auto * array_0 = [NSMutableArray new]; + auto iter_0 = value.begin(); + while (iter_0.Next()) { + auto & entry_0 = iter_0.GetValue(); + NSNumber * newElement_0; + newElement_0 = [NSNumber numberWithUnsignedInt:entry_0]; + [array_0 addObject:newElement_0]; + } + if (iter_0.GetStatus() != CHIP_NO_ERROR) { + OnFailureFn(context, EMBER_ZCL_STATUS_INVALID_VALUE); + return; + } + objCValue = array_0; + DispatchSuccess(context, objCValue); +}; + void CHIPAccountLoginClusterGetSetupPINResponseCallbackBridge::OnSuccessFn( void * context, const chip::app::Clusters::AccountLogin::Commands::GetSetupPINResponse::DecodableType & data) { diff --git a/src/darwin/Framework/CHIP/zap-generated/CHIPCallbackBridge_internal.h b/src/darwin/Framework/CHIP/zap-generated/CHIPCallbackBridge_internal.h index 9496bca5e721b2..222ac7295de380 100644 --- a/src/darwin/Framework/CHIP/zap-generated/CHIPCallbackBridge_internal.h +++ b/src/darwin/Framework/CHIP/zap-generated/CHIPCallbackBridge_internal.h @@ -480,6 +480,51 @@ class CHIPAccessControlExtensionListAttributeCallbackBridge : public CHIPCallbac value); }; +class CHIPAccessControlAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPAccessControlAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, + CHIPActionBlock action, bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + +class CHIPAccountLoginAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPAccountLoginAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, + CHIPActionBlock action, bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + +class CHIPAdministratorCommissioningAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPAdministratorCommissioningAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, + CHIPActionBlock action, bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, + keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + +class CHIPApplicationBasicAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPApplicationBasicAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, + CHIPActionBlock action, bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + class CHIPApplicationLauncherApplicationLauncherListListAttributeCallbackBridge : public CHIPCallbackBridge { @@ -492,6 +537,17 @@ class CHIPApplicationLauncherApplicationLauncherListListAttributeCallbackBridge static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); }; +class CHIPApplicationLauncherAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPApplicationLauncherAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, + CHIPActionBlock action, bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + class CHIPAudioOutputAudioOutputListListAttributeCallbackBridge : public CHIPCallbackBridge { @@ -506,6 +562,70 @@ class CHIPAudioOutputAudioOutputListListAttributeCallbackBridge value); }; +class CHIPAudioOutputAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPAudioOutputAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action, + bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + +class CHIPBarrierControlAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPBarrierControlAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, + CHIPActionBlock action, bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + +class CHIPBasicAttributeListListAttributeCallbackBridge : public CHIPCallbackBridge +{ +public: + CHIPBasicAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action, + bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + +class CHIPBinaryInputBasicAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPBinaryInputBasicAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, + CHIPActionBlock action, bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + +class CHIPBindingAttributeListListAttributeCallbackBridge : public CHIPCallbackBridge +{ +public: + CHIPBindingAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action, + bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + +class CHIPBooleanStateAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPBooleanStateAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, + CHIPActionBlock action, bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + class CHIPBridgedActionsActionListListAttributeCallbackBridge : public CHIPCallbackBridge { @@ -534,6 +654,39 @@ class CHIPBridgedActionsEndpointListListAttributeCallbackBridge value); }; +class CHIPBridgedActionsAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPBridgedActionsAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, + CHIPActionBlock action, bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + +class CHIPBridgedDeviceBasicAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPBridgedDeviceBasicAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, + CHIPActionBlock action, bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + +class CHIPColorControlAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPColorControlAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, + CHIPActionBlock action, bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + class CHIPContentLauncherAcceptsHeaderListListAttributeCallbackBridge : public CHIPCallbackBridge { @@ -559,6 +712,17 @@ class CHIPContentLauncherSupportedStreamingTypesListAttributeCallbackBridge const chip::app::DataModel::DecodableList & value); }; +class CHIPContentLauncherAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPContentLauncherAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, + CHIPActionBlock action, bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + class CHIPDescriptorDeviceListListAttributeCallbackBridge : public CHIPCallbackBridge { public: @@ -601,6 +765,62 @@ class CHIPDescriptorPartsListListAttributeCallbackBridge : public CHIPCallbackBr static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); }; +class CHIPDescriptorAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPDescriptorAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action, + bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + +class CHIPDiagnosticLogsAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPDiagnosticLogsAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, + CHIPActionBlock action, bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + +class CHIPDoorLockAttributeListListAttributeCallbackBridge : public CHIPCallbackBridge +{ +public: + CHIPDoorLockAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action, + bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + +class CHIPElectricalMeasurementAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPElectricalMeasurementAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, + CHIPActionBlock action, bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, + keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + +class CHIPEthernetNetworkDiagnosticsAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPEthernetNetworkDiagnosticsAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, + CHIPActionBlock action, bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, + keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + class CHIPFixedLabelLabelListListAttributeCallbackBridge : public CHIPCallbackBridge { public: @@ -613,6 +833,28 @@ class CHIPFixedLabelLabelListListAttributeCallbackBridge : public CHIPCallbackBr const chip::app::DataModel::DecodableList & value); }; +class CHIPFixedLabelAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPFixedLabelAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action, + bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + +class CHIPFlowMeasurementAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPFlowMeasurementAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, + CHIPActionBlock action, bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + class CHIPGeneralCommissioningBasicCommissioningInfoListListAttributeCallbackBridge : public CHIPCallbackBridge { @@ -628,6 +870,18 @@ class CHIPGeneralCommissioningBasicCommissioningInfoListListAttributeCallbackBri chip::app::Clusters::GeneralCommissioning::Structs::BasicCommissioningInfoType::DecodableType> & value); }; +class CHIPGeneralCommissioningAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPGeneralCommissioningAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, + CHIPActionBlock action, bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, + keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + class CHIPGeneralDiagnosticsNetworkInterfacesListAttributeCallbackBridge : public CHIPCallbackBridge { @@ -678,6 +932,17 @@ class CHIPGeneralDiagnosticsActiveNetworkFaultsListAttributeCallbackBridge static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); }; +class CHIPGeneralDiagnosticsAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPGeneralDiagnosticsAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, + CHIPActionBlock action, bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + class CHIPGroupKeyManagementGroupsListAttributeCallbackBridge : public CHIPCallbackBridge { @@ -706,6 +971,81 @@ class CHIPGroupKeyManagementGroupKeysListAttributeCallbackBridge value); }; +class CHIPGroupKeyManagementAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPGroupKeyManagementAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, + CHIPActionBlock action, bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + +class CHIPGroupsAttributeListListAttributeCallbackBridge : public CHIPCallbackBridge +{ +public: + CHIPGroupsAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action, + bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + +class CHIPIdentifyAttributeListListAttributeCallbackBridge : public CHIPCallbackBridge +{ +public: + CHIPIdentifyAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action, + bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + +class CHIPIlluminanceMeasurementAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPIlluminanceMeasurementAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, + CHIPActionBlock action, bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, + keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + +class CHIPKeypadInputAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPKeypadInputAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action, + bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + +class CHIPLevelControlAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPLevelControlAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, + CHIPActionBlock action, bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + +class CHIPLowPowerAttributeListListAttributeCallbackBridge : public CHIPCallbackBridge +{ +public: + CHIPLowPowerAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action, + bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + class CHIPMediaInputMediaInputListListAttributeCallbackBridge : public CHIPCallbackBridge { @@ -719,6 +1059,28 @@ class CHIPMediaInputMediaInputListListAttributeCallbackBridge const chip::app::DataModel::DecodableList & value); }; +class CHIPMediaInputAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPMediaInputAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action, + bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + +class CHIPMediaPlaybackAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPMediaPlaybackAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, + CHIPActionBlock action, bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + class CHIPModeSelectSupportedModesListAttributeCallbackBridge : public CHIPCallbackBridge { @@ -733,6 +1095,86 @@ class CHIPModeSelectSupportedModesListAttributeCallbackBridge value); }; +class CHIPModeSelectAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPModeSelectAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action, + bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + +class CHIPNetworkCommissioningAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPNetworkCommissioningAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, + CHIPActionBlock action, bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, + keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + +class CHIPOtaSoftwareUpdateProviderAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPOtaSoftwareUpdateProviderAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, + CHIPActionBlock action, bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, + keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + +class CHIPOtaSoftwareUpdateRequestorAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPOtaSoftwareUpdateRequestorAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, + CHIPActionBlock action, bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, + keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + +class CHIPOccupancySensingAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPOccupancySensingAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, + CHIPActionBlock action, bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + +class CHIPOnOffAttributeListListAttributeCallbackBridge : public CHIPCallbackBridge +{ +public: + CHIPOnOffAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action, + bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + +class CHIPOnOffSwitchConfigurationAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPOnOffSwitchConfigurationAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, + CHIPActionBlock action, bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, + keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + class CHIPOperationalCredentialsFabricsListListAttributeCallbackBridge : public CHIPCallbackBridge { @@ -759,6 +1201,18 @@ class CHIPOperationalCredentialsTrustedRootCertificatesListAttributeCallbackBrid static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); }; +class CHIPOperationalCredentialsAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPOperationalCredentialsAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, + CHIPActionBlock action, bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, + keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + class CHIPPowerSourceActiveBatteryFaultsListAttributeCallbackBridge : public CHIPCallbackBridge { @@ -770,6 +1224,17 @@ class CHIPPowerSourceActiveBatteryFaultsListAttributeCallbackBridge static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); }; +class CHIPPowerSourceAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPPowerSourceAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action, + bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + class CHIPPowerSourceConfigurationSourcesListAttributeCallbackBridge : public CHIPCallbackBridge { @@ -781,6 +1246,63 @@ class CHIPPowerSourceConfigurationSourcesListAttributeCallbackBridge static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); }; +class CHIPPowerSourceConfigurationAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPPowerSourceConfigurationAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, + CHIPActionBlock action, bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, + keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + +class CHIPPressureMeasurementAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPPressureMeasurementAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, + CHIPActionBlock action, bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + +class CHIPPumpConfigurationAndControlAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPPumpConfigurationAndControlAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, + CHIPActionBlock action, bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, + keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + +class CHIPRelativeHumidityMeasurementAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPRelativeHumidityMeasurementAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, + CHIPActionBlock action, bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, + keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + +class CHIPScenesAttributeListListAttributeCallbackBridge : public CHIPCallbackBridge +{ +public: + CHIPScenesAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action, + bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + class CHIPSoftwareDiagnosticsThreadMetricsListAttributeCallbackBridge : public CHIPCallbackBridge { @@ -795,6 +1317,27 @@ class CHIPSoftwareDiagnosticsThreadMetricsListAttributeCallbackBridge value); }; +class CHIPSoftwareDiagnosticsAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPSoftwareDiagnosticsAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, + CHIPActionBlock action, bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + +class CHIPSwitchAttributeListListAttributeCallbackBridge : public CHIPCallbackBridge +{ +public: + CHIPSwitchAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action, + bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + class CHIPTvChannelTvChannelListListAttributeCallbackBridge : public CHIPCallbackBridge { public: @@ -807,6 +1350,16 @@ class CHIPTvChannelTvChannelListListAttributeCallbackBridge : public CHIPCallbac const chip::app::DataModel::DecodableList & value); }; +class CHIPTvChannelAttributeListListAttributeCallbackBridge : public CHIPCallbackBridge +{ +public: + CHIPTvChannelAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action, + bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + class CHIPTargetNavigatorTargetNavigatorListListAttributeCallbackBridge : public CHIPCallbackBridge { @@ -821,6 +1374,29 @@ class CHIPTargetNavigatorTargetNavigatorListListAttributeCallbackBridge chip::app::Clusters::TargetNavigator::Structs::NavigateTargetTargetInfo::DecodableType> & value); }; +class CHIPTargetNavigatorAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPTargetNavigatorAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, + CHIPActionBlock action, bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + +class CHIPTemperatureMeasurementAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPTemperatureMeasurementAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, + CHIPActionBlock action, bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, + keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + class CHIPTestClusterListInt8uListAttributeCallbackBridge : public CHIPCallbackBridge { public: @@ -881,6 +1457,42 @@ class CHIPTestClusterListLongOctetStringListAttributeCallbackBridge static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); }; +class CHIPTestClusterAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPTestClusterAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action, + bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + +class CHIPThermostatAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPThermostatAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action, + bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + +class CHIPThermostatUserInterfaceConfigurationAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPThermostatUserInterfaceConfigurationAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, + ResponseHandler handler, + CHIPActionBlock action, + bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, + OnSuccessFn, keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + class CHIPThreadNetworkDiagnosticsNeighborTableListListAttributeCallbackBridge : public CHIPCallbackBridge { @@ -954,6 +1566,51 @@ class CHIPThreadNetworkDiagnosticsActiveNetworkFaultsListListAttributeCallbackBr const chip::app::DataModel::DecodableList & value); }; +class CHIPThreadNetworkDiagnosticsAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPThreadNetworkDiagnosticsAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, + CHIPActionBlock action, bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, + keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + +class CHIPWakeOnLanAttributeListListAttributeCallbackBridge : public CHIPCallbackBridge +{ +public: + CHIPWakeOnLanAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, CHIPActionBlock action, + bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + +class CHIPWiFiNetworkDiagnosticsAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPWiFiNetworkDiagnosticsAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, + CHIPActionBlock action, bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, + keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + +class CHIPWindowCoveringAttributeListListAttributeCallbackBridge + : public CHIPCallbackBridge +{ +public: + CHIPWindowCoveringAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, + CHIPActionBlock action, bool keepAlive = false) : + CHIPCallbackBridge(queue, handler, action, OnSuccessFn, keepAlive){}; + + static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList & value); +}; + class CHIPAccountLoginClusterGetSetupPINResponseCallbackBridge : public CHIPCallbackBridge { diff --git a/src/darwin/Framework/CHIP/zap-generated/CHIPClustersObjc.h b/src/darwin/Framework/CHIP/zap-generated/CHIPClustersObjc.h index 1923b09ac3ad0f..3b2e612a25ffa2 100644 --- a/src/darwin/Framework/CHIP/zap-generated/CHIPClustersObjc.h +++ b/src/darwin/Framework/CHIP/zap-generated/CHIPClustersObjc.h @@ -43,6 +43,9 @@ NS_ASSUME_NONNULL_BEGIN NSArray * _Nullable value, NSError * _Nullable error))completionHandler; - (void)writeAttributeExtensionWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; @@ -59,6 +62,9 @@ NS_ASSUME_NONNULL_BEGIN NSError * _Nullable error))completionHandler; - (void)loginWithParams:(CHIPAccountLoginClusterLoginParams *)params completionHandler:(StatusCompletion)completionHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -81,6 +87,9 @@ NS_ASSUME_NONNULL_BEGIN completionHandler:(StatusCompletion)completionHandler; - (void)revokeCommissioningWithCompletionHandler:(StatusCompletion)completionHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -155,6 +164,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)reportAttributeApplicationStatusWithResponseHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))responseHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -194,6 +206,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)reportAttributeApplicationIdWithResponseHandler:(void (^)( NSNumber * _Nullable value, NSError * _Nullable error))responseHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -226,6 +241,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)reportAttributeCurrentAudioOutputWithResponseHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))responseHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -278,6 +296,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)reportAttributeBarrierPositionWithResponseHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))responseHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -444,6 +465,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)readAttributeUniqueIDWithCompletionHandler:(void (^)( NSString * _Nullable value, NSError * _Nullable error))completionHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -486,6 +510,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)reportAttributeStatusFlagsWithResponseHandler:(void (^)( NSNumber * _Nullable value, NSError * _Nullable error))responseHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -505,6 +532,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)bindWithParams:(CHIPBindingClusterBindParams *)params completionHandler:(StatusCompletion)completionHandler; - (void)unbindWithParams:(CHIPBindingClusterUnbindParams *)params completionHandler:(StatusCompletion)completionHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -529,6 +559,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)reportAttributeStateValueWithResponseHandler:(void (^)( NSNumber * _Nullable value, NSError * _Nullable error))responseHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -583,6 +616,9 @@ NS_ASSUME_NONNULL_BEGIN responseHandler:(ResponseHandler)responseHandler; - (void)reportAttributeSetupUrlWithResponseHandler:(void (^)(NSString * _Nullable value, NSError * _Nullable error))responseHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -599,6 +635,9 @@ NS_ASSUME_NONNULL_BEGIN */ @interface CHIPBridgedDeviceBasic : CHIPCluster +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -1080,6 +1119,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)reportAttributeStartUpColorTemperatureMiredsWithResponseHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))responseHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -1109,6 +1151,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)readAttributeSupportedStreamingTypesWithCompletionHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completionHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -1137,6 +1182,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)readAttributePartsListWithCompletionHandler:(void (^)( NSArray * _Nullable value, NSError * _Nullable error))completionHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -1157,6 +1205,9 @@ NS_ASSUME_NONNULL_BEGIN completionHandler:(void (^)(CHIPDiagnosticLogsClusterRetrieveLogsResponseParams * _Nullable data, NSError * _Nullable error))completionHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + @end /** @@ -1222,6 +1273,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)reportAttributeActuatorEnabledWithResponseHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))responseHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -1326,6 +1380,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)reportAttributeActivePowerMaxWithResponseHandler:(void (^)( NSNumber * _Nullable value, NSError * _Nullable error))responseHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -1415,6 +1472,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)reportAttributeTimeSinceResetWithResponseHandler:(void (^)( NSNumber * _Nullable value, NSError * _Nullable error))responseHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeFeatureMapWithCompletionHandler:(void (^)( NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; @@ -1437,6 +1497,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)readAttributeLabelListWithCompletionHandler:(void (^)( NSArray * _Nullable value, NSError * _Nullable error))completionHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -1485,6 +1548,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)reportAttributeToleranceWithResponseHandler:(void (^)( NSNumber * _Nullable value, NSError * _Nullable error))responseHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -1529,6 +1595,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)readAttributeLocationCapabilityWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -1587,6 +1656,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)readAttributeActiveNetworkFaultsWithCompletionHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completionHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -1608,6 +1680,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)readAttributeGroupKeysWithCompletionHandler:(void (^)( NSArray * _Nullable value, NSError * _Nullable error))completionHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -1648,6 +1723,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)reportAttributeNameSupportWithResponseHandler:(void (^)( NSNumber * _Nullable value, NSError * _Nullable error))responseHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -1687,6 +1765,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)reportAttributeIdentifyTypeWithResponseHandler:(void (^)( NSNumber * _Nullable value, NSError * _Nullable error))responseHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -1743,6 +1824,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)reportAttributeLightSensorTypeWithResponseHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))responseHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -1763,6 +1847,9 @@ NS_ASSUME_NONNULL_BEGIN completionHandler: (void (^)(CHIPKeypadInputClusterSendKeyResponseParams * _Nullable data, NSError * _Nullable error))completionHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -1907,6 +1994,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)reportAttributeStartUpCurrentLevelWithResponseHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))responseHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -1925,6 +2015,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)sleepWithCompletionHandler:(StatusCompletion)completionHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -1959,6 +2052,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)reportAttributeCurrentMediaInputWithResponseHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))responseHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -2063,6 +2159,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)reportAttributeSeekRangeStartWithResponseHandler:(void (^)( NSNumber * _Nullable value, NSError * _Nullable error))responseHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -2116,6 +2215,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)reportAttributeDescriptionWithResponseHandler:(void (^)( NSString * _Nullable value, NSError * _Nullable error))responseHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -2157,6 +2259,9 @@ NS_ASSUME_NONNULL_BEGIN completionHandler:(void (^)(CHIPNetworkCommissioningClusterUpdateWiFiNetworkResponseParams * _Nullable data, NSError * _Nullable error))completionHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeFeatureMapWithCompletionHandler:(void (^)( NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeFeatureMapWithMinInterval:(uint16_t)minInterval @@ -2190,6 +2295,9 @@ NS_ASSUME_NONNULL_BEGIN completionHandler:(void (^)(CHIPOtaSoftwareUpdateProviderClusterQueryImageResponseParams * _Nullable data, NSError * _Nullable error))completionHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -2226,6 +2334,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)reportAttributeUpdatePossibleWithResponseHandler:(void (^)( NSNumber * _Nullable value, NSError * _Nullable error))responseHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -2266,6 +2377,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)reportAttributeOccupancySensorTypeBitmapWithResponseHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))responseHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -2329,6 +2443,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)reportAttributeStartUpOnOffWithResponseHandler:(void (^)( NSNumber * _Nullable value, NSError * _Nullable error))responseHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeFeatureMapWithCompletionHandler:(void (^)( NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeFeatureMapWithMinInterval:(uint16_t)minInterval @@ -2370,6 +2487,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)reportAttributeSwitchActionsWithResponseHandler:(void (^)( NSNumber * _Nullable value, NSError * _Nullable error))responseHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -2443,6 +2563,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)reportAttributeCurrentFabricIndexWithResponseHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))responseHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -2522,6 +2645,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)reportAttributeBatteryChargeStateWithResponseHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))responseHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeFeatureMapWithCompletionHandler:(void (^)( NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeFeatureMapWithMinInterval:(uint16_t)minInterval @@ -2548,6 +2674,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)readAttributeSourcesWithCompletionHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completionHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; @@ -2583,6 +2712,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)reportAttributeMaxMeasuredValueWithResponseHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))responseHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -2790,6 +2922,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)reportAttributeAlarmMaskWithResponseHandler:(void (^)( NSNumber * _Nullable value, NSError * _Nullable error))responseHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeFeatureMapWithCompletionHandler:(void (^)( NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeFeatureMapWithMinInterval:(uint16_t)minInterval @@ -2846,6 +2981,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)reportAttributeToleranceWithResponseHandler:(void (^)( NSNumber * _Nullable value, NSError * _Nullable error))responseHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -2922,6 +3060,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)reportAttributeNameSupportWithResponseHandler:(void (^)( NSNumber * _Nullable value, NSError * _Nullable error))responseHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -2967,6 +3108,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)reportAttributeCurrentHeapHighWatermarkWithResponseHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))responseHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeFeatureMapWithCompletionHandler:(void (^)( NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; @@ -3010,6 +3154,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)reportAttributeMultiPressMaxWithResponseHandler:(void (^)( NSNumber * _Nullable value, NSError * _Nullable error))responseHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeFeatureMapWithCompletionHandler:(void (^)( NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeFeatureMapWithMinInterval:(uint16_t)minInterval @@ -3060,6 +3207,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)reportAttributeCurrentTvChannelWithResponseHandler:(void (^)( NSData * _Nullable value, NSError * _Nullable error))responseHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -3083,6 +3233,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)readAttributeTargetNavigatorListWithCompletionHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completionHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -3131,6 +3284,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)reportAttributeToleranceWithResponseHandler:(void (^)( NSNumber * _Nullable value, NSError * _Nullable error))responseHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -3791,6 +3947,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)reportAttributeNullableRangeRestrictedInt16sWithResponseHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))responseHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -3968,6 +4127,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)reportAttributeNumberOfDailyTransitionsWithResponseHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))responseHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeFeatureMapWithCompletionHandler:(void (^)( NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeFeatureMapWithMinInterval:(uint16_t)minInterval @@ -4021,6 +4183,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)reportAttributeScheduleProgrammingVisibilityWithResponseHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))responseHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -4513,6 +4678,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)readAttributeActiveNetworkFaultsListWithCompletionHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completionHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeFeatureMapWithCompletionHandler:(void (^)( NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; @@ -4540,6 +4708,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)reportAttributeWakeOnLanMacAddressWithResponseHandler:(void (^)(NSString * _Nullable value, NSError * _Nullable error))responseHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeClusterRevisionWithMinInterval:(uint16_t)minInterval @@ -4658,6 +4829,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)reportAttributeOverrunCountWithResponseHandler:(void (^)( NSNumber * _Nullable value, NSError * _Nullable error))responseHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeFeatureMapWithCompletionHandler:(void (^)( NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; @@ -4830,6 +5004,9 @@ NS_ASSUME_NONNULL_BEGIN - (void)reportAttributeSafetyStatusWithResponseHandler:(void (^)( NSNumber * _Nullable value, NSError * _Nullable error))responseHandler; +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler; + - (void)readAttributeFeatureMapWithCompletionHandler:(void (^)( NSNumber * _Nullable value, NSError * _Nullable error))completionHandler; - (void)subscribeAttributeFeatureMapWithMinInterval:(uint16_t)minInterval diff --git a/src/darwin/Framework/CHIP/zap-generated/CHIPClustersObjc.mm b/src/darwin/Framework/CHIP/zap-generated/CHIPClustersObjc.mm index ebfa766ce904a6..ab3c1ae682ab8a 100644 --- a/src/darwin/Framework/CHIP/zap-generated/CHIPClustersObjc.mm +++ b/src/darwin/Framework/CHIP/zap-generated/CHIPClustersObjc.mm @@ -228,6 +228,22 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPAccessControlAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = AccessControl::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -292,6 +308,22 @@ new CHIPCommandSuccessCallbackBridge( }); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPAccountLoginAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = AccountLogin::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -400,6 +432,22 @@ new CHIPCommandSuccessCallbackBridge( }); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPAdministratorCommissioningAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = AdministratorCommissioning::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -738,6 +786,22 @@ new CHIPInt8uAttributeCallbackBridge( true); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPApplicationBasicAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = ApplicationBasic::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -902,6 +966,22 @@ new CHIPInt8uAttributeCallbackBridge( true); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPApplicationLauncherAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = ApplicationLauncher::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -1044,6 +1124,22 @@ new CHIPInt8uAttributeCallbackBridge( true); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPAudioOutputAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = AudioOutput::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -1284,6 +1380,22 @@ new CHIPInt8uAttributeCallbackBridge( true); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPBarrierControlAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = BarrierControl::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -2116,6 +2228,22 @@ new CHIPCharStringAttributeCallbackBridge( }); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPBasicAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = Basic::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -2317,6 +2445,22 @@ new CHIPInt8uAttributeCallbackBridge( true); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPBinaryInputBasicAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = BinaryInputBasic::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -2407,6 +2551,22 @@ new CHIPCommandSuccessCallbackBridge( }); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPBindingAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = Binding::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -2494,6 +2654,22 @@ new CHIPBooleanAttributeCallbackBridge( true); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPBooleanStateAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = BooleanState::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -2893,6 +3069,22 @@ new CHIPCharStringAttributeCallbackBridge( true); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPBridgedActionsAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = BridgedActions::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -2941,6 +3133,22 @@ @implementation CHIPBridgedDeviceBasic return &_cppCluster; } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPBridgedDeviceBasicAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = BridgedDeviceBasic::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -5665,6 +5873,22 @@ new CHIPInt16uAttributeCallbackBridge( true); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPColorControlAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = ColorControl::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -5787,6 +6011,22 @@ new CHIPContentLauncherSupportedStreamingTypesListAttributeCallbackBridge( }); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPContentLauncherAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = ContentLauncher::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -5899,6 +6139,22 @@ new CHIPDescriptorPartsListListAttributeCallbackBridge( }); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPDescriptorAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = Descriptor::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -5970,6 +6226,22 @@ new CHIPDiagnosticLogsClusterRetrieveLogsResponseCallbackBridge( }); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPDiagnosticLogsAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = DiagnosticLogs::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + @end @implementation CHIPDoorLock @@ -6492,6 +6764,22 @@ new CHIPBooleanAttributeCallbackBridge( true); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPDoorLockAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = DoorLock::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -6969,6 +7257,22 @@ new CHIPInt16sAttributeCallbackBridge( true); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPElectricalMeasurementAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = ElectricalMeasurement::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -7383,6 +7687,22 @@ new CHIPInt64uAttributeCallbackBridge( true); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPEthernetNetworkDiagnosticsAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = EthernetNetworkDiagnostics::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeFeatureMapWithCompletionHandler:(void (^)( NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -7463,6 +7783,22 @@ new CHIPFixedLabelLabelListListAttributeCallbackBridge( }); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPFixedLabelAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = FixedLabel::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -7666,6 +8002,22 @@ new CHIPInt16uAttributeCallbackBridge( true); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPFlowMeasurementAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = FlowMeasurement::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -7885,6 +8237,22 @@ new CHIPInt8uAttributeCallbackBridge( }); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPGeneralCommissioningAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = GeneralCommissioning::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -8151,6 +8519,22 @@ new CHIPGeneralDiagnosticsActiveNetworkFaultsListAttributeCallbackBridge( }); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPGeneralDiagnosticsAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = GeneralDiagnostics::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -8230,6 +8614,22 @@ new CHIPGroupKeyManagementGroupKeysListAttributeCallbackBridge( }); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPGroupKeyManagementAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = GroupKeyManagement::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -8456,6 +8856,22 @@ new CHIPInt8uAttributeCallbackBridge( true); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPGroupsAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = Groups::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -8658,6 +9074,22 @@ new CHIPInt8uAttributeCallbackBridge( true); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPIdentifyAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = Identify::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -8904,6 +9336,22 @@ new CHIPNullableInt8uAttributeCallbackBridge( true); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPIlluminanceMeasurementAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = IlluminanceMeasurement::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -8972,6 +9420,22 @@ new CHIPKeypadInputClusterSendKeyResponseCallbackBridge( }); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPKeypadInputAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = KeypadInput::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -9872,6 +10336,22 @@ new CHIPInt8uAttributeCallbackBridge( true); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPLevelControlAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = LevelControl::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -9937,6 +10417,22 @@ new CHIPCommandSuccessCallbackBridge( }); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPLowPowerAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = LowPower::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -10111,6 +10607,22 @@ new CHIPInt8uAttributeCallbackBridge( true); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPMediaInputAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = MediaInput::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -10672,6 +11184,22 @@ new CHIPInt64uAttributeCallbackBridge( true); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPMediaPlaybackAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = MediaPlayback::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -10927,6 +11455,22 @@ new CHIPCharStringAttributeCallbackBridge( true); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPModeSelectAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = ModeSelect::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -11155,6 +11699,22 @@ new CHIPNetworkCommissioningClusterUpdateWiFiNetworkResponseCallbackBridge( }); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPNetworkCommissioningAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = NetworkCommissioning::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeFeatureMapWithCompletionHandler:(void (^)( NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -11344,6 +11904,22 @@ new CHIPOtaSoftwareUpdateProviderClusterQueryImageResponseCallbackBridge( }); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPOtaSoftwareUpdateProviderAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = OtaSoftwareUpdateProvider::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -11514,6 +12090,22 @@ new CHIPBooleanAttributeCallbackBridge( true); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPOtaSoftwareUpdateRequestorAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = OtaSoftwareUpdateRequestor::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -11678,6 +12270,22 @@ new CHIPInt8uAttributeCallbackBridge( true); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPOccupancySensingAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = OccupancySensing::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -12081,6 +12689,22 @@ new CHIPInt8uAttributeCallbackBridge( true); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPOnOffAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = OnOff::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeFeatureMapWithCompletionHandler:(void (^)( NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -12264,6 +12888,22 @@ new CHIPInt8uAttributeCallbackBridge( true); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPOnOffSwitchConfigurationAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = OnOffSwitchConfiguration::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -12652,6 +13292,22 @@ new CHIPInt8uAttributeCallbackBridge( true); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPOperationalCredentialsAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = OperationalCredentials::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -13024,6 +13680,22 @@ new CHIPInt8uAttributeCallbackBridge( true); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPPowerSourceAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = PowerSource::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeFeatureMapWithCompletionHandler:(void (^)( NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -13126,6 +13798,22 @@ new CHIPPowerSourceConfigurationSourcesListAttributeCallbackBridge( }); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPPowerSourceConfigurationAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = PowerSourceConfiguration::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -13268,6 +13956,22 @@ new CHIPInt16sAttributeCallbackBridge( true); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPPressureMeasurementAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = PressureMeasurement::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -14329,6 +15033,22 @@ new CHIPInt16uAttributeCallbackBridge( true); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPPumpConfigurationAndControlAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = PumpConfigurationAndControl::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeFeatureMapWithCompletionHandler:(void (^)( NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -14571,6 +15291,22 @@ new CHIPInt16uAttributeCallbackBridge( true); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPRelativeHumidityMeasurementAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = RelativeHumidityMeasurement::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -14984,6 +15720,22 @@ new CHIPInt8uAttributeCallbackBridge( true); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPScenesAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = Scenes::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -15182,6 +15934,22 @@ new CHIPInt64uAttributeCallbackBridge( true); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPSoftwareDiagnosticsAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = SoftwareDiagnostics::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeFeatureMapWithCompletionHandler:(void (^)( NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -15363,6 +16131,22 @@ new CHIPInt8uAttributeCallbackBridge( true); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPSwitchAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = Switch::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeFeatureMapWithCompletionHandler:(void (^)( NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -15602,6 +16386,22 @@ new CHIPOctetStringAttributeCallbackBridge( true); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPTvChannelAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = TvChannel::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -15687,6 +16487,22 @@ new CHIPTargetNavigatorTargetNavigatorListListAttributeCallbackBridge( }); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPTargetNavigatorAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = TargetNavigator::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -15890,6 +16706,22 @@ new CHIPInt16uAttributeCallbackBridge( true); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPTemperatureMeasurementAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = TemperatureMeasurement::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -20864,6 +21696,22 @@ new CHIPNullableInt16sAttributeCallbackBridge( true); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPTestClusterAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = TestCluster::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -21861,6 +22709,22 @@ new CHIPInt8uAttributeCallbackBridge( true); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPThermostatAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = Thermostat::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeFeatureMapWithCompletionHandler:(void (^)( NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -22121,6 +22985,23 @@ new CHIPInt8uAttributeCallbackBridge( true); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPThermostatUserInterfaceConfigurationAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = ThermostatUserInterfaceConfiguration::Attributes::AttributeList::TypeInfo; + auto successFn + = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -24521,6 +25402,22 @@ new CHIPThreadNetworkDiagnosticsActiveNetworkFaultsListListAttributeCallbackBrid }); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPThreadNetworkDiagnosticsAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = ThreadNetworkDiagnostics::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeFeatureMapWithCompletionHandler:(void (^)( NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -24624,6 +25521,22 @@ new CHIPCharStringAttributeCallbackBridge( true); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPWakeOnLanAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = WakeOnLan::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeClusterRevisionWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -25192,6 +26105,22 @@ new CHIPInt64uAttributeCallbackBridge( true); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPWiFiNetworkDiagnosticsAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = WiFiNetworkDiagnostics::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeFeatureMapWithCompletionHandler:(void (^)( NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { @@ -26101,6 +27030,22 @@ new CHIPInt16uAttributeCallbackBridge( true); } +- (void)readAttributeAttributeListWithCompletionHandler:(void (^)( + NSArray * _Nullable value, NSError * _Nullable error))completionHandler +{ + new CHIPWindowCoveringAttributeListListAttributeCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable value) { + completionHandler(value, error); + }, + ^(Cancelable * success, Cancelable * failure) { + using TypeInfo = WindowCovering::Attributes::AttributeList::TypeInfo; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.ReadAttribute(successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)readAttributeFeatureMapWithCompletionHandler:(void (^)( NSNumber * _Nullable value, NSError * _Nullable error))completionHandler { diff --git a/src/darwin/Framework/CHIP/zap-generated/CHIPTestClustersObjc.h b/src/darwin/Framework/CHIP/zap-generated/CHIPTestClustersObjc.h index d072a4787c423f..8c15d98f0598e0 100644 --- a/src/darwin/Framework/CHIP/zap-generated/CHIPTestClustersObjc.h +++ b/src/darwin/Framework/CHIP/zap-generated/CHIPTestClustersObjc.h @@ -29,6 +29,7 @@ NS_ASSUME_NONNULL_BEGIN */ @interface CHIPTestAccessControl : CHIPAccessControl +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -39,6 +40,7 @@ NS_ASSUME_NONNULL_BEGIN */ @interface CHIPTestAccountLogin : CHIPAccountLogin +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -49,6 +51,7 @@ NS_ASSUME_NONNULL_BEGIN */ @interface CHIPTestAdministratorCommissioning : CHIPAdministratorCommissioning +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -66,6 +69,7 @@ NS_ASSUME_NONNULL_BEGIN - (void)writeAttributeApplicationIdWithValue:(NSString * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeCatalogVendorIdWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeApplicationStatusWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -80,6 +84,7 @@ NS_ASSUME_NONNULL_BEGIN completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeCatalogVendorIdWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeApplicationIdWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -92,6 +97,7 @@ NS_ASSUME_NONNULL_BEGIN - (void)writeAttributeAudioOutputListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeCurrentAudioOutputWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -106,6 +112,7 @@ NS_ASSUME_NONNULL_BEGIN - (void)writeAttributeBarrierSafetyStatusWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeBarrierCapabilitiesWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeBarrierPositionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -135,6 +142,7 @@ NS_ASSUME_NONNULL_BEGIN - (void)writeAttributeSerialNumberWithValue:(NSString * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeReachableWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeUniqueIDWithValue:(NSString * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -146,6 +154,7 @@ NS_ASSUME_NONNULL_BEGIN @interface CHIPTestBinaryInputBasic : CHIPBinaryInputBasic - (void)writeAttributeStatusFlagsWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -156,6 +165,7 @@ NS_ASSUME_NONNULL_BEGIN */ @interface CHIPTestBinding : CHIPBinding +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -167,6 +177,7 @@ NS_ASSUME_NONNULL_BEGIN @interface CHIPTestBooleanState : CHIPBooleanState - (void)writeAttributeStateValueWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -180,6 +191,7 @@ NS_ASSUME_NONNULL_BEGIN - (void)writeAttributeActionListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeEndpointListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeSetupUrlWithValue:(NSString * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -190,6 +202,7 @@ NS_ASSUME_NONNULL_BEGIN */ @interface CHIPTestBridgedDeviceBasic : CHIPBridgedDeviceBasic +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -244,6 +257,7 @@ NS_ASSUME_NONNULL_BEGIN completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeCoupleColorTempToLevelMinMiredsWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -257,6 +271,7 @@ NS_ASSUME_NONNULL_BEGIN - (void)writeAttributeAcceptsHeaderListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeSupportedStreamingTypesWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -271,6 +286,7 @@ NS_ASSUME_NONNULL_BEGIN - (void)writeAttributeServerListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClientListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributePartsListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -281,6 +297,8 @@ NS_ASSUME_NONNULL_BEGIN */ @interface CHIPTestDiagnosticLogs : CHIPDiagnosticLogs +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; + @end /** @@ -292,6 +310,7 @@ NS_ASSUME_NONNULL_BEGIN - (void)writeAttributeLockStateWithValue:(NSNumber * _Nullable)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeLockTypeWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeActuatorEnabledWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -313,6 +332,7 @@ NS_ASSUME_NONNULL_BEGIN - (void)writeAttributeActivePowerWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeActivePowerMinWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeActivePowerMaxWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -332,6 +352,7 @@ NS_ASSUME_NONNULL_BEGIN - (void)writeAttributeOverrunCountWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeCarrierDetectWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeTimeSinceResetWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeFeatureMapWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @@ -344,6 +365,7 @@ NS_ASSUME_NONNULL_BEGIN @interface CHIPTestFixedLabel : CHIPFixedLabel - (void)writeAttributeLabelListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -358,6 +380,7 @@ NS_ASSUME_NONNULL_BEGIN - (void)writeAttributeMinMeasuredValueWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeMaxMeasuredValueWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeToleranceWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -372,6 +395,7 @@ NS_ASSUME_NONNULL_BEGIN completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeRegulatoryConfigWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeLocationCapabilityWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -391,6 +415,7 @@ NS_ASSUME_NONNULL_BEGIN - (void)writeAttributeActiveHardwareFaultsWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeActiveRadioFaultsWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeActiveNetworkFaultsWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -403,6 +428,7 @@ NS_ASSUME_NONNULL_BEGIN - (void)writeAttributeGroupsWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeGroupKeysWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -414,6 +440,7 @@ NS_ASSUME_NONNULL_BEGIN @interface CHIPTestGroups : CHIPGroups - (void)writeAttributeNameSupportWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -425,6 +452,7 @@ NS_ASSUME_NONNULL_BEGIN @interface CHIPTestIdentify : CHIPIdentify - (void)writeAttributeIdentifyTypeWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -440,6 +468,7 @@ NS_ASSUME_NONNULL_BEGIN - (void)writeAttributeMaxMeasuredValueWithValue:(NSNumber * _Nullable)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeToleranceWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeLightSensorTypeWithValue:(NSNumber * _Nullable)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -450,6 +479,7 @@ NS_ASSUME_NONNULL_BEGIN */ @interface CHIPTestKeypadInput : CHIPKeypadInput +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -467,6 +497,7 @@ NS_ASSUME_NONNULL_BEGIN - (void)writeAttributeCurrentFrequencyWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeMinFrequencyWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeMaxFrequencyWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -477,6 +508,7 @@ NS_ASSUME_NONNULL_BEGIN */ @interface CHIPTestLowPower : CHIPLowPower +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -489,6 +521,7 @@ NS_ASSUME_NONNULL_BEGIN - (void)writeAttributeMediaInputListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeCurrentMediaInputWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -507,6 +540,7 @@ NS_ASSUME_NONNULL_BEGIN - (void)writeAttributePlaybackSpeedWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeSeekRangeEndWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeSeekRangeStartWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -521,6 +555,7 @@ NS_ASSUME_NONNULL_BEGIN - (void)writeAttributeSupportedModesWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeStartUpModeWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeDescriptionWithValue:(NSString * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -531,6 +566,7 @@ NS_ASSUME_NONNULL_BEGIN */ @interface CHIPTestNetworkCommissioning : CHIPNetworkCommissioning +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeFeatureMapWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @@ -542,6 +578,7 @@ NS_ASSUME_NONNULL_BEGIN */ @interface CHIPTestOtaSoftwareUpdateProvider : CHIPOtaSoftwareUpdateProvider +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -553,6 +590,7 @@ NS_ASSUME_NONNULL_BEGIN @interface CHIPTestOtaSoftwareUpdateRequestor : CHIPOtaSoftwareUpdateRequestor - (void)writeAttributeUpdatePossibleWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -567,6 +605,7 @@ NS_ASSUME_NONNULL_BEGIN - (void)writeAttributeOccupancySensorTypeWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeOccupancySensorTypeBitmapWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -579,6 +618,7 @@ NS_ASSUME_NONNULL_BEGIN - (void)writeAttributeOnOffWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeGlobalSceneControlWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeFeatureMapWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @@ -591,6 +631,7 @@ NS_ASSUME_NONNULL_BEGIN @interface CHIPTestOnOffSwitchConfiguration : CHIPOnOffSwitchConfiguration - (void)writeAttributeSwitchTypeWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -607,6 +648,7 @@ NS_ASSUME_NONNULL_BEGIN - (void)writeAttributeTrustedRootCertificatesWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeCurrentFabricIndexWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -628,6 +670,7 @@ NS_ASSUME_NONNULL_BEGIN - (void)writeAttributeBatteryChargeLevelWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeActiveBatteryFaultsWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeBatteryChargeStateWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeFeatureMapWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @@ -640,6 +683,7 @@ NS_ASSUME_NONNULL_BEGIN @interface CHIPTestPowerSourceConfiguration : CHIPPowerSourceConfiguration - (void)writeAttributeSourcesWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -653,6 +697,7 @@ NS_ASSUME_NONNULL_BEGIN - (void)writeAttributeMeasuredValueWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeMinMeasuredValueWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeMaxMeasuredValueWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -685,6 +730,7 @@ NS_ASSUME_NONNULL_BEGIN - (void)writeAttributeSpeedWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributePowerWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeAlarmMaskWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeFeatureMapWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @@ -700,6 +746,7 @@ NS_ASSUME_NONNULL_BEGIN - (void)writeAttributeMinMeasuredValueWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeMaxMeasuredValueWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeToleranceWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -715,6 +762,7 @@ NS_ASSUME_NONNULL_BEGIN - (void)writeAttributeCurrentGroupWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeSceneValidWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeNameSupportWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -730,6 +778,7 @@ NS_ASSUME_NONNULL_BEGIN - (void)writeAttributeCurrentHeapUsedWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeCurrentHeapHighWatermarkWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeFeatureMapWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @@ -744,6 +793,7 @@ NS_ASSUME_NONNULL_BEGIN - (void)writeAttributeNumberOfPositionsWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeCurrentPositionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeMultiPressMaxWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeFeatureMapWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @@ -758,6 +808,7 @@ NS_ASSUME_NONNULL_BEGIN - (void)writeAttributeTvChannelListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeTvChannelLineupWithValue:(NSData * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeCurrentTvChannelWithValue:(NSData * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -769,6 +820,7 @@ NS_ASSUME_NONNULL_BEGIN @interface CHIPTestTargetNavigator : CHIPTargetNavigator - (void)writeAttributeTargetNavigatorListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -783,6 +835,7 @@ NS_ASSUME_NONNULL_BEGIN - (void)writeAttributeMinMeasuredValueWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeMaxMeasuredValueWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeToleranceWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -796,6 +849,7 @@ NS_ASSUME_NONNULL_BEGIN - (void)writeAttributeListNullablesAndOptionalsStructWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeListLongOctetStringWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -820,6 +874,7 @@ NS_ASSUME_NONNULL_BEGIN completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeNumberOfDailyTransitionsWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeFeatureMapWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @@ -831,6 +886,7 @@ NS_ASSUME_NONNULL_BEGIN */ @interface CHIPTestThermostatUserInterfaceConfiguration : CHIPThermostatUserInterfaceConfiguration +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -918,6 +974,7 @@ NS_ASSUME_NONNULL_BEGIN completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeActiveNetworkFaultsListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeFeatureMapWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @@ -930,6 +987,7 @@ NS_ASSUME_NONNULL_BEGIN @interface CHIPTestWakeOnLan : CHIPWakeOnLan - (void)writeAttributeWakeOnLanMacAddressWithValue:(NSString * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @end @@ -957,6 +1015,7 @@ NS_ASSUME_NONNULL_BEGIN completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeCurrentMaxRateWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeOverrunCountWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeFeatureMapWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; @@ -995,6 +1054,7 @@ NS_ASSUME_NONNULL_BEGIN - (void)writeAttributeInstalledClosedLimitTiltWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeSafetyStatusWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeFeatureMapWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler; diff --git a/src/darwin/Framework/CHIP/zap-generated/CHIPTestClustersObjc.mm b/src/darwin/Framework/CHIP/zap-generated/CHIPTestClustersObjc.mm index 2c89fb5e03c851..4a3e6ae6310d29 100644 --- a/src/darwin/Framework/CHIP/zap-generated/CHIPTestClustersObjc.mm +++ b/src/darwin/Framework/CHIP/zap-generated/CHIPTestClustersObjc.mm @@ -44,6 +44,45 @@ @implementation CHIPTestAccessControl return &_cppCluster; } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = AccessControl::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -75,6 +114,45 @@ @implementation CHIPTestAccountLogin return &_cppCluster; } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = AccountLogin::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -106,6 +184,45 @@ @implementation CHIPTestAdministratorCommissioning return &_cppCluster; } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = AdministratorCommissioning::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -263,6 +380,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = ApplicationBasic::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -370,6 +526,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = ApplicationLauncher::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -462,6 +657,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = AudioOutput::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -565,6 +799,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = BarrierControl::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -887,6 +1160,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = Basic::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -936,6 +1248,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = BinaryInputBasic::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -967,6 +1318,45 @@ @implementation CHIPTestBinding return &_cppCluster; } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = Binding::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -1016,6 +1406,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = BooleanState::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -1178,6 +1607,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = BridgedActions::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -1209,6 +1677,45 @@ @implementation CHIPTestBridgedDeviceBasic return &_cppCluster; } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = BridgedDeviceBasic::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -1945,6 +2452,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = ColorControl::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -2056,6 +2602,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = ContentLauncher::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -2244,6 +2829,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = Descriptor::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -2275,6 +2899,45 @@ @implementation CHIPTestDiagnosticLogs return &_cppCluster; } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = DiagnosticLogs::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + @end @interface CHIPTestDoorLock () @@ -2347,6 +3010,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = DoorLock::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -2549,7 +3251,25 @@ new CHIPDefaultSuccessCallbackBridge( }, ^(Cancelable * success, Cancelable * failure) { ListFreer listFreer; - using TypeInfo = ElectricalMeasurement::Attributes::ActivePowerMin::TypeInfo; + using TypeInfo = ElectricalMeasurement::Attributes::ActivePowerMin::TypeInfo; + TypeInfo::Type cppValue; + cppValue = value.shortValue; + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + +- (void)writeAttributeActivePowerMaxWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = ElectricalMeasurement::Attributes::ActivePowerMax::TypeInfo; TypeInfo::Type cppValue; cppValue = value.shortValue; auto successFn = Callback::FromCancelable(success); @@ -2558,7 +3278,7 @@ new CHIPDefaultSuccessCallbackBridge( }); } -- (void)writeAttributeActivePowerMaxWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( self.callbackQueue, @@ -2567,9 +3287,30 @@ new CHIPDefaultSuccessCallbackBridge( }, ^(Cancelable * success, Cancelable * failure) { ListFreer listFreer; - using TypeInfo = ElectricalMeasurement::Attributes::ActivePowerMax::TypeInfo; + using TypeInfo = ElectricalMeasurement::Attributes::AttributeList::TypeInfo; TypeInfo::Type cppValue; - cppValue = value.shortValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } auto successFn = Callback::FromCancelable(success); auto failureFn = Callback::FromCancelable(failure); return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); @@ -2769,6 +3510,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = EthernetNetworkDiagnostics::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeFeatureMapWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -2860,6 +3640,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = FixedLabel::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -2963,6 +3782,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = FlowMeasurement::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -3070,6 +3928,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = GeneralCommissioning::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -3339,6 +4236,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = GeneralDiagnostics::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -3432,18 +4368,57 @@ new CHIPDefaultSuccessCallbackBridge( } listFreer.add(listHolder_0); for (size_t i_0 = 0; i_0 < value.count; ++i_0) { - if (![value[i_0] isKindOfClass:[CHIPGroupKeyManagementClusterGroupKey class]]) { + if (![value[i_0] isKindOfClass:[CHIPGroupKeyManagementClusterGroupKey class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (CHIPGroupKeyManagementClusterGroupKey *) value[i_0]; + listHolder_0->mList[i_0].vendorId = element_0.vendorId.unsignedShortValue; + listHolder_0->mList[i_0].groupKeyIndex = element_0.groupKeyIndex.unsignedShortValue; + listHolder_0->mList[i_0].groupKeyRoot = [self asByteSpan:element_0.groupKeyRoot]; + listHolder_0->mList[i_0].groupKeyEpochStartTime = element_0.groupKeyEpochStartTime.unsignedLongLongValue; + listHolder_0->mList[i_0].groupKeySecurityPolicy + = static_castmList[i_0].groupKeySecurityPolicy)>>( + element_0.groupKeySecurityPolicy.unsignedCharValue); + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = GroupKeyManagement::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { // Wrong kind of value. return CHIP_ERROR_INVALID_ARGUMENT; } - auto element_0 = (CHIPGroupKeyManagementClusterGroupKey *) value[i_0]; - listHolder_0->mList[i_0].vendorId = element_0.vendorId.unsignedShortValue; - listHolder_0->mList[i_0].groupKeyIndex = element_0.groupKeyIndex.unsignedShortValue; - listHolder_0->mList[i_0].groupKeyRoot = [self asByteSpan:element_0.groupKeyRoot]; - listHolder_0->mList[i_0].groupKeyEpochStartTime = element_0.groupKeyEpochStartTime.unsignedLongLongValue; - listHolder_0->mList[i_0].groupKeySecurityPolicy - = static_castmList[i_0].groupKeySecurityPolicy)>>( - element_0.groupKeySecurityPolicy.unsignedCharValue); + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; } cppValue = ListType_0(listHolder_0->mList, value.count); } else { @@ -3505,6 +4480,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = Groups::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -3554,6 +4568,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = Identify::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -3695,6 +4748,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = IlluminanceMeasurement::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -3726,6 +4818,45 @@ @implementation CHIPTestKeypadInput return &_cppCluster; } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = KeypadInput::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -3883,6 +5014,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = LevelControl::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -3914,6 +5084,45 @@ @implementation CHIPTestLowPower return &_cppCluster; } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = LowPower::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -4007,6 +5216,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = MediaInput::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -4182,6 +5430,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = MediaPlayback::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -4308,6 +5595,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = ModeSelect::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -4339,6 +5665,45 @@ @implementation CHIPTestNetworkCommissioning return &_cppCluster; } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = NetworkCommissioning::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeFeatureMapWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -4388,6 +5753,45 @@ @implementation CHIPTestOtaSoftwareUpdateProvider return &_cppCluster; } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = OtaSoftwareUpdateProvider::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -4437,6 +5841,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = OtaSoftwareUpdateRequestor::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -4523,6 +5966,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = OccupancySensing::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -4590,6 +6072,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = OnOff::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeFeatureMapWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -4657,6 +6178,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = OnOffSwitchConfiguration::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -4826,6 +6386,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = OperationalCredentials::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -5041,6 +6640,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = PowerSource::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeFeatureMapWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -5129,6 +6767,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = PowerSourceConfiguration::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -5214,6 +6891,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = PressureMeasurement::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -5606,6 +7322,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = PumpConfigurationAndControl::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeFeatureMapWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -5727,6 +7482,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = RelativeHumidityMeasurement::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -5848,6 +7642,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = Scenes::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -5977,6 +7810,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = SoftwareDiagnostics::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeFeatureMapWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -6080,6 +7952,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = Switch::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeFeatureMapWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -6208,6 +8119,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = TvChannel::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -6279,6 +8229,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = TargetNavigator::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -6382,6 +8371,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = TemperatureMeasurement::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -6625,7 +8653,46 @@ new CHIPDefaultSuccessCallbackBridge( }); } -- (void)writeAttributeListLongOctetStringWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +- (void)writeAttributeListLongOctetStringWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = TestCluster::Attributes::ListLongOctetString::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSData class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSData *) value[i_0]; + listHolder_0->mList[i_0] = [self asByteSpan:element_0]; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( self.callbackQueue, @@ -6634,7 +8701,7 @@ new CHIPDefaultSuccessCallbackBridge( }, ^(Cancelable * success, Cancelable * failure) { ListFreer listFreer; - using TypeInfo = TestCluster::Attributes::ListLongOctetString::TypeInfo; + using TypeInfo = TestCluster::Attributes::AttributeList::TypeInfo; TypeInfo::Type cppValue; { using ListType_0 = std::remove_reference_t; @@ -6646,12 +8713,12 @@ new CHIPDefaultSuccessCallbackBridge( } listFreer.add(listHolder_0); for (size_t i_0 = 0; i_0 < value.count; ++i_0) { - if (![value[i_0] isKindOfClass:[NSData class]]) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { // Wrong kind of value. return CHIP_ERROR_INVALID_ARGUMENT; } - auto element_0 = (NSData *) value[i_0]; - listHolder_0->mList[i_0] = [self asByteSpan:element_0]; + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; } cppValue = ListType_0(listHolder_0->mList, value.count); } else { @@ -6845,6 +8912,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = Thermostat::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeFeatureMapWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -6894,6 +9000,45 @@ @implementation CHIPTestThermostatUserInterfaceConfiguration return &_cppCluster; } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = ThermostatUserInterfaceConfiguration::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -8211,6 +10356,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = ThreadNetworkDiagnostics::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeFeatureMapWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -8278,6 +10462,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = WakeOnLan::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeClusterRevisionWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -8545,6 +10768,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = WiFiNetworkDiagnostics::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeFeatureMapWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( @@ -8910,6 +11172,45 @@ new CHIPDefaultSuccessCallbackBridge( }); } +- (void)writeAttributeAttributeListWithValue:(NSArray * _Nonnull)value completionHandler:(StatusCompletion)completionHandler +{ + new CHIPDefaultSuccessCallbackBridge( + self.callbackQueue, + ^(NSError * _Nullable error, id _Nullable ignored) { + completionHandler(error); + }, + ^(Cancelable * success, Cancelable * failure) { + ListFreer listFreer; + using TypeInfo = WindowCovering::Attributes::AttributeList::TypeInfo; + TypeInfo::Type cppValue; + { + using ListType_0 = std::remove_reference_t; + using ListMemberType_0 = ListMemberTypeGetter::Type; + if (value.count != 0) { + auto * listHolder_0 = new ListHolder(value.count); + if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) { + return CHIP_ERROR_INVALID_ARGUMENT; + } + listFreer.add(listHolder_0); + for (size_t i_0 = 0; i_0 < value.count; ++i_0) { + if (![value[i_0] isKindOfClass:[NSNumber class]]) { + // Wrong kind of value. + return CHIP_ERROR_INVALID_ARGUMENT; + } + auto element_0 = (NSNumber *) value[i_0]; + listHolder_0->mList[i_0] = element_0.unsignedIntValue; + } + cppValue = ListType_0(listHolder_0->mList, value.count); + } else { + cppValue = ListType_0(); + } + } + auto successFn = Callback::FromCancelable(success); + auto failureFn = Callback::FromCancelable(failure); + return self.cppCluster.WriteAttribute(cppValue, successFn->mContext, successFn->mCall, failureFn->mCall); + }); +} + - (void)writeAttributeFeatureMapWithValue:(NSNumber * _Nonnull)value completionHandler:(StatusCompletion)completionHandler { new CHIPDefaultSuccessCallbackBridge( diff --git a/src/darwin/Framework/CHIPTests/CHIPClustersTests.m b/src/darwin/Framework/CHIPTests/CHIPClustersTests.m index 4896ed12d1021f..2b8d5d6a7bbb2c 100644 --- a/src/darwin/Framework/CHIPTests/CHIPClustersTests.m +++ b/src/darwin/Framework/CHIPTests/CHIPClustersTests.m @@ -30025,6 +30025,51 @@ - (void)testSendClusterTestBasicInformation_000004_WriteAttribute [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterTestBasicInformation_000005_ReadAttribute +{ + XCTestExpectation * expectation = [self expectationWithDescription:@"Read AttributeList value"]; + + CHIPDevice * device = GetConnectedDevice(); + dispatch_queue_t queue = dispatch_get_main_queue(); + CHIPTestBasic * cluster = [[CHIPTestBasic alloc] initWithDevice:device endpoint:0 queue:queue]; + XCTAssertNotNil(cluster); + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read AttributeList value Error: %@", err); + + XCTAssertEqual([CHIPErrorTestUtils errorToZCLErrorCode:err], 0); + + { + id actualValue = value; + XCTAssertEqual([actualValue count], 21); + XCTAssertEqual([actualValue[0] unsignedIntValue], 0UL); + XCTAssertEqual([actualValue[1] unsignedIntValue], 1UL); + XCTAssertEqual([actualValue[2] unsignedIntValue], 2UL); + XCTAssertEqual([actualValue[3] unsignedIntValue], 3UL); + XCTAssertEqual([actualValue[4] unsignedIntValue], 4UL); + XCTAssertEqual([actualValue[5] unsignedIntValue], 5UL); + XCTAssertEqual([actualValue[6] unsignedIntValue], 6UL); + XCTAssertEqual([actualValue[7] unsignedIntValue], 7UL); + XCTAssertEqual([actualValue[8] unsignedIntValue], 8UL); + XCTAssertEqual([actualValue[9] unsignedIntValue], 9UL); + XCTAssertEqual([actualValue[10] unsignedIntValue], 10UL); + XCTAssertEqual([actualValue[11] unsignedIntValue], 11UL); + XCTAssertEqual([actualValue[12] unsignedIntValue], 12UL); + XCTAssertEqual([actualValue[13] unsignedIntValue], 13UL); + XCTAssertEqual([actualValue[14] unsignedIntValue], 14UL); + XCTAssertEqual([actualValue[15] unsignedIntValue], 15UL); + XCTAssertEqual([actualValue[16] unsignedIntValue], 16UL); + XCTAssertEqual([actualValue[17] unsignedIntValue], 17UL); + XCTAssertEqual([actualValue[18] unsignedIntValue], 18UL); + XCTAssertEqual([actualValue[19] unsignedIntValue], 65531UL); + XCTAssertEqual([actualValue[20] unsignedIntValue], 65533UL); + } + + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} - (void)testSendClusterTestGroupsCluster_000000_WaitForCommissionee { @@ -31567,6 +31612,31 @@ - (void)testSendClusterTestSubscribe_OnOff_000007_WaitForReport [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterAccountLoginReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPAccountLogin * cluster = [[CHIPAccountLogin alloc] initWithDevice:device endpoint:1 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = + [self expectationWithDescription:@"AccountLoginReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"AccountLogin AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterAccountLoginReadAttributeClusterRevisionWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -31592,6 +31662,33 @@ - (void)testSendClusterAccountLoginReadAttributeClusterRevisionWithCompletionHan [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterAdministratorCommissioningReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPAdministratorCommissioning * cluster = [[CHIPAdministratorCommissioning alloc] initWithDevice:device + endpoint:0 + queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = + [self expectationWithDescription:@"AdministratorCommissioningReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"AdministratorCommissioning AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterAdministratorCommissioningReadAttributeClusterRevisionWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -31794,6 +31891,31 @@ - (void)testSendClusterApplicationBasicReadAttributeApplicationStatusWithComplet [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterApplicationBasicReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPApplicationBasic * cluster = [[CHIPApplicationBasic alloc] initWithDevice:device endpoint:1 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = + [self expectationWithDescription:@"ApplicationBasicReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"ApplicationBasic AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterApplicationBasicReadAttributeClusterRevisionWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -31894,6 +32016,31 @@ - (void)testSendClusterApplicationLauncherReadAttributeApplicationIdWithCompleti [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterApplicationLauncherReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPApplicationLauncher * cluster = [[CHIPApplicationLauncher alloc] initWithDevice:device endpoint:1 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = + [self expectationWithDescription:@"ApplicationLauncherReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"ApplicationLauncher AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterApplicationLauncherReadAttributeClusterRevisionWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -31969,6 +32116,31 @@ - (void)testSendClusterAudioOutputReadAttributeCurrentAudioOutputWithCompletionH [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterAudioOutputReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPAudioOutput * cluster = [[CHIPAudioOutput alloc] initWithDevice:device endpoint:1 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = + [self expectationWithDescription:@"AudioOutputReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"AudioOutput AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterAudioOutputReadAttributeClusterRevisionWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -32094,6 +32266,31 @@ - (void)testSendClusterBarrierControlReadAttributeBarrierPositionWithCompletionH [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterBarrierControlReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPBarrierControl * cluster = [[CHIPBarrierControl alloc] initWithDevice:device endpoint:1 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = + [self expectationWithDescription:@"BarrierControlReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"BarrierControl AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterBarrierControlReadAttributeClusterRevisionWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -32244,6 +32441,31 @@ - (void)testSendClusterBinaryInputBasicReadAttributeStatusFlagsWithCompletionHan [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterBinaryInputBasicReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPBinaryInputBasic * cluster = [[CHIPBinaryInputBasic alloc] initWithDevice:device endpoint:1 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = + [self expectationWithDescription:@"BinaryInputBasicReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"BinaryInputBasic AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterBinaryInputBasicReadAttributeClusterRevisionWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -32269,6 +32491,30 @@ - (void)testSendClusterBinaryInputBasicReadAttributeClusterRevisionWithCompletio [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterBindingReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPBinding * cluster = [[CHIPBinding alloc] initWithDevice:device endpoint:1 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = [self expectationWithDescription:@"BindingReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Binding AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterBindingReadAttributeClusterRevisionWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -32317,6 +32563,31 @@ - (void)testSendClusterBooleanStateReadAttributeStateValueWithCompletionHandler [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterBooleanStateReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPBooleanState * cluster = [[CHIPBooleanState alloc] initWithDevice:device endpoint:1 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = + [self expectationWithDescription:@"BooleanStateReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"BooleanState AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterBooleanStateReadAttributeClusterRevisionWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -32416,6 +32687,31 @@ - (void)testSendClusterBridgedActionsReadAttributeSetupUrlWithCompletionHandler [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterBridgedActionsReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPBridgedActions * cluster = [[CHIPBridgedActions alloc] initWithDevice:device endpoint:1 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = + [self expectationWithDescription:@"BridgedActionsReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"BridgedActions AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterBridgedActionsReadAttributeClusterRevisionWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -32441,6 +32737,31 @@ - (void)testSendClusterBridgedActionsReadAttributeClusterRevisionWithCompletionH [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterBridgedDeviceBasicReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPBridgedDeviceBasic * cluster = [[CHIPBridgedDeviceBasic alloc] initWithDevice:device endpoint:1 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = + [self expectationWithDescription:@"BridgedDeviceBasicReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"BridgedDeviceBasic AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterBridgedDeviceBasicReadAttributeClusterRevisionWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -34078,7 +34399,7 @@ - (void)testSendClusterColorControlWriteAttributeStartUpColorTemperatureMiredsWi [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } -- (void)testSendClusterColorControlReadAttributeClusterRevisionWithCompletionHandler +- (void)testSendClusterColorControlReadAttributeAttributeListWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -34092,10 +34413,10 @@ - (void)testSendClusterColorControlReadAttributeClusterRevisionWithCompletionHan XCTAssertNotNil(cluster); XCTestExpectation * expectation = - [self expectationWithDescription:@"ColorControlReadAttributeClusterRevisionWithCompletionHandler"]; + [self expectationWithDescription:@"ColorControlReadAttributeAttributeListWithCompletionHandler"]; - [cluster readAttributeClusterRevisionWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"ColorControl ClusterRevision Error: %@", err); + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"ColorControl AttributeList Error: %@", err); XCTAssertEqual(err.code, 0); [expectation fulfill]; }]; @@ -34103,7 +34424,32 @@ - (void)testSendClusterColorControlReadAttributeClusterRevisionWithCompletionHan [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } -- (void)testSendClusterContentLauncherReadAttributeAcceptsHeaderListWithCompletionHandler +- (void)testSendClusterColorControlReadAttributeClusterRevisionWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPColorControl * cluster = [[CHIPColorControl alloc] initWithDevice:device endpoint:1 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = + [self expectationWithDescription:@"ColorControlReadAttributeClusterRevisionWithCompletionHandler"]; + + [cluster readAttributeClusterRevisionWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"ColorControl ClusterRevision Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + +- (void)testSendClusterContentLauncherReadAttributeAcceptsHeaderListWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -34153,6 +34499,31 @@ - (void)testSendClusterContentLauncherReadAttributeSupportedStreamingTypesWithCo [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterContentLauncherReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPContentLauncher * cluster = [[CHIPContentLauncher alloc] initWithDevice:device endpoint:1 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = + [self expectationWithDescription:@"ContentLauncherReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"ContentLauncher AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterContentLauncherReadAttributeClusterRevisionWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -34274,6 +34645,31 @@ - (void)testSendClusterDescriptorReadAttributePartsListWithCompletionHandler [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterDescriptorReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPDescriptor * cluster = [[CHIPDescriptor alloc] initWithDevice:device endpoint:0 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = + [self expectationWithDescription:@"DescriptorReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Descriptor AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterDescriptorReadAttributeClusterRevisionWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -34299,6 +34695,31 @@ - (void)testSendClusterDescriptorReadAttributeClusterRevisionWithCompletionHandl [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterDiagnosticLogsReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPDiagnosticLogs * cluster = [[CHIPDiagnosticLogs alloc] initWithDevice:device endpoint:1 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = + [self expectationWithDescription:@"DiagnosticLogsReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"DiagnosticLogs AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterDoorLockReadAttributeActuatorEnabledWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -34324,6 +34745,30 @@ - (void)testSendClusterDoorLockReadAttributeActuatorEnabledWithCompletionHandler [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterDoorLockReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPDoorLock * cluster = [[CHIPDoorLock alloc] initWithDevice:device endpoint:1 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = [self expectationWithDescription:@"DoorLockReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"DoorLock AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterDoorLockReadAttributeClusterRevisionWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -34624,6 +35069,31 @@ - (void)testSendClusterElectricalMeasurementReadAttributeActivePowerMaxWithCompl [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterElectricalMeasurementReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPElectricalMeasurement * cluster = [[CHIPElectricalMeasurement alloc] initWithDevice:device endpoint:1 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = + [self expectationWithDescription:@"ElectricalMeasurementReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"ElectricalMeasurement AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterElectricalMeasurementReadAttributeClusterRevisionWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -34892,6 +35362,33 @@ - (void)testSendClusterEthernetNetworkDiagnosticsReadAttributeTimeSinceResetWith [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterEthernetNetworkDiagnosticsReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPEthernetNetworkDiagnostics * cluster = [[CHIPEthernetNetworkDiagnostics alloc] initWithDevice:device + endpoint:0 + queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = + [self expectationWithDescription:@"EthernetNetworkDiagnosticsReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"EthernetNetworkDiagnostics AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterEthernetNetworkDiagnosticsReadAttributeFeatureMapWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -34970,6 +35467,31 @@ - (void)testSendClusterFixedLabelReadAttributeLabelListWithCompletionHandler [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterFixedLabelReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPFixedLabel * cluster = [[CHIPFixedLabel alloc] initWithDevice:device endpoint:1 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = + [self expectationWithDescription:@"FixedLabelReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"FixedLabel AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterFixedLabelReadAttributeClusterRevisionWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -35095,6 +35617,31 @@ - (void)testSendClusterFlowMeasurementReadAttributeToleranceWithCompletionHandle [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterFlowMeasurementReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPFlowMeasurement * cluster = [[CHIPFlowMeasurement alloc] initWithDevice:device endpoint:1 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = + [self expectationWithDescription:@"FlowMeasurementReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"FlowMeasurement AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterFlowMeasurementReadAttributeClusterRevisionWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -35245,6 +35792,31 @@ - (void)testSendClusterGeneralCommissioningReadAttributeLocationCapabilityWithCo [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterGeneralCommissioningReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPGeneralCommissioning * cluster = [[CHIPGeneralCommissioning alloc] initWithDevice:device endpoint:0 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = + [self expectationWithDescription:@"GeneralCommissioningReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"GeneralCommissioning AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterGeneralCommissioningReadAttributeClusterRevisionWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -35470,6 +36042,31 @@ - (void)testSendClusterGeneralDiagnosticsReadAttributeActiveNetworkFaultsWithCom [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterGeneralDiagnosticsReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPGeneralDiagnostics * cluster = [[CHIPGeneralDiagnostics alloc] initWithDevice:device endpoint:0 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = + [self expectationWithDescription:@"GeneralDiagnosticsReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"GeneralDiagnostics AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterGeneralDiagnosticsReadAttributeClusterRevisionWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -35545,6 +36142,31 @@ - (void)testSendClusterGroupKeyManagementReadAttributeGroupKeysWithCompletionHan [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterGroupKeyManagementReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPGroupKeyManagement * cluster = [[CHIPGroupKeyManagement alloc] initWithDevice:device endpoint:0 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = + [self expectationWithDescription:@"GroupKeyManagementReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"GroupKeyManagement AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterGroupKeyManagementReadAttributeClusterRevisionWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -35594,6 +36216,30 @@ - (void)testSendClusterGroupsReadAttributeNameSupportWithCompletionHandler [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterGroupsReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPGroups * cluster = [[CHIPGroups alloc] initWithDevice:device endpoint:1 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = [self expectationWithDescription:@"GroupsReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Groups AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterGroupsReadAttributeClusterRevisionWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -35691,6 +36337,30 @@ - (void)testSendClusterIdentifyReadAttributeIdentifyTypeWithCompletionHandler [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterIdentifyReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPIdentify * cluster = [[CHIPIdentify alloc] initWithDevice:device endpoint:1 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = [self expectationWithDescription:@"IdentifyReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Identify AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterIdentifyReadAttributeClusterRevisionWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -35841,6 +36511,31 @@ - (void)testSendClusterIlluminanceMeasurementReadAttributeLightSensorTypeWithCom [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterIlluminanceMeasurementReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPIlluminanceMeasurement * cluster = [[CHIPIlluminanceMeasurement alloc] initWithDevice:device endpoint:1 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = + [self expectationWithDescription:@"IlluminanceMeasurementReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"IlluminanceMeasurement AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterIlluminanceMeasurementReadAttributeClusterRevisionWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -35866,6 +36561,31 @@ - (void)testSendClusterIlluminanceMeasurementReadAttributeClusterRevisionWithCom [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterKeypadInputReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPKeypadInput * cluster = [[CHIPKeypadInput alloc] initWithDevice:device endpoint:1 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = + [self expectationWithDescription:@"KeypadInputReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"KeypadInput AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterKeypadInputReadAttributeClusterRevisionWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -36412,6 +37132,31 @@ - (void)testSendClusterLevelControlWriteAttributeStartUpCurrentLevelWithValue [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterLevelControlReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPLevelControl * cluster = [[CHIPLevelControl alloc] initWithDevice:device endpoint:1 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = + [self expectationWithDescription:@"LevelControlReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"LevelControl AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterLevelControlReadAttributeClusterRevisionWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -36437,6 +37182,30 @@ - (void)testSendClusterLevelControlReadAttributeClusterRevisionWithCompletionHan [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterLowPowerReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPLowPower * cluster = [[CHIPLowPower alloc] initWithDevice:device endpoint:1 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = [self expectationWithDescription:@"LowPowerReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"LowPower AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterLowPowerReadAttributeClusterRevisionWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -36512,6 +37281,31 @@ - (void)testSendClusterMediaInputReadAttributeCurrentMediaInputWithCompletionHan [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterMediaInputReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPMediaInput * cluster = [[CHIPMediaInput alloc] initWithDevice:device endpoint:1 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = + [self expectationWithDescription:@"MediaInputReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"MediaInput AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterMediaInputReadAttributeClusterRevisionWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -36734,6 +37528,31 @@ - (void)testSendClusterMediaPlaybackReadAttributeSeekRangeStartWithCompletionHan [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterMediaPlaybackReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPMediaPlayback * cluster = [[CHIPMediaPlayback alloc] initWithDevice:device endpoint:1 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = + [self expectationWithDescription:@"MediaPlaybackReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"MediaPlayback AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterMediaPlaybackReadAttributeClusterRevisionWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -36808,7 +37627,80 @@ - (void)testSendClusterModeSelectReadAttributeSupportedModesWithCompletionHandle [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } -- (void)testSendClusterModeSelectReadAttributeOnModeWithCompletionHandler +- (void)testSendClusterModeSelectReadAttributeOnModeWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPModeSelect * cluster = [[CHIPModeSelect alloc] initWithDevice:device endpoint:1 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = [self expectationWithDescription:@"ModeSelectReadAttributeOnModeWithCompletionHandler"]; + + [cluster readAttributeOnModeWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"ModeSelect OnMode Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + +- (void)testSendClusterModeSelectWriteAttributeOnModeWithValue +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPModeSelect * cluster = [[CHIPModeSelect alloc] initWithDevice:device endpoint:1 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = [self expectationWithDescription:@"ModeSelectWriteAttributeOnModeWithValue"]; + + NSNumber * _Nonnull value = @(0); + [cluster writeAttributeOnModeWithValue:value + completionHandler:^(NSError * _Nullable err) { + NSLog(@"ModeSelect OnMode Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} +- (void)testSendClusterModeSelectReadAttributeStartUpModeWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPModeSelect * cluster = [[CHIPModeSelect alloc] initWithDevice:device endpoint:1 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = [self expectationWithDescription:@"ModeSelectReadAttributeStartUpModeWithCompletionHandler"]; + + [cluster readAttributeStartUpModeWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"ModeSelect StartUpMode Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + +- (void)testSendClusterModeSelectReadAttributeDescriptionWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -36821,10 +37713,10 @@ - (void)testSendClusterModeSelectReadAttributeOnModeWithCompletionHandler CHIPModeSelect * cluster = [[CHIPModeSelect alloc] initWithDevice:device endpoint:1 queue:queue]; XCTAssertNotNil(cluster); - XCTestExpectation * expectation = [self expectationWithDescription:@"ModeSelectReadAttributeOnModeWithCompletionHandler"]; + XCTestExpectation * expectation = [self expectationWithDescription:@"ModeSelectReadAttributeDescriptionWithCompletionHandler"]; - [cluster readAttributeOnModeWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"ModeSelect OnMode Error: %@", err); + [cluster readAttributeDescriptionWithCompletionHandler:^(NSString * _Nullable value, NSError * _Nullable err) { + NSLog(@"ModeSelect Description Error: %@", err); XCTAssertEqual(err.code, 0); [expectation fulfill]; }]; @@ -36832,7 +37724,7 @@ - (void)testSendClusterModeSelectReadAttributeOnModeWithCompletionHandler [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } -- (void)testSendClusterModeSelectWriteAttributeOnModeWithValue +- (void)testSendClusterModeSelectReadAttributeAttributeListWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -36845,19 +37737,19 @@ - (void)testSendClusterModeSelectWriteAttributeOnModeWithValue CHIPModeSelect * cluster = [[CHIPModeSelect alloc] initWithDevice:device endpoint:1 queue:queue]; XCTAssertNotNil(cluster); - XCTestExpectation * expectation = [self expectationWithDescription:@"ModeSelectWriteAttributeOnModeWithValue"]; + XCTestExpectation * expectation = + [self expectationWithDescription:@"ModeSelectReadAttributeAttributeListWithCompletionHandler"]; - NSNumber * _Nonnull value = @(0); - [cluster writeAttributeOnModeWithValue:value - completionHandler:^(NSError * _Nullable err) { - NSLog(@"ModeSelect OnMode Error: %@", err); - XCTAssertEqual(err.code, 0); - [expectation fulfill]; - }]; + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"ModeSelect AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } -- (void)testSendClusterModeSelectReadAttributeStartUpModeWithCompletionHandler + +- (void)testSendClusterModeSelectReadAttributeClusterRevisionWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -36870,10 +37762,11 @@ - (void)testSendClusterModeSelectReadAttributeStartUpModeWithCompletionHandler CHIPModeSelect * cluster = [[CHIPModeSelect alloc] initWithDevice:device endpoint:1 queue:queue]; XCTAssertNotNil(cluster); - XCTestExpectation * expectation = [self expectationWithDescription:@"ModeSelectReadAttributeStartUpModeWithCompletionHandler"]; + XCTestExpectation * expectation = + [self expectationWithDescription:@"ModeSelectReadAttributeClusterRevisionWithCompletionHandler"]; - [cluster readAttributeStartUpModeWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"ModeSelect StartUpMode Error: %@", err); + [cluster readAttributeClusterRevisionWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"ModeSelect ClusterRevision Error: %@", err); XCTAssertEqual(err.code, 0); [expectation fulfill]; }]; @@ -36881,7 +37774,7 @@ - (void)testSendClusterModeSelectReadAttributeStartUpModeWithCompletionHandler [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } -- (void)testSendClusterModeSelectReadAttributeDescriptionWithCompletionHandler +- (void)testSendClusterNetworkCommissioningReadAttributeAttributeListWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -36891,13 +37784,14 @@ - (void)testSendClusterModeSelectReadAttributeDescriptionWithCompletionHandler [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; CHIPDevice * device = GetConnectedDevice(); - CHIPModeSelect * cluster = [[CHIPModeSelect alloc] initWithDevice:device endpoint:1 queue:queue]; + CHIPNetworkCommissioning * cluster = [[CHIPNetworkCommissioning alloc] initWithDevice:device endpoint:0 queue:queue]; XCTAssertNotNil(cluster); - XCTestExpectation * expectation = [self expectationWithDescription:@"ModeSelectReadAttributeDescriptionWithCompletionHandler"]; + XCTestExpectation * expectation = + [self expectationWithDescription:@"NetworkCommissioningReadAttributeAttributeListWithCompletionHandler"]; - [cluster readAttributeDescriptionWithCompletionHandler:^(NSString * _Nullable value, NSError * _Nullable err) { - NSLog(@"ModeSelect Description Error: %@", err); + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"NetworkCommissioning AttributeList Error: %@", err); XCTAssertEqual(err.code, 0); [expectation fulfill]; }]; @@ -36905,7 +37799,7 @@ - (void)testSendClusterModeSelectReadAttributeDescriptionWithCompletionHandler [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } -- (void)testSendClusterModeSelectReadAttributeClusterRevisionWithCompletionHandler +- (void)testSendClusterNetworkCommissioningReadAttributeFeatureMapWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -36915,14 +37809,14 @@ - (void)testSendClusterModeSelectReadAttributeClusterRevisionWithCompletionHandl [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; CHIPDevice * device = GetConnectedDevice(); - CHIPModeSelect * cluster = [[CHIPModeSelect alloc] initWithDevice:device endpoint:1 queue:queue]; + CHIPNetworkCommissioning * cluster = [[CHIPNetworkCommissioning alloc] initWithDevice:device endpoint:0 queue:queue]; XCTAssertNotNil(cluster); XCTestExpectation * expectation = - [self expectationWithDescription:@"ModeSelectReadAttributeClusterRevisionWithCompletionHandler"]; + [self expectationWithDescription:@"NetworkCommissioningReadAttributeFeatureMapWithCompletionHandler"]; - [cluster readAttributeClusterRevisionWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"ModeSelect ClusterRevision Error: %@", err); + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"NetworkCommissioning FeatureMap Error: %@", err); XCTAssertEqual(err.code, 0); [expectation fulfill]; }]; @@ -36930,7 +37824,7 @@ - (void)testSendClusterModeSelectReadAttributeClusterRevisionWithCompletionHandl [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } -- (void)testSendClusterNetworkCommissioningReadAttributeFeatureMapWithCompletionHandler +- (void)testSendClusterNetworkCommissioningReadAttributeClusterRevisionWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -36944,10 +37838,10 @@ - (void)testSendClusterNetworkCommissioningReadAttributeFeatureMapWithCompletion XCTAssertNotNil(cluster); XCTestExpectation * expectation = - [self expectationWithDescription:@"NetworkCommissioningReadAttributeFeatureMapWithCompletionHandler"]; + [self expectationWithDescription:@"NetworkCommissioningReadAttributeClusterRevisionWithCompletionHandler"]; - [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"NetworkCommissioning FeatureMap Error: %@", err); + [cluster readAttributeClusterRevisionWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"NetworkCommissioning ClusterRevision Error: %@", err); XCTAssertEqual(err.code, 0); [expectation fulfill]; }]; @@ -36955,7 +37849,7 @@ - (void)testSendClusterNetworkCommissioningReadAttributeFeatureMapWithCompletion [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } -- (void)testSendClusterNetworkCommissioningReadAttributeClusterRevisionWithCompletionHandler +- (void)testSendClusterOtaSoftwareUpdateProviderReadAttributeAttributeListWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -36965,14 +37859,14 @@ - (void)testSendClusterNetworkCommissioningReadAttributeClusterRevisionWithCompl [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; CHIPDevice * device = GetConnectedDevice(); - CHIPNetworkCommissioning * cluster = [[CHIPNetworkCommissioning alloc] initWithDevice:device endpoint:0 queue:queue]; + CHIPOtaSoftwareUpdateProvider * cluster = [[CHIPOtaSoftwareUpdateProvider alloc] initWithDevice:device endpoint:0 queue:queue]; XCTAssertNotNil(cluster); XCTestExpectation * expectation = - [self expectationWithDescription:@"NetworkCommissioningReadAttributeClusterRevisionWithCompletionHandler"]; + [self expectationWithDescription:@"OtaSoftwareUpdateProviderReadAttributeAttributeListWithCompletionHandler"]; - [cluster readAttributeClusterRevisionWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"NetworkCommissioning ClusterRevision Error: %@", err); + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"OtaSoftwareUpdateProvider AttributeList Error: %@", err); XCTAssertEqual(err.code, 0); [expectation fulfill]; }]; @@ -37087,6 +37981,33 @@ - (void)testSendClusterOtaSoftwareUpdateRequestorReadAttributeUpdatePossibleWith [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterOtaSoftwareUpdateRequestorReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPOtaSoftwareUpdateRequestor * cluster = [[CHIPOtaSoftwareUpdateRequestor alloc] initWithDevice:device + endpoint:0 + queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = + [self expectationWithDescription:@"OtaSoftwareUpdateRequestorReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"OtaSoftwareUpdateRequestor AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterOtaSoftwareUpdateRequestorReadAttributeClusterRevisionWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -37189,6 +38110,31 @@ - (void)testSendClusterOccupancySensingReadAttributeOccupancySensorTypeBitmapWit [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterOccupancySensingReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPOccupancySensing * cluster = [[CHIPOccupancySensing alloc] initWithDevice:device endpoint:1 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = + [self expectationWithDescription:@"OccupancySensingReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"OccupancySensing AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterOccupancySensingReadAttributeClusterRevisionWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -37410,6 +38356,30 @@ - (void)testSendClusterOnOffWriteAttributeStartUpOnOffWithValue [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterOnOffReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPOnOff * cluster = [[CHIPOnOff alloc] initWithDevice:device endpoint:1 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = [self expectationWithDescription:@"OnOffReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"OnOff AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterOnOffReadAttributeFeatureMapWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -37534,6 +38504,31 @@ - (void)testSendClusterOnOffSwitchConfigurationWriteAttributeSwitchActionsWithVa [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterOnOffSwitchConfigurationReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPOnOffSwitchConfiguration * cluster = [[CHIPOnOffSwitchConfiguration alloc] initWithDevice:device endpoint:1 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = + [self expectationWithDescription:@"OnOffSwitchConfigurationReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"OnOffSwitchConfiguration AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterOnOffSwitchConfigurationReadAttributeClusterRevisionWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -37684,6 +38679,31 @@ - (void)testSendClusterOperationalCredentialsReadAttributeCurrentFabricIndexWith [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterOperationalCredentialsReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPOperationalCredentials * cluster = [[CHIPOperationalCredentials alloc] initWithDevice:device endpoint:0 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = + [self expectationWithDescription:@"OperationalCredentialsReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"OperationalCredentials AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterOperationalCredentialsReadAttributeClusterRevisionWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -37931,6 +38951,31 @@ - (void)testSendClusterPowerSourceReadAttributeBatteryChargeStateWithCompletionH [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterPowerSourceReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPPowerSource * cluster = [[CHIPPowerSource alloc] initWithDevice:device endpoint:1 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = + [self expectationWithDescription:@"PowerSourceReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"PowerSource AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterPowerSourceReadAttributeFeatureMapWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -38005,6 +39050,31 @@ - (void)testSendClusterPowerSourceConfigurationReadAttributeSourcesWithCompletio [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterPowerSourceConfigurationReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPPowerSourceConfiguration * cluster = [[CHIPPowerSourceConfiguration alloc] initWithDevice:device endpoint:0 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = + [self expectationWithDescription:@"PowerSourceConfigurationReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"PowerSourceConfiguration AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterPowerSourceConfigurationReadAttributeClusterRevisionWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -38105,6 +39175,31 @@ - (void)testSendClusterPressureMeasurementReadAttributeMaxMeasuredValueWithCompl [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterPressureMeasurementReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPPressureMeasurement * cluster = [[CHIPPressureMeasurement alloc] initWithDevice:device endpoint:1 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = + [self expectationWithDescription:@"PressureMeasurementReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"PressureMeasurement AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterPressureMeasurementReadAttributeClusterRevisionWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -38879,10 +39974,37 @@ - (void)testSendClusterPumpConfigurationAndControlReadAttributeAlarmMaskWithComp XCTAssertNotNil(cluster); XCTestExpectation * expectation = - [self expectationWithDescription:@"PumpConfigurationAndControlReadAttributeAlarmMaskWithCompletionHandler"]; + [self expectationWithDescription:@"PumpConfigurationAndControlReadAttributeAlarmMaskWithCompletionHandler"]; + + [cluster readAttributeAlarmMaskWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"PumpConfigurationAndControl AlarmMask Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + +- (void)testSendClusterPumpConfigurationAndControlReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPPumpConfigurationAndControl * cluster = [[CHIPPumpConfigurationAndControl alloc] initWithDevice:device + endpoint:1 + queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = + [self expectationWithDescription:@"PumpConfigurationAndControlReadAttributeAttributeListWithCompletionHandler"]; - [cluster readAttributeAlarmMaskWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"PumpConfigurationAndControl AlarmMask Error: %@", err); + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"PumpConfigurationAndControl AttributeList Error: %@", err); XCTAssertEqual(err.code, 0); [expectation fulfill]; }]; @@ -39052,6 +40174,33 @@ - (void)testSendClusterRelativeHumidityMeasurementReadAttributeToleranceWithComp [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterRelativeHumidityMeasurementReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPRelativeHumidityMeasurement * cluster = [[CHIPRelativeHumidityMeasurement alloc] initWithDevice:device + endpoint:1 + queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = + [self expectationWithDescription:@"RelativeHumidityMeasurementReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"RelativeHumidityMeasurement AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterRelativeHumidityMeasurementReadAttributeClusterRevisionWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -39199,6 +40348,30 @@ - (void)testSendClusterScenesReadAttributeNameSupportWithCompletionHandler [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterScenesReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPScenes * cluster = [[CHIPScenes alloc] initWithDevice:device endpoint:1 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = [self expectationWithDescription:@"ScenesReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Scenes AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterScenesReadAttributeClusterRevisionWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -39323,6 +40496,31 @@ - (void)testSendClusterSoftwareDiagnosticsReadAttributeCurrentHeapHighWatermarkW [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterSoftwareDiagnosticsReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPSoftwareDiagnostics * cluster = [[CHIPSoftwareDiagnostics alloc] initWithDevice:device endpoint:0 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = + [self expectationWithDescription:@"SoftwareDiagnosticsReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"SoftwareDiagnostics AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterSoftwareDiagnosticsReadAttributeFeatureMapWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -39446,6 +40644,30 @@ - (void)testSendClusterSwitchReadAttributeMultiPressMaxWithCompletionHandler [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterSwitchReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPSwitch * cluster = [[CHIPSwitch alloc] initWithDevice:device endpoint:1 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = [self expectationWithDescription:@"SwitchReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Switch AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterSwitchReadAttributeFeatureMapWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -39568,6 +40790,30 @@ - (void)testSendClusterTvChannelReadAttributeCurrentTvChannelWithCompletionHandl [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterTvChannelReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPTvChannel * cluster = [[CHIPTvChannel alloc] initWithDevice:device endpoint:1 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = [self expectationWithDescription:@"TvChannelReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"TvChannel AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterTvChannelReadAttributeClusterRevisionWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -39618,6 +40864,31 @@ - (void)testSendClusterTargetNavigatorReadAttributeTargetNavigatorListWithComple [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterTargetNavigatorReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPTargetNavigator * cluster = [[CHIPTargetNavigator alloc] initWithDevice:device endpoint:1 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = + [self expectationWithDescription:@"TargetNavigatorReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"TargetNavigator AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterTargetNavigatorReadAttributeClusterRevisionWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -39743,6 +41014,31 @@ - (void)testSendClusterTemperatureMeasurementReadAttributeToleranceWithCompletio [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterTemperatureMeasurementReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPTemperatureMeasurement * cluster = [[CHIPTemperatureMeasurement alloc] initWithDevice:device endpoint:1 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = + [self expectationWithDescription:@"TemperatureMeasurementReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"TemperatureMeasurement AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterTemperatureMeasurementReadAttributeClusterRevisionWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -39938,6 +41234,33 @@ - (void)testSendClusterThermostatUserInterfaceConfigurationWriteAttributeSchedul [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterThermostatUserInterfaceConfigurationReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPThermostatUserInterfaceConfiguration * cluster = [[CHIPThermostatUserInterfaceConfiguration alloc] initWithDevice:device + endpoint:1 + queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = + [self expectationWithDescription:@"ThermostatUserInterfaceConfigurationReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"ThermostatUserInterfaceConfiguration AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterThermostatUserInterfaceConfigurationReadAttributeClusterRevisionWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -41542,6 +42865,31 @@ - (void)testSendClusterThreadNetworkDiagnosticsReadAttributeActiveNetworkFaultsL [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterThreadNetworkDiagnosticsReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPThreadNetworkDiagnostics * cluster = [[CHIPThreadNetworkDiagnostics alloc] initWithDevice:device endpoint:0 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = + [self expectationWithDescription:@"ThreadNetworkDiagnosticsReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"ThreadNetworkDiagnostics AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterThreadNetworkDiagnosticsReadAttributeFeatureMapWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -41617,6 +42965,30 @@ - (void)testSendClusterWakeOnLanReadAttributeWakeOnLanMacAddressWithCompletionHa [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterWakeOnLanReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPWakeOnLan * cluster = [[CHIPWakeOnLan alloc] initWithDevice:device endpoint:1 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = [self expectationWithDescription:@"WakeOnLanReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"WakeOnLan AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterWakeOnLanReadAttributeClusterRevisionWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -41967,6 +43339,31 @@ - (void)testSendClusterWiFiNetworkDiagnosticsReadAttributeOverrunCountWithComple [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterWiFiNetworkDiagnosticsReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPWiFiNetworkDiagnostics * cluster = [[CHIPWiFiNetworkDiagnostics alloc] initWithDevice:device endpoint:0 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = + [self expectationWithDescription:@"WiFiNetworkDiagnosticsReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"WiFiNetworkDiagnostics AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterWiFiNetworkDiagnosticsReadAttributeFeatureMapWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); @@ -42496,6 +43893,31 @@ - (void)testSendClusterWindowCoveringReadAttributeSafetyStatusWithCompletionHand [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)testSendClusterWindowCoveringReadAttributeAttributeListWithCompletionHandler +{ + dispatch_queue_t queue = dispatch_get_main_queue(); + + XCTestExpectation * connectedExpectation = + [self expectationWithDescription:@"Wait for the commissioned device to be retrieved"]; + WaitForCommissionee(connectedExpectation, queue); + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; + + CHIPDevice * device = GetConnectedDevice(); + CHIPWindowCovering * cluster = [[CHIPWindowCovering alloc] initWithDevice:device endpoint:1 queue:queue]; + XCTAssertNotNil(cluster); + + XCTestExpectation * expectation = + [self expectationWithDescription:@"WindowCoveringReadAttributeAttributeListWithCompletionHandler"]; + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"WindowCovering AttributeList Error: %@", err); + XCTAssertEqual(err.code, 0); + [expectation fulfill]; + }]; + + [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; +} + - (void)testSendClusterWindowCoveringReadAttributeFeatureMapWithCompletionHandler { dispatch_queue_t queue = dispatch_get_main_queue(); diff --git a/src/lib/core/DataModelTypes.h b/src/lib/core/DataModelTypes.h index 8a812302698b94..406818a96abf22 100644 --- a/src/lib/core/DataModelTypes.h +++ b/src/lib/core/DataModelTypes.h @@ -47,4 +47,10 @@ static constexpr FabricIndex kUndefinedFabricIndex = 0; static constexpr EndpointId kInvalidEndpointId = 0xFFFF; static constexpr ListIndex kInvalidListIndex = 0xFFFF; // List index is a uint16 thus 0xFFFF is a invalid list index. +// ClusterId, AttributeId and EventId are MEIs, +// 0xFFFF is not a valid manufacturer code, thus 0xFFFF'FFFF is not a valid MEI. +static constexpr ClusterId kInvalidClusterId = 0xFFFF'FFFF; +static constexpr AttributeId kInvalidAttributeId = 0xFFFF'FFFF; +static constexpr EventId kInvalidEventId = 0xFFFF'FFFF; + } // namespace chip diff --git a/zzz_generated/all-clusters-app/zap-generated/CHIPClientCallbacks.cpp b/zzz_generated/all-clusters-app/zap-generated/CHIPClientCallbacks.cpp index daeade20704895..631977f0c3f393 100644 --- a/zzz_generated/all-clusters-app/zap-generated/CHIPClientCallbacks.cpp +++ b/zzz_generated/all-clusters-app/zap-generated/CHIPClientCallbacks.cpp @@ -134,6 +134,28 @@ namespace { // Singleton instance of the callbacks manager app::CHIPDeviceCallbacksMgr & gCallbacks = app::CHIPDeviceCallbacksMgr::GetInstance(); +void OtaSoftwareUpdateProviderClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, + Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + bool emberAfOtaSoftwareUpdateProviderClusterApplyUpdateResponseCallback(EndpointId endpoint, app::CommandSender * commandObj, uint8_t action, uint32_t delayedActionTime) { diff --git a/zzz_generated/all-clusters-app/zap-generated/CHIPClientCallbacks.h b/zzz_generated/all-clusters-app/zap-generated/CHIPClientCallbacks.h index 499a1924413099..60bdfb79704da0 100644 --- a/zzz_generated/all-clusters-app/zap-generated/CHIPClientCallbacks.h +++ b/zzz_generated/all-clusters-app/zap-generated/CHIPClientCallbacks.h @@ -43,3 +43,8 @@ typedef void (*OtaSoftwareUpdateProviderClusterQueryImageResponseCallback)( chip::CharSpan softwareVersionString, chip::ByteSpan updateToken, bool userConsentNeeded, chip::ByteSpan metadataForRequestor); // List specific responses +void OtaSoftwareUpdateProviderClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*OtaSoftwareUpdateProviderAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); diff --git a/zzz_generated/all-clusters-app/zap-generated/attribute-size.cpp b/zzz_generated/all-clusters-app/zap-generated/attribute-size.cpp index 8d16c148122f11..26cd5974112517 100644 --- a/zzz_generated/all-clusters-app/zap-generated/attribute-size.cpp +++ b/zzz_generated/all-clusters-app/zap-generated/attribute-size.cpp @@ -130,6 +130,78 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo entryOffset = static_cast(entryOffset + 256); break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x050E: // Account Login Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x003C: // AdministratorCommissioning Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x050D: // Application Basic Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -150,6 +222,18 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo copyListMember(dest, src, write, &entryOffset, entryLength); // INT16U break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -184,6 +268,118 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo entryOffset = static_cast(entryOffset + 34); break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0103: // Barrier Control Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0028: // Basic Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x000F: // Binary Input (Basic) Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x001E: // Binding Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0045: // Boolean State Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -253,6 +449,58 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo &entryOffset, sizeof(entry->Endpoints)); // ENDPOINT_NO break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0039: // Bridged Device Basic Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0300: // Color Control Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -300,6 +548,18 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo copyListMember(dest, src, write, &entryOffset, entryLength); // ContentLaunchStreamingType break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -361,54 +621,178 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo copyListMember(dest, src, write, &entryOffset, entryLength); // ENDPOINT_NO break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } - case 0x0040: // Fixed Label Cluster + case 0x0032: // Diagnostic Logs Cluster { uint16_t entryOffset = kSizeLengthInBytes; switch (am->attributeId) { - case 0x0000: // label list + case 0xFFFB: // AttributeList { - entryLength = 36; + entryLength = 4; if (((index - 1) * entryLength) > (am->size - entryLength)) { ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); return 0; } entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); - // Struct _LabelStruct - _LabelStruct * entry = reinterpret_cast<_LabelStruct *>(write ? src : dest); - ByteSpan labelSpanStorage(Uint8::from_const_char(entry->label.data()), entry->label.size()); // CHAR_STRING - ByteSpan * labelSpan = &labelSpanStorage; - if (CHIP_NO_ERROR != - (write ? WriteByteSpan(dest + entryOffset, 18, labelSpan) : ReadByteSpan(src + entryOffset, 18, labelSpan))) - { - ChipLogError(Zcl, "Index %" PRId32 " is invalid. Not enough remaining space", index); - return 0; - } - entryOffset = static_cast(entryOffset + 18); - ByteSpan valueSpanStorage(Uint8::from_const_char(entry->value.data()), entry->value.size()); // CHAR_STRING - ByteSpan * valueSpan = &valueSpanStorage; - if (CHIP_NO_ERROR != - (write ? WriteByteSpan(dest + entryOffset, 18, valueSpan) : ReadByteSpan(src + entryOffset, 18, valueSpan))) - { - ChipLogError(Zcl, "Index %" PRId32 " is invalid. Not enough remaining space", index); - return 0; - } - entryOffset = static_cast(entryOffset + 18); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id break; } } break; } - case 0x0030: // General Commissioning Cluster + case 0x0101: // Door Lock Cluster { uint16_t entryOffset = kSizeLengthInBytes; switch (am->attributeId) { - case 0x0001: // BasicCommissioningInfoList + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0B04: // Electrical Measurement Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0037: // Ethernet Network Diagnostics Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0040: // Fixed Label Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0x0000: // label list + { + entryLength = 36; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + // Struct _LabelStruct + _LabelStruct * entry = reinterpret_cast<_LabelStruct *>(write ? src : dest); + ByteSpan labelSpanStorage(Uint8::from_const_char(entry->label.data()), entry->label.size()); // CHAR_STRING + ByteSpan * labelSpan = &labelSpanStorage; + if (CHIP_NO_ERROR != + (write ? WriteByteSpan(dest + entryOffset, 18, labelSpan) : ReadByteSpan(src + entryOffset, 18, labelSpan))) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid. Not enough remaining space", index); + return 0; + } + entryOffset = static_cast(entryOffset + 18); + ByteSpan valueSpanStorage(Uint8::from_const_char(entry->value.data()), entry->value.size()); // CHAR_STRING + ByteSpan * valueSpan = &valueSpanStorage; + if (CHIP_NO_ERROR != + (write ? WriteByteSpan(dest + entryOffset, 18, valueSpan) : ReadByteSpan(src + entryOffset, 18, valueSpan))) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid. Not enough remaining space", index); + return 0; + } + entryOffset = static_cast(entryOffset + 18); + break; + } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0404: // Flow Measurement Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0030: // General Commissioning Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0x0001: // BasicCommissioningInfoList { entryLength = 4; if (((index - 1) * entryLength) > (am->size - entryLength)) @@ -424,6 +808,18 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo sizeof(entry->FailSafeExpiryLengthMs)); // INT32U break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -509,6 +905,18 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo copyListMember(dest, src, write, &entryOffset, entryLength); // ENUM8 break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -568,6 +976,158 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo sizeof(entry->GroupKeySecurityPolicy)); // GroupKeySecurityPolicy break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0004: // Groups Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0500: // IAS Zone Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0003: // Identify Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0400: // Illuminance Measurement Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0509: // Keypad Input Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0008: // Level Control Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0508: // Low Power Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -613,6 +1173,38 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo entryOffset = static_cast(entryOffset + 34); break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0506: // Media Playback Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -647,6 +1239,138 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo &entryOffset, sizeof(entry->SemanticTag)); // INT32U break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0031: // Network Commissioning Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0029: // OTA Software Update Provider Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x002A: // OTA Software Update Requestor Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0406: // Occupancy Sensing Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0006: // On/Off Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0007: // On/off Switch Configuration Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -709,56 +1433,172 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo (write ? WriteByteSpan(dest + entryOffset, trustedRootCertificatesRemainingSpace, trustedRootCertificatesSpan) : ReadByteSpan(src + entryOffset, trustedRootCertificatesRemainingSpace, trustedRootCertificatesSpan))) { - ChipLogError(Zcl, "Index %" PRId32 " is invalid. Not enough remaining space", index); + ChipLogError(Zcl, "Index %" PRId32 " is invalid. Not enough remaining space", index); + return 0; + } + + if (!CanCastTo(trustedRootCertificatesSpan->size())) + { + ChipLogError(Zcl, "Span size %zu is too large", trustedRootCertificatesSpan->size()); + return 0; + } + entryLength = static_cast(trustedRootCertificatesSpan->size()); + break; + } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x002F: // Power Source Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0x0012: // ActiveBatteryFaults + { + entryLength = 1; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // ENUM8 + break; + } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x002E: // Power Source Configuration Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0x0000: // Sources + { + entryLength = 1; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // INT8U + break; + } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0403: // Pressure Measurement Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); return 0; } - - if (!CanCastTo(trustedRootCertificatesSpan->size())) + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0200: // Pump Configuration and Control Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) { - ChipLogError(Zcl, "Span size %zu is too large", trustedRootCertificatesSpan->size()); + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); return 0; } - entryLength = static_cast(trustedRootCertificatesSpan->size()); + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id break; } } break; } - case 0x002F: // Power Source Cluster + case 0x0405: // Relative Humidity Measurement Cluster { uint16_t entryOffset = kSizeLengthInBytes; switch (am->attributeId) { - case 0x0012: // ActiveBatteryFaults + case 0xFFFB: // AttributeList { - entryLength = 1; + entryLength = 4; if (((index - 1) * entryLength) > (am->size - entryLength)) { ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); return 0; } entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); - copyListMember(dest, src, write, &entryOffset, entryLength); // ENUM8 + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id break; } } break; } - case 0x002E: // Power Source Configuration Cluster + case 0x0005: // Scenes Cluster { uint16_t entryOffset = kSizeLengthInBytes; switch (am->attributeId) { - case 0x0000: // Sources + case 0xFFFB: // AttributeList { - entryLength = 1; + entryLength = 4; if (((index - 1) * entryLength) > (am->size - entryLength)) { ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); return 0; } entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); - copyListMember(dest, src, write, &entryOffset, entryLength); // INT8U + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id break; } } @@ -799,6 +1639,38 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo &entryOffset, sizeof(entry->StackSize)); // INT32U break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x003B: // Switch Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -853,6 +1725,18 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo entryOffset = static_cast(entryOffset + 34); break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -885,6 +1769,38 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo entryOffset = static_cast(entryOffset + 34); break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0402: // Temperature Measurement Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -1050,6 +1966,58 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo entryLength = static_cast(listLongOctetStringSpan->size()); break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0201: // Thermostat Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0204: // Thermostat User Interface Configuration Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -1205,6 +2173,78 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo copyListMember(dest, src, write, &entryOffset, entryLength); // NetworkFault break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0503: // Wake on LAN Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0036: // WiFi Network Diagnostics Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0102: // Window Covering Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -1230,31 +2270,115 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut case 0x001F: // Access Control Cluster switch (attributeId) { - case 0x0000: // ACL - // Struct _AccessControlEntry - entryLength = 21; + case 0x0000: // ACL + // Struct _AccessControlEntry + entryLength = 21; + break; + case 0x0001: // Extension + // Struct _ExtensionEntry + entryLength = 257; + break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x050E: // Account Login Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x003C: // AdministratorCommissioning Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x050D: // Application Basic Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x050C: // Application Launcher Cluster + switch (attributeId) + { + case 0x0000: // application launcher list + // uint16_t + entryLength = 2; + break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x050B: // Audio Output Cluster + switch (attributeId) + { + case 0x0000: // audio output list + // Struct _AudioOutputInfo + entryLength = 36; + break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0103: // Barrier Control Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; break; - case 0x0001: // Extension - // Struct _ExtensionEntry - entryLength = 257; + } + break; + case 0x0028: // Basic Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; break; } break; - case 0x050C: // Application Launcher Cluster + case 0x000F: // Binary Input (Basic) Cluster switch (attributeId) { - case 0x0000: // application launcher list - // uint16_t - entryLength = 2; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; break; } break; - case 0x050B: // Audio Output Cluster + case 0x001E: // Binding Cluster switch (attributeId) { - case 0x0000: // audio output list - // Struct _AudioOutputInfo - entryLength = 36; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0045: // Boolean State Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; break; } break; @@ -1269,6 +2393,28 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _EndpointListStruct entryLength = 39; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0039: // Bridged Device Basic Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0300: // Color Control Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x050A: // Content Launcher Cluster @@ -1282,6 +2428,10 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // uint8_t entryLength = 1; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x001D: // Descriptor Cluster @@ -1303,6 +2453,46 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // chip::EndpointId entryLength = 2; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0032: // Diagnostic Logs Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0101: // Door Lock Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0B04: // Electrical Measurement Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0037: // Ethernet Network Diagnostics Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0040: // Fixed Label Cluster @@ -1312,6 +2502,19 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _LabelStruct entryLength = 36; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0404: // Flow Measurement Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0030: // General Commissioning Cluster @@ -1321,6 +2524,10 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _BasicCommissioningInfoType entryLength = 4; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0033: // General Diagnostics Cluster @@ -1342,6 +2549,10 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // uint8_t entryLength = 1; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x003F: // Group Key Management Cluster @@ -1355,6 +2566,73 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _GroupKey entryLength = 31; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0004: // Groups Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0500: // IAS Zone Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0003: // Identify Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0400: // Illuminance Measurement Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0509: // Keypad Input Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0008: // Level Control Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0508: // Low Power Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0507: // Media Input Cluster @@ -1364,6 +2642,19 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _MediaInputInfo entryLength = 70; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0506: // Media Playback Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0050: // Mode Select Cluster @@ -1373,6 +2664,64 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _ModeOptionStruct entryLength = 39; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0031: // Network Commissioning Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0029: // OTA Software Update Provider Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x002A: // OTA Software Update Requestor Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0406: // Occupancy Sensing Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0006: // On/Off Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0007: // On/off Switch Configuration Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x003E: // Operational Credentials Cluster @@ -1386,6 +2735,10 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // chip::ByteSpan return GetByteSpanOffsetFromIndex(buffer, 402, entryCount); break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x002F: // Power Source Cluster @@ -1395,6 +2748,10 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // uint8_t entryLength = 1; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x002E: // Power Source Configuration Cluster @@ -1404,6 +2761,46 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // uint8_t entryLength = 1; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0403: // Pressure Measurement Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0200: // Pump Configuration and Control Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0405: // Relative Humidity Measurement Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0005: // Scenes Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0034: // Software Diagnostics Cluster @@ -1413,6 +2810,19 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _ThreadMetrics entryLength = 30; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x003B: // Switch Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0504: // TV Channel Cluster @@ -1422,6 +2832,10 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _TvChannelInfo entryLength = 106; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0505: // Target Navigator Cluster @@ -1431,6 +2845,19 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _NavigateTargetTargetInfo entryLength = 35; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0402: // Temperature Measurement Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x050F: // Test Cluster Cluster @@ -1456,6 +2883,28 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // chip::ByteSpan return GetByteSpanOffsetFromIndex(buffer, 1002, entryCount); break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0201: // Thermostat Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0204: // Thermostat User Interface Configuration Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0035: // Thread Network Diagnostics Cluster @@ -1481,6 +2930,37 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // uint8_t entryLength = 1; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0503: // Wake on LAN Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0036: // WiFi Network Diagnostics Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0102: // Window Covering Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; } diff --git a/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h b/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h index 73f6c3d1d9845d..e33beb1acab342 100644 --- a/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h +++ b/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h @@ -52,6 +52,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MainsVoltage + namespace MainsFrequency { struct TypeInfo { @@ -64,6 +65,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MainsFrequency + namespace MainsAlarmMask { struct TypeInfo { @@ -76,6 +78,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MainsAlarmMask + namespace MainsVoltageMinThreshold { struct TypeInfo { @@ -88,6 +91,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MainsVoltageMinThreshold + namespace MainsVoltageMaxThreshold { struct TypeInfo { @@ -100,6 +104,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MainsVoltageMaxThreshold + namespace MainsVoltageDwellTrip { struct TypeInfo { @@ -112,6 +117,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MainsVoltageDwellTrip + namespace BatteryVoltage { struct TypeInfo { @@ -124,6 +130,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BatteryVoltage + namespace BatteryPercentageRemaining { struct TypeInfo { @@ -136,6 +143,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BatteryPercentageRemaining + namespace BatteryManufacturer { struct TypeInfo { @@ -148,6 +156,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BatteryManufacturer + namespace BatterySize { struct TypeInfo { @@ -160,6 +169,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BatterySize + namespace BatteryAhrRating { struct TypeInfo { @@ -172,6 +182,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BatteryAhrRating + namespace BatteryQuantity { struct TypeInfo { @@ -184,6 +195,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BatteryQuantity + namespace BatteryRatedVoltage { struct TypeInfo { @@ -196,6 +208,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BatteryRatedVoltage + namespace BatteryAlarmMask { struct TypeInfo { @@ -208,6 +221,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BatteryAlarmMask + namespace BatteryVoltageMinThreshold { struct TypeInfo { @@ -220,6 +234,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BatteryVoltageMinThreshold + namespace BatteryVoltageThreshold1 { struct TypeInfo { @@ -232,6 +247,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BatteryVoltageThreshold1 + namespace BatteryVoltageThreshold2 { struct TypeInfo { @@ -244,6 +260,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BatteryVoltageThreshold2 + namespace BatteryVoltageThreshold3 { struct TypeInfo { @@ -256,6 +273,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BatteryVoltageThreshold3 + namespace BatteryPercentageMinThreshold { struct TypeInfo { @@ -268,6 +286,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BatteryPercentageMinThreshold + namespace BatteryPercentageThreshold1 { struct TypeInfo { @@ -280,6 +299,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BatteryPercentageThreshold1 + namespace BatteryPercentageThreshold2 { struct TypeInfo { @@ -292,6 +312,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BatteryPercentageThreshold2 + namespace BatteryPercentageThreshold3 { struct TypeInfo { @@ -304,6 +325,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BatteryPercentageThreshold3 + namespace BatteryAlarmState { struct TypeInfo { @@ -316,6 +338,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BatteryAlarmState + namespace Battery2Voltage { struct TypeInfo { @@ -328,6 +351,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Battery2Voltage + namespace Battery2PercentageRemaining { struct TypeInfo { @@ -340,6 +364,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Battery2PercentageRemaining + namespace Battery2Manufacturer { struct TypeInfo { @@ -352,6 +377,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Battery2Manufacturer + namespace Battery2Size { struct TypeInfo { @@ -364,6 +390,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Battery2Size + namespace Battery2AhrRating { struct TypeInfo { @@ -376,6 +403,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Battery2AhrRating + namespace Battery2Quantity { struct TypeInfo { @@ -388,6 +416,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Battery2Quantity + namespace Battery2RatedVoltage { struct TypeInfo { @@ -400,6 +429,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Battery2RatedVoltage + namespace Battery2AlarmMask { struct TypeInfo { @@ -412,6 +442,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Battery2AlarmMask + namespace Battery2VoltageMinThreshold { struct TypeInfo { @@ -424,6 +455,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Battery2VoltageMinThreshold + namespace Battery2VoltageThreshold1 { struct TypeInfo { @@ -436,6 +468,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Battery2VoltageThreshold1 + namespace Battery2VoltageThreshold2 { struct TypeInfo { @@ -448,6 +481,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Battery2VoltageThreshold2 + namespace Battery2VoltageThreshold3 { struct TypeInfo { @@ -460,6 +494,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Battery2VoltageThreshold3 + namespace Battery2PercentageMinThreshold { struct TypeInfo { @@ -472,6 +507,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Battery2PercentageMinThreshold + namespace Battery2PercentageThreshold1 { struct TypeInfo { @@ -484,6 +520,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Battery2PercentageThreshold1 + namespace Battery2PercentageThreshold2 { struct TypeInfo { @@ -496,6 +533,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Battery2PercentageThreshold2 + namespace Battery2PercentageThreshold3 { struct TypeInfo { @@ -508,6 +546,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Battery2PercentageThreshold3 + namespace Battery2AlarmState { struct TypeInfo { @@ -520,6 +559,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Battery2AlarmState + namespace Battery3Voltage { struct TypeInfo { @@ -532,6 +572,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Battery3Voltage + namespace Battery3PercentageRemaining { struct TypeInfo { @@ -544,6 +585,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Battery3PercentageRemaining + namespace Battery3Manufacturer { struct TypeInfo { @@ -556,6 +598,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Battery3Manufacturer + namespace Battery3Size { struct TypeInfo { @@ -568,6 +611,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Battery3Size + namespace Battery3AhrRating { struct TypeInfo { @@ -580,6 +624,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Battery3AhrRating + namespace Battery3Quantity { struct TypeInfo { @@ -592,6 +637,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Battery3Quantity + namespace Battery3RatedVoltage { struct TypeInfo { @@ -604,6 +650,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Battery3RatedVoltage + namespace Battery3AlarmMask { struct TypeInfo { @@ -616,6 +663,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Battery3AlarmMask + namespace Battery3VoltageMinThreshold { struct TypeInfo { @@ -628,6 +676,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Battery3VoltageMinThreshold + namespace Battery3VoltageThreshold1 { struct TypeInfo { @@ -640,6 +689,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Battery3VoltageThreshold1 + namespace Battery3VoltageThreshold2 { struct TypeInfo { @@ -652,6 +702,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Battery3VoltageThreshold2 + namespace Battery3VoltageThreshold3 { struct TypeInfo { @@ -664,6 +715,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Battery3VoltageThreshold3 + namespace Battery3PercentageMinThreshold { struct TypeInfo { @@ -676,6 +728,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Battery3PercentageMinThreshold + namespace Battery3PercentageThreshold1 { struct TypeInfo { @@ -688,6 +741,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Battery3PercentageThreshold1 + namespace Battery3PercentageThreshold2 { struct TypeInfo { @@ -700,6 +754,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Battery3PercentageThreshold2 + namespace Battery3PercentageThreshold3 { struct TypeInfo { @@ -712,6 +767,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Battery3PercentageThreshold3 + namespace Battery3AlarmState { struct TypeInfo { @@ -724,6 +780,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Battery3AlarmState + namespace FeatureMap { struct TypeInfo { @@ -736,6 +793,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -748,6 +806,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::PowerConfiguration::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace PowerConfiguration namespace DeviceTemperatureConfiguration { @@ -765,6 +836,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace CurrentTemperature + namespace MinTempExperienced { struct TypeInfo { @@ -777,6 +849,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinTempExperienced + namespace MaxTempExperienced { struct TypeInfo { @@ -789,6 +862,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxTempExperienced + namespace OverTempTotalDwell { struct TypeInfo { @@ -801,6 +875,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace OverTempTotalDwell + namespace DeviceTempAlarmMask { struct TypeInfo { @@ -813,6 +888,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace DeviceTempAlarmMask + namespace LowTempThreshold { struct TypeInfo { @@ -825,6 +901,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace LowTempThreshold + namespace HighTempThreshold { struct TypeInfo { @@ -837,6 +914,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace HighTempThreshold + namespace LowTempDwellTripPoint { struct TypeInfo { @@ -849,6 +927,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace LowTempDwellTripPoint + namespace HighTempDwellTripPoint { struct TypeInfo { @@ -861,6 +940,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace HighTempDwellTripPoint + namespace FeatureMap { struct TypeInfo { @@ -873,6 +953,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -885,6 +966,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::DeviceTemperatureConfiguration::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace DeviceTemperatureConfiguration namespace Identify { @@ -1100,6 +1194,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace IdentifyTime + namespace IdentifyType { struct TypeInfo { @@ -1112,6 +1207,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace IdentifyType + namespace FeatureMap { struct TypeInfo { @@ -1124,6 +1220,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -1136,6 +1233,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::Identify::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace Identify namespace Groups { @@ -1548,6 +1658,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NameSupport + namespace FeatureMap { struct TypeInfo { @@ -1560,6 +1671,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -1572,6 +1684,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::Groups::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace Groups namespace Scenes { @@ -2460,6 +2585,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace SceneCount + namespace CurrentScene { struct TypeInfo { @@ -2472,6 +2598,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace CurrentScene + namespace CurrentGroup { struct TypeInfo { @@ -2484,6 +2611,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace CurrentGroup + namespace SceneValid { struct TypeInfo { @@ -2496,6 +2624,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace SceneValid + namespace NameSupport { struct TypeInfo { @@ -2508,6 +2637,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NameSupport + namespace LastConfiguredBy { struct TypeInfo { @@ -2520,6 +2650,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace LastConfiguredBy + namespace FeatureMap { struct TypeInfo { @@ -2532,6 +2663,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -2544,6 +2676,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::Scenes::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace Scenes namespace OnOff { @@ -2826,6 +2971,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace OnOff + namespace GlobalSceneControl { struct TypeInfo { @@ -2838,6 +2984,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace GlobalSceneControl + namespace OnTime { struct TypeInfo { @@ -2850,6 +2997,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace OnTime + namespace OffWaitTime { struct TypeInfo { @@ -2862,6 +3010,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace OffWaitTime + namespace StartUpOnOff { struct TypeInfo { @@ -2874,6 +3023,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace StartUpOnOff + namespace FeatureMap { struct TypeInfo { @@ -2886,6 +3036,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -2898,6 +3049,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::OnOff::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace OnOff namespace OnOffSwitchConfiguration { @@ -2915,6 +3079,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace SwitchType + namespace SwitchActions { struct TypeInfo { @@ -2927,6 +3092,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace SwitchActions + namespace FeatureMap { struct TypeInfo { @@ -2939,6 +3105,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -2951,6 +3118,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::OnOffSwitchConfiguration::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace OnOffSwitchConfiguration namespace LevelControl { @@ -3337,6 +3517,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace CurrentLevel + namespace RemainingTime { struct TypeInfo { @@ -3349,6 +3530,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RemainingTime + namespace MinLevel { struct TypeInfo { @@ -3361,6 +3543,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinLevel + namespace MaxLevel { struct TypeInfo { @@ -3373,6 +3556,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxLevel + namespace CurrentFrequency { struct TypeInfo { @@ -3385,6 +3569,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace CurrentFrequency + namespace MinFrequency { struct TypeInfo { @@ -3397,6 +3582,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinFrequency + namespace MaxFrequency { struct TypeInfo { @@ -3409,6 +3595,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxFrequency + namespace Options { struct TypeInfo { @@ -3421,6 +3608,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Options + namespace OnOffTransitionTime { struct TypeInfo { @@ -3433,6 +3621,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace OnOffTransitionTime + namespace OnLevel { struct TypeInfo { @@ -3445,6 +3634,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace OnLevel + namespace OnTransitionTime { struct TypeInfo { @@ -3457,6 +3647,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace OnTransitionTime + namespace OffTransitionTime { struct TypeInfo { @@ -3469,6 +3660,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace OffTransitionTime + namespace DefaultMoveRate { struct TypeInfo { @@ -3481,6 +3673,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace DefaultMoveRate + namespace StartUpCurrentLevel { struct TypeInfo { @@ -3493,6 +3686,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace StartUpCurrentLevel + namespace FeatureMap { struct TypeInfo { @@ -3505,6 +3699,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -3517,6 +3712,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::LevelControl::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace LevelControl namespace Alarms { @@ -3767,6 +3975,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AlarmCount + namespace FeatureMap { struct TypeInfo { @@ -3779,6 +3988,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -3791,6 +4001,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::Alarms::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace Alarms namespace Time { @@ -3808,6 +4031,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Time + namespace TimeStatus { struct TypeInfo { @@ -3820,6 +4044,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace TimeStatus + namespace TimeZone { struct TypeInfo { @@ -3832,6 +4057,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace TimeZone + namespace DstStart { struct TypeInfo { @@ -3844,6 +4070,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace DstStart + namespace DstEnd { struct TypeInfo { @@ -3856,6 +4083,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace DstEnd + namespace DstShift { struct TypeInfo { @@ -3868,6 +4096,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace DstShift + namespace StandardTime { struct TypeInfo { @@ -3880,6 +4109,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace StandardTime + namespace LocalTime { struct TypeInfo { @@ -3892,6 +4122,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace LocalTime + namespace LastSetTime { struct TypeInfo { @@ -3904,6 +4135,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace LastSetTime + namespace ValidUntilTime { struct TypeInfo { @@ -3916,6 +4148,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ValidUntilTime + namespace FeatureMap { struct TypeInfo { @@ -3928,6 +4161,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -3940,6 +4174,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::Time::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace Time namespace BinaryInputBasic { @@ -3957,6 +4204,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ActiveText + namespace Description { struct TypeInfo { @@ -3969,6 +4217,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Description + namespace InactiveText { struct TypeInfo { @@ -3981,6 +4230,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace InactiveText + namespace OutOfService { struct TypeInfo { @@ -3993,6 +4243,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace OutOfService + namespace Polarity { struct TypeInfo { @@ -4005,6 +4256,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Polarity + namespace PresentValue { struct TypeInfo { @@ -4017,6 +4269,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace PresentValue + namespace Reliability { struct TypeInfo { @@ -4029,6 +4282,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Reliability + namespace StatusFlags { struct TypeInfo { @@ -4041,6 +4295,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace StatusFlags + namespace ApplicationType { struct TypeInfo { @@ -4053,6 +4308,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ApplicationType + namespace FeatureMap { struct TypeInfo { @@ -4065,6 +4321,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -4077,6 +4334,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::BinaryInputBasic::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace BinaryInputBasic namespace PowerProfile { @@ -5036,6 +5306,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace TotalProfileNum + namespace MultipleScheduling { struct TypeInfo { @@ -5048,6 +5319,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MultipleScheduling + namespace EnergyFormatting { struct TypeInfo { @@ -5060,6 +5332,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace EnergyFormatting + namespace EnergyRemote { struct TypeInfo { @@ -5072,6 +5345,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace EnergyRemote + namespace ScheduleMode { struct TypeInfo { @@ -5084,6 +5358,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ScheduleMode + namespace FeatureMap { struct TypeInfo { @@ -5096,6 +5371,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -5108,6 +5384,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::PowerProfile::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace PowerProfile namespace ApplianceControl { @@ -5485,6 +5774,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace StartTime + namespace FinishTime { struct TypeInfo { @@ -5497,6 +5787,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FinishTime + namespace RemainingTime { struct TypeInfo { @@ -5509,6 +5800,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RemainingTime + namespace FeatureMap { struct TypeInfo { @@ -5521,6 +5813,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -5533,6 +5826,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::ApplianceControl::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace ApplianceControl namespace PulseWidthModulation { @@ -5550,6 +5856,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -5562,6 +5869,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::PulseWidthModulation::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace PulseWidthModulation namespace Descriptor { @@ -5602,6 +5922,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace DeviceList + namespace ServerList { struct TypeInfo { @@ -5614,6 +5935,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ServerList + namespace ClientList { struct TypeInfo { @@ -5626,6 +5948,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClientList + namespace PartsList { struct TypeInfo { @@ -5638,6 +5961,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace PartsList + namespace FeatureMap { struct TypeInfo { @@ -5650,6 +5974,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -5662,6 +5987,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::Descriptor::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace Descriptor namespace Binding { @@ -5779,6 +6117,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -5791,6 +6130,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::Binding::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace Binding namespace AccessControl { @@ -5903,6 +6255,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Acl + namespace Extension { struct TypeInfo { @@ -5915,6 +6268,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Extension + namespace FeatureMap { struct TypeInfo { @@ -5927,6 +6281,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -5939,6 +6294,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::AccessControl::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace AccessControl namespace PollControl { @@ -6144,6 +6512,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace CheckInInterval + namespace LongPollInterval { struct TypeInfo { @@ -6156,6 +6525,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace LongPollInterval + namespace ShortPollInterval { struct TypeInfo { @@ -6168,6 +6538,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ShortPollInterval + namespace FastPollTimeout { struct TypeInfo { @@ -6180,6 +6551,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FastPollTimeout + namespace CheckInIntervalMin { struct TypeInfo { @@ -6192,6 +6564,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace CheckInIntervalMin + namespace LongPollIntervalMin { struct TypeInfo { @@ -6204,6 +6577,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace LongPollIntervalMin + namespace FastPollTimeoutMax { struct TypeInfo { @@ -6216,6 +6590,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FastPollTimeoutMax + namespace FeatureMap { struct TypeInfo { @@ -6228,6 +6603,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -6240,6 +6616,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::PollControl::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace PollControl namespace BridgedActions { @@ -6871,6 +7260,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ActionList + namespace EndpointList { struct TypeInfo { @@ -6883,6 +7273,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace EndpointList + namespace SetupUrl { struct TypeInfo { @@ -6895,6 +7286,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace SetupUrl + namespace FeatureMap { struct TypeInfo { @@ -6907,6 +7299,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -6919,6 +7312,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::BridgedActions::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace BridgedActions namespace Basic { @@ -7076,6 +7482,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace InteractionModelVersion + namespace VendorName { struct TypeInfo { @@ -7088,6 +7495,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace VendorName + namespace VendorID { struct TypeInfo { @@ -7100,6 +7508,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace VendorID + namespace ProductName { struct TypeInfo { @@ -7112,6 +7521,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ProductName + namespace ProductID { struct TypeInfo { @@ -7124,6 +7534,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ProductID + namespace NodeLabel { struct TypeInfo { @@ -7136,6 +7547,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NodeLabel + namespace Location { struct TypeInfo { @@ -7148,6 +7560,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Location + namespace HardwareVersion { struct TypeInfo { @@ -7160,6 +7573,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace HardwareVersion + namespace HardwareVersionString { struct TypeInfo { @@ -7172,6 +7586,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace HardwareVersionString + namespace SoftwareVersion { struct TypeInfo { @@ -7184,6 +7599,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace SoftwareVersion + namespace SoftwareVersionString { struct TypeInfo { @@ -7196,6 +7612,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace SoftwareVersionString + namespace ManufacturingDate { struct TypeInfo { @@ -7208,6 +7625,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ManufacturingDate + namespace PartNumber { struct TypeInfo { @@ -7220,6 +7638,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace PartNumber + namespace ProductURL { struct TypeInfo { @@ -7232,6 +7651,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ProductURL + namespace ProductLabel { struct TypeInfo { @@ -7244,6 +7664,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ProductLabel + namespace SerialNumber { struct TypeInfo { @@ -7256,6 +7677,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace SerialNumber + namespace LocalConfigDisabled { struct TypeInfo { @@ -7268,6 +7690,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace LocalConfigDisabled + namespace Reachable { struct TypeInfo { @@ -7280,6 +7703,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Reachable + namespace UniqueID { struct TypeInfo { @@ -7292,6 +7716,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace UniqueID + namespace FeatureMap { struct TypeInfo { @@ -7304,6 +7729,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -7316,6 +7742,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::Basic::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes namespace Events { namespace StartUp { @@ -7741,6 +8180,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -7753,6 +8193,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::OtaSoftwareUpdateProvider::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace OtaSoftwareUpdateProvider namespace OtaSoftwareUpdateRequestor { @@ -7871,6 +8324,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace DefaultOtaProvider + namespace UpdatePossible { struct TypeInfo { @@ -7883,6 +8337,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace UpdatePossible + namespace FeatureMap { struct TypeInfo { @@ -7895,6 +8350,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -7907,6 +8363,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::OtaSoftwareUpdateRequestor::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes namespace Events { namespace StateTransition { @@ -8046,6 +8515,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -8058,6 +8528,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::LocalizationConfiguration::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace LocalizationConfiguration namespace LocalizationTimeFormat { @@ -8075,6 +8558,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -8087,6 +8571,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::LocalizationTimeFormat::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace LocalizationTimeFormat namespace LocalizationUnit { @@ -8104,6 +8601,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -8116,6 +8614,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::LocalizationUnit::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace LocalizationUnit namespace PowerSourceConfiguration { @@ -8133,6 +8644,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Sources + namespace FeatureMap { struct TypeInfo { @@ -8145,6 +8657,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -8157,6 +8670,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::PowerSourceConfiguration::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace PowerSourceConfiguration namespace PowerSource { @@ -8174,6 +8700,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Status + namespace Order { struct TypeInfo { @@ -8186,6 +8713,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Order + namespace Description { struct TypeInfo { @@ -8198,6 +8726,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Description + namespace WiredAssessedInputVoltage { struct TypeInfo { @@ -8210,6 +8739,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace WiredAssessedInputVoltage + namespace WiredAssessedInputFrequency { struct TypeInfo { @@ -8222,6 +8752,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace WiredAssessedInputFrequency + namespace WiredCurrentType { struct TypeInfo { @@ -8234,6 +8765,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace WiredCurrentType + namespace WiredAssessedCurrent { struct TypeInfo { @@ -8246,6 +8778,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace WiredAssessedCurrent + namespace WiredNominalVoltage { struct TypeInfo { @@ -8258,6 +8791,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace WiredNominalVoltage + namespace WiredMaximumCurrent { struct TypeInfo { @@ -8270,6 +8804,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace WiredMaximumCurrent + namespace WiredPresent { struct TypeInfo { @@ -8282,6 +8817,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace WiredPresent + namespace ActiveWiredFaults { struct TypeInfo { @@ -8294,6 +8830,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ActiveWiredFaults + namespace BatteryVoltage { struct TypeInfo { @@ -8306,6 +8843,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BatteryVoltage + namespace BatteryPercentRemaining { struct TypeInfo { @@ -8318,6 +8856,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BatteryPercentRemaining + namespace BatteryTimeRemaining { struct TypeInfo { @@ -8330,6 +8869,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BatteryTimeRemaining + namespace BatteryChargeLevel { struct TypeInfo { @@ -8342,6 +8882,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BatteryChargeLevel + namespace BatteryReplacementNeeded { struct TypeInfo { @@ -8354,6 +8895,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BatteryReplacementNeeded + namespace BatteryReplaceability { struct TypeInfo { @@ -8366,6 +8908,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BatteryReplaceability + namespace BatteryPresent { struct TypeInfo { @@ -8378,6 +8921,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BatteryPresent + namespace ActiveBatteryFaults { struct TypeInfo { @@ -8390,6 +8934,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ActiveBatteryFaults + namespace BatteryReplacementDescription { struct TypeInfo { @@ -8402,6 +8947,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BatteryReplacementDescription + namespace BatteryCommonDesignation { struct TypeInfo { @@ -8414,6 +8960,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BatteryCommonDesignation + namespace BatteryANSIDesignation { struct TypeInfo { @@ -8426,6 +8973,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BatteryANSIDesignation + namespace BatteryIECDesignation { struct TypeInfo { @@ -8438,6 +8986,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BatteryIECDesignation + namespace BatteryApprovedChemistry { struct TypeInfo { @@ -8450,6 +8999,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BatteryApprovedChemistry + namespace BatteryCapacity { struct TypeInfo { @@ -8462,6 +9012,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BatteryCapacity + namespace BatteryQuantity { struct TypeInfo { @@ -8474,6 +9025,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BatteryQuantity + namespace BatteryChargeState { struct TypeInfo { @@ -8486,6 +9038,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BatteryChargeState + namespace BatteryTimeToFullCharge { struct TypeInfo { @@ -8498,6 +9051,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BatteryTimeToFullCharge + namespace BatteryFunctionalWhileCharging { struct TypeInfo { @@ -8510,6 +9064,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BatteryFunctionalWhileCharging + namespace BatteryChargingCurrent { struct TypeInfo { @@ -8522,6 +9077,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BatteryChargingCurrent + namespace ActiveBatteryChargeFaults { struct TypeInfo { @@ -8534,6 +9090,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ActiveBatteryChargeFaults + namespace FeatureMap { struct TypeInfo { @@ -8546,6 +9103,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -8558,6 +9116,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::PowerSource::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace PowerSource namespace GeneralCommissioning { @@ -8867,6 +9438,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Breadcrumb + namespace BasicCommissioningInfoList { struct TypeInfo { @@ -8879,6 +9451,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BasicCommissioningInfoList + namespace RegulatoryConfig { struct TypeInfo { @@ -8891,6 +9464,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RegulatoryConfig + namespace LocationCapability { struct TypeInfo { @@ -8903,6 +9477,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace LocationCapability + namespace FeatureMap { struct TypeInfo { @@ -8915,6 +9490,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -8927,6 +9503,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::GeneralCommissioning::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace GeneralCommissioning namespace NetworkCommissioning { @@ -9705,6 +10294,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -9717,6 +10307,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::NetworkCommissioning::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace NetworkCommissioning namespace DiagnosticLogs { @@ -9853,6 +10456,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -9865,6 +10469,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::DiagnosticLogs::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace DiagnosticLogs namespace GeneralDiagnostics { @@ -9997,6 +10614,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NetworkInterfaces + namespace RebootCount { struct TypeInfo { @@ -10009,6 +10627,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RebootCount + namespace UpTime { struct TypeInfo { @@ -10021,6 +10640,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace UpTime + namespace TotalOperationalHours { struct TypeInfo { @@ -10033,6 +10653,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace TotalOperationalHours + namespace BootReasons { struct TypeInfo { @@ -10045,6 +10666,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BootReasons + namespace ActiveHardwareFaults { struct TypeInfo { @@ -10057,6 +10679,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ActiveHardwareFaults + namespace ActiveRadioFaults { struct TypeInfo { @@ -10069,6 +10692,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ActiveRadioFaults + namespace ActiveNetworkFaults { struct TypeInfo { @@ -10081,6 +10705,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ActiveNetworkFaults + namespace FeatureMap { struct TypeInfo { @@ -10093,6 +10718,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -10105,6 +10731,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::GeneralDiagnostics::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes namespace Events { namespace HardwareFaultChange { @@ -10357,6 +10996,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ThreadMetrics + namespace CurrentHeapFree { struct TypeInfo { @@ -10369,6 +11009,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace CurrentHeapFree + namespace CurrentHeapUsed { struct TypeInfo { @@ -10381,6 +11022,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace CurrentHeapUsed + namespace CurrentHeapHighWatermark { struct TypeInfo { @@ -10393,6 +11035,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace CurrentHeapHighWatermark + namespace FeatureMap { struct TypeInfo { @@ -10405,6 +11048,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -10417,6 +11061,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::SoftwareDiagnostics::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes namespace Events { namespace SoftwareFault { @@ -10684,6 +11341,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Channel + namespace RoutingRole { struct TypeInfo { @@ -10696,6 +11354,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RoutingRole + namespace NetworkName { struct TypeInfo { @@ -10708,6 +11367,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NetworkName + namespace PanId { struct TypeInfo { @@ -10720,6 +11380,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace PanId + namespace ExtendedPanId { struct TypeInfo { @@ -10732,6 +11393,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ExtendedPanId + namespace MeshLocalPrefix { struct TypeInfo { @@ -10744,6 +11406,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MeshLocalPrefix + namespace OverrunCount { struct TypeInfo { @@ -10756,6 +11419,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace OverrunCount + namespace NeighborTableList { struct TypeInfo { @@ -10768,6 +11432,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NeighborTableList + namespace RouteTableList { struct TypeInfo { @@ -10780,6 +11445,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RouteTableList + namespace PartitionId { struct TypeInfo { @@ -10792,6 +11458,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace PartitionId + namespace Weighting { struct TypeInfo { @@ -10804,6 +11471,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Weighting + namespace DataVersion { struct TypeInfo { @@ -10816,6 +11484,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace DataVersion + namespace StableDataVersion { struct TypeInfo { @@ -10828,6 +11497,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace StableDataVersion + namespace LeaderRouterId { struct TypeInfo { @@ -10840,6 +11510,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace LeaderRouterId + namespace DetachedRoleCount { struct TypeInfo { @@ -10852,6 +11523,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace DetachedRoleCount + namespace ChildRoleCount { struct TypeInfo { @@ -10864,6 +11536,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ChildRoleCount + namespace RouterRoleCount { struct TypeInfo { @@ -10876,6 +11549,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RouterRoleCount + namespace LeaderRoleCount { struct TypeInfo { @@ -10888,6 +11562,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace LeaderRoleCount + namespace AttachAttemptCount { struct TypeInfo { @@ -10900,6 +11575,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AttachAttemptCount + namespace PartitionIdChangeCount { struct TypeInfo { @@ -10912,6 +11588,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace PartitionIdChangeCount + namespace BetterPartitionAttachAttemptCount { struct TypeInfo { @@ -10924,6 +11601,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BetterPartitionAttachAttemptCount + namespace ParentChangeCount { struct TypeInfo { @@ -10936,6 +11614,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ParentChangeCount + namespace TxTotalCount { struct TypeInfo { @@ -10948,6 +11627,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace TxTotalCount + namespace TxUnicastCount { struct TypeInfo { @@ -10960,6 +11640,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace TxUnicastCount + namespace TxBroadcastCount { struct TypeInfo { @@ -10972,6 +11653,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace TxBroadcastCount + namespace TxAckRequestedCount { struct TypeInfo { @@ -10984,6 +11666,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace TxAckRequestedCount + namespace TxAckedCount { struct TypeInfo { @@ -10996,6 +11679,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace TxAckedCount + namespace TxNoAckRequestedCount { struct TypeInfo { @@ -11008,6 +11692,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace TxNoAckRequestedCount + namespace TxDataCount { struct TypeInfo { @@ -11020,6 +11705,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace TxDataCount + namespace TxDataPollCount { struct TypeInfo { @@ -11032,6 +11718,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace TxDataPollCount + namespace TxBeaconCount { struct TypeInfo { @@ -11044,6 +11731,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace TxBeaconCount + namespace TxBeaconRequestCount { struct TypeInfo { @@ -11056,6 +11744,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace TxBeaconRequestCount + namespace TxOtherCount { struct TypeInfo { @@ -11068,6 +11757,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace TxOtherCount + namespace TxRetryCount { struct TypeInfo { @@ -11080,6 +11770,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace TxRetryCount + namespace TxDirectMaxRetryExpiryCount { struct TypeInfo { @@ -11092,6 +11783,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace TxDirectMaxRetryExpiryCount + namespace TxIndirectMaxRetryExpiryCount { struct TypeInfo { @@ -11104,6 +11796,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace TxIndirectMaxRetryExpiryCount + namespace TxErrCcaCount { struct TypeInfo { @@ -11116,6 +11809,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace TxErrCcaCount + namespace TxErrAbortCount { struct TypeInfo { @@ -11128,6 +11822,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace TxErrAbortCount + namespace TxErrBusyChannelCount { struct TypeInfo { @@ -11140,6 +11835,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace TxErrBusyChannelCount + namespace RxTotalCount { struct TypeInfo { @@ -11152,6 +11848,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RxTotalCount + namespace RxUnicastCount { struct TypeInfo { @@ -11164,6 +11861,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RxUnicastCount + namespace RxBroadcastCount { struct TypeInfo { @@ -11176,6 +11874,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RxBroadcastCount + namespace RxDataCount { struct TypeInfo { @@ -11188,6 +11887,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RxDataCount + namespace RxDataPollCount { struct TypeInfo { @@ -11200,6 +11900,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RxDataPollCount + namespace RxBeaconCount { struct TypeInfo { @@ -11212,6 +11913,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RxBeaconCount + namespace RxBeaconRequestCount { struct TypeInfo { @@ -11224,6 +11926,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RxBeaconRequestCount + namespace RxOtherCount { struct TypeInfo { @@ -11236,6 +11939,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RxOtherCount + namespace RxAddressFilteredCount { struct TypeInfo { @@ -11248,6 +11952,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RxAddressFilteredCount + namespace RxDestAddrFilteredCount { struct TypeInfo { @@ -11260,6 +11965,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RxDestAddrFilteredCount + namespace RxDuplicatedCount { struct TypeInfo { @@ -11272,6 +11978,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RxDuplicatedCount + namespace RxErrNoFrameCount { struct TypeInfo { @@ -11284,6 +11991,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RxErrNoFrameCount + namespace RxErrUnknownNeighborCount { struct TypeInfo { @@ -11296,6 +12004,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RxErrUnknownNeighborCount + namespace RxErrInvalidSrcAddrCount { struct TypeInfo { @@ -11308,6 +12017,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RxErrInvalidSrcAddrCount + namespace RxErrSecCount { struct TypeInfo { @@ -11320,6 +12030,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RxErrSecCount + namespace RxErrFcsCount { struct TypeInfo { @@ -11332,6 +12043,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RxErrFcsCount + namespace RxErrOtherCount { struct TypeInfo { @@ -11344,6 +12056,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RxErrOtherCount + namespace ActiveTimestamp { struct TypeInfo { @@ -11356,6 +12069,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ActiveTimestamp + namespace PendingTimestamp { struct TypeInfo { @@ -11368,6 +12082,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace PendingTimestamp + namespace Delay { struct TypeInfo { @@ -11380,6 +12095,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Delay + namespace SecurityPolicy { struct TypeInfo { @@ -11392,6 +12108,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace SecurityPolicy + namespace ChannelMask { struct TypeInfo { @@ -11404,6 +12121,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ChannelMask + namespace OperationalDatasetComponents { struct TypeInfo { @@ -11416,6 +12134,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace OperationalDatasetComponents + namespace ActiveNetworkFaultsList { struct TypeInfo { @@ -11428,6 +12147,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ActiveNetworkFaultsList + namespace FeatureMap { struct TypeInfo { @@ -11440,6 +12160,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -11452,6 +12173,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::ThreadNetworkDiagnostics::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes namespace Events { namespace ConnectionStatus { @@ -11591,6 +12325,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Bssid + namespace SecurityType { struct TypeInfo { @@ -11603,6 +12338,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace SecurityType + namespace WiFiVersion { struct TypeInfo { @@ -11615,6 +12351,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace WiFiVersion + namespace ChannelNumber { struct TypeInfo { @@ -11627,6 +12364,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ChannelNumber + namespace Rssi { struct TypeInfo { @@ -11639,6 +12377,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Rssi + namespace BeaconLostCount { struct TypeInfo { @@ -11651,6 +12390,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BeaconLostCount + namespace BeaconRxCount { struct TypeInfo { @@ -11663,6 +12403,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BeaconRxCount + namespace PacketMulticastRxCount { struct TypeInfo { @@ -11675,6 +12416,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace PacketMulticastRxCount + namespace PacketMulticastTxCount { struct TypeInfo { @@ -11687,6 +12429,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace PacketMulticastTxCount + namespace PacketUnicastRxCount { struct TypeInfo { @@ -11699,6 +12442,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace PacketUnicastRxCount + namespace PacketUnicastTxCount { struct TypeInfo { @@ -11711,6 +12455,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace PacketUnicastTxCount + namespace CurrentMaxRate { struct TypeInfo { @@ -11723,6 +12468,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace CurrentMaxRate + namespace OverrunCount { struct TypeInfo { @@ -11735,6 +12481,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace OverrunCount + namespace FeatureMap { struct TypeInfo { @@ -11747,6 +12494,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -11759,6 +12507,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::WiFiNetworkDiagnostics::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes namespace Events { namespace Disconnection { @@ -11941,6 +12702,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace PHYRate + namespace FullDuplex { struct TypeInfo { @@ -11953,6 +12715,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FullDuplex + namespace PacketRxCount { struct TypeInfo { @@ -11965,6 +12728,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace PacketRxCount + namespace PacketTxCount { struct TypeInfo { @@ -11977,6 +12741,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace PacketTxCount + namespace TxErrCount { struct TypeInfo { @@ -11989,6 +12754,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace TxErrCount + namespace CollisionCount { struct TypeInfo { @@ -12001,6 +12767,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace CollisionCount + namespace OverrunCount { struct TypeInfo { @@ -12013,6 +12780,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace OverrunCount + namespace CarrierDetect { struct TypeInfo { @@ -12025,6 +12793,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace CarrierDetect + namespace TimeSinceReset { struct TypeInfo { @@ -12037,6 +12806,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace TimeSinceReset + namespace FeatureMap { struct TypeInfo { @@ -12049,6 +12819,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -12061,6 +12832,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::EthernetNetworkDiagnostics::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace EthernetNetworkDiagnostics namespace TimeSynchronization { @@ -12078,6 +12862,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -12090,6 +12875,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::TimeSynchronization::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace TimeSynchronization namespace BridgedDeviceBasic { @@ -12247,6 +13045,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace VendorName + namespace VendorID { struct TypeInfo { @@ -12259,6 +13058,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace VendorID + namespace ProductName { struct TypeInfo { @@ -12271,6 +13071,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ProductName + namespace NodeLabel { struct TypeInfo { @@ -12283,6 +13084,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NodeLabel + namespace HardwareVersion { struct TypeInfo { @@ -12295,6 +13097,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace HardwareVersion + namespace HardwareVersionString { struct TypeInfo { @@ -12307,6 +13110,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace HardwareVersionString + namespace SoftwareVersion { struct TypeInfo { @@ -12319,6 +13123,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace SoftwareVersion + namespace SoftwareVersionString { struct TypeInfo { @@ -12331,6 +13136,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace SoftwareVersionString + namespace ManufacturingDate { struct TypeInfo { @@ -12343,6 +13149,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ManufacturingDate + namespace PartNumber { struct TypeInfo { @@ -12355,6 +13162,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace PartNumber + namespace ProductURL { struct TypeInfo { @@ -12367,6 +13175,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ProductURL + namespace ProductLabel { struct TypeInfo { @@ -12379,6 +13188,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ProductLabel + namespace SerialNumber { struct TypeInfo { @@ -12391,6 +13201,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace SerialNumber + namespace Reachable { struct TypeInfo { @@ -12403,6 +13214,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Reachable + namespace UniqueID { struct TypeInfo { @@ -12415,6 +13227,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace UniqueID + namespace FeatureMap { struct TypeInfo { @@ -12427,6 +13240,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -12439,6 +13253,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::BridgedDeviceBasic::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace BridgedDeviceBasic namespace Switch { @@ -12456,6 +13283,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NumberOfPositions + namespace CurrentPosition { struct TypeInfo { @@ -12468,6 +13296,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace CurrentPosition + namespace MultiPressMax { struct TypeInfo { @@ -12480,6 +13309,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MultiPressMax + namespace FeatureMap { struct TypeInfo { @@ -12492,6 +13322,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -12504,6 +13335,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::Switch::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes namespace Events { namespace SwitchLatched { @@ -12903,6 +13747,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -12915,6 +13760,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::AdministratorCommissioning::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace AdministratorCommissioning namespace OperationalCredentials { @@ -13519,6 +14377,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FabricsList + namespace SupportedFabrics { struct TypeInfo { @@ -13531,6 +14390,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace SupportedFabrics + namespace CommissionedFabrics { struct TypeInfo { @@ -13543,6 +14403,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace CommissionedFabrics + namespace TrustedRootCertificates { struct TypeInfo { @@ -13555,6 +14416,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace TrustedRootCertificates + namespace CurrentFabricIndex { struct TypeInfo { @@ -13567,6 +14429,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace CurrentFabricIndex + namespace FeatureMap { struct TypeInfo { @@ -13579,6 +14442,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -13591,6 +14455,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::OperationalCredentials::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace OperationalCredentials namespace GroupKeyManagement { @@ -13665,6 +14542,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Groups + namespace GroupKeys { struct TypeInfo { @@ -13677,6 +14555,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace GroupKeys + namespace FeatureMap { struct TypeInfo { @@ -13689,6 +14568,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -13701,6 +14581,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::GroupKeyManagement::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace GroupKeyManagement namespace FixedLabel { @@ -13741,6 +14634,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace LabelList + namespace FeatureMap { struct TypeInfo { @@ -13753,6 +14647,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -13765,6 +14660,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::FixedLabel::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace FixedLabel namespace UserLabel { @@ -13805,6 +14713,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace LabelList + namespace FeatureMap { struct TypeInfo { @@ -13817,6 +14726,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -13829,6 +14739,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::UserLabel::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace UserLabel namespace ProxyConfiguration { @@ -13846,6 +14769,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -13858,6 +14782,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::ProxyConfiguration::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace ProxyConfiguration namespace ProxyDiscovery { @@ -13875,6 +14812,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -13887,6 +14825,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::ProxyDiscovery::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace ProxyDiscovery namespace ProxyValid { @@ -13904,6 +14855,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -13916,6 +14868,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::ProxyValid::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace ProxyValid namespace BooleanState { @@ -13933,6 +14898,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace StateValue + namespace FeatureMap { struct TypeInfo { @@ -13945,6 +14911,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -13957,6 +14924,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::BooleanState::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes namespace Events { namespace StateChange { @@ -14099,6 +15079,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace CurrentMode + namespace SupportedModes { struct TypeInfo { @@ -14111,6 +15092,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace SupportedModes + namespace OnMode { struct TypeInfo { @@ -14123,6 +15105,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace OnMode + namespace StartUpMode { struct TypeInfo { @@ -14135,6 +15118,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace StartUpMode + namespace Description { struct TypeInfo { @@ -14147,6 +15131,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Description + namespace FeatureMap { struct TypeInfo { @@ -14159,6 +15144,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -14171,6 +15157,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::ModeSelect::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace ModeSelect namespace ShadeConfiguration { @@ -14188,6 +15187,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace PhysicalClosedLimit + namespace MotorStepSize { struct TypeInfo { @@ -14200,6 +15200,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MotorStepSize + namespace Status { struct TypeInfo { @@ -14212,6 +15213,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Status + namespace ClosedLimit { struct TypeInfo { @@ -14224,6 +15226,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClosedLimit + namespace Mode { struct TypeInfo { @@ -14236,6 +15239,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Mode + namespace FeatureMap { struct TypeInfo { @@ -14248,6 +15252,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -14260,6 +15265,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::ShadeConfiguration::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace ShadeConfiguration namespace DoorLock { @@ -16590,6 +17608,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace LockState + namespace LockType { struct TypeInfo { @@ -16602,6 +17621,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace LockType + namespace ActuatorEnabled { struct TypeInfo { @@ -16614,6 +17634,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ActuatorEnabled + namespace DoorState { struct TypeInfo { @@ -16626,6 +17647,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace DoorState + namespace DoorOpenEvents { struct TypeInfo { @@ -16638,6 +17660,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace DoorOpenEvents + namespace DoorClosedEvents { struct TypeInfo { @@ -16650,6 +17673,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace DoorClosedEvents + namespace OpenPeriod { struct TypeInfo { @@ -16662,6 +17686,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace OpenPeriod + namespace NumberOfLogRecordsSupported { struct TypeInfo { @@ -16674,6 +17699,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NumberOfLogRecordsSupported + namespace NumberOfTotalUsersSupported { struct TypeInfo { @@ -16686,6 +17712,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NumberOfTotalUsersSupported + namespace NumberOfPINUsersSupported { struct TypeInfo { @@ -16698,6 +17725,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NumberOfPINUsersSupported + namespace NumberOfRFIDUsersSupported { struct TypeInfo { @@ -16710,6 +17738,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NumberOfRFIDUsersSupported + namespace NumberOfWeekDaySchedulesSupportedPerUser { struct TypeInfo { @@ -16722,6 +17751,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NumberOfWeekDaySchedulesSupportedPerUser + namespace NumberOfYearDaySchedulesSupportedPerUser { struct TypeInfo { @@ -16734,6 +17764,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NumberOfYearDaySchedulesSupportedPerUser + namespace NumberOfHolidaySchedulesSupported { struct TypeInfo { @@ -16746,6 +17777,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NumberOfHolidaySchedulesSupported + namespace MaxPINCodeLength { struct TypeInfo { @@ -16758,6 +17790,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxPINCodeLength + namespace MinPINCodeLength { struct TypeInfo { @@ -16770,6 +17803,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinPINCodeLength + namespace MaxRFIDCodeLength { struct TypeInfo { @@ -16782,6 +17816,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxRFIDCodeLength + namespace MinRFIDCodeLength { struct TypeInfo { @@ -16794,6 +17829,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinRFIDCodeLength + namespace CredentialRulesSupport { struct TypeInfo { @@ -16806,6 +17842,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace CredentialRulesSupport + namespace EnableLogging { struct TypeInfo { @@ -16818,6 +17855,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace EnableLogging + namespace Language { struct TypeInfo { @@ -16830,6 +17868,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Language + namespace LEDSettings { struct TypeInfo { @@ -16842,6 +17881,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace LEDSettings + namespace AutoRelockTime { struct TypeInfo { @@ -16854,6 +17894,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AutoRelockTime + namespace SoundVolume { struct TypeInfo { @@ -16866,6 +17907,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace SoundVolume + namespace OperatingMode { struct TypeInfo { @@ -16878,6 +17920,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace OperatingMode + namespace SupportedOperatingModes { struct TypeInfo { @@ -16890,6 +17933,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace SupportedOperatingModes + namespace DefaultConfigurationRegister { struct TypeInfo { @@ -16902,6 +17946,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace DefaultConfigurationRegister + namespace EnableLocalProgramming { struct TypeInfo { @@ -16914,6 +17959,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace EnableLocalProgramming + namespace EnableOneTouchLocking { struct TypeInfo { @@ -16926,6 +17972,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace EnableOneTouchLocking + namespace EnableInsideStatusLED { struct TypeInfo { @@ -16938,6 +17985,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace EnableInsideStatusLED + namespace EnablePrivacyModeButton { struct TypeInfo { @@ -16950,6 +17998,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace EnablePrivacyModeButton + namespace LocalProgrammingFeatures { struct TypeInfo { @@ -16962,6 +18011,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace LocalProgrammingFeatures + namespace WrongCodeEntryLimit { struct TypeInfo { @@ -16974,6 +18024,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace WrongCodeEntryLimit + namespace UserCodeTemporaryDisableTime { struct TypeInfo { @@ -16986,6 +18037,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace UserCodeTemporaryDisableTime + namespace SendPINOverTheAir { struct TypeInfo { @@ -16998,6 +18050,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace SendPINOverTheAir + namespace RequirePINforRemoteOperation { struct TypeInfo { @@ -17010,6 +18063,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RequirePINforRemoteOperation + namespace ExpiringUserTimeout { struct TypeInfo { @@ -17022,6 +18076,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ExpiringUserTimeout + namespace AlarmMask { struct TypeInfo { @@ -17034,6 +18089,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AlarmMask + namespace KeypadOperationEventMask { struct TypeInfo { @@ -17046,6 +18102,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace KeypadOperationEventMask + namespace RemoteOperationEventMask { struct TypeInfo { @@ -17058,6 +18115,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RemoteOperationEventMask + namespace ManualOperationEventMask { struct TypeInfo { @@ -17070,6 +18128,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ManualOperationEventMask + namespace RFIDOperationEventMask { struct TypeInfo { @@ -17082,6 +18141,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RFIDOperationEventMask + namespace KeypadProgrammingEventMask { struct TypeInfo { @@ -17094,6 +18154,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace KeypadProgrammingEventMask + namespace RemoteProgrammingEventMask { struct TypeInfo { @@ -17106,6 +18167,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RemoteProgrammingEventMask + namespace RFIDProgrammingEventMask { struct TypeInfo { @@ -17118,6 +18180,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RFIDProgrammingEventMask + namespace FeatureMap { struct TypeInfo { @@ -17130,6 +18193,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -17142,6 +18206,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::DoorLock::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes namespace Events { namespace DoorLockAlarm { @@ -17684,6 +18761,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Type + namespace PhysicalClosedLimitLift { struct TypeInfo { @@ -17696,6 +18774,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace PhysicalClosedLimitLift + namespace PhysicalClosedLimitTilt { struct TypeInfo { @@ -17708,6 +18787,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace PhysicalClosedLimitTilt + namespace CurrentPositionLift { struct TypeInfo { @@ -17720,6 +18800,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace CurrentPositionLift + namespace CurrentPositionTilt { struct TypeInfo { @@ -17732,6 +18813,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace CurrentPositionTilt + namespace NumberOfActuationsLift { struct TypeInfo { @@ -17744,6 +18826,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NumberOfActuationsLift + namespace NumberOfActuationsTilt { struct TypeInfo { @@ -17756,6 +18839,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NumberOfActuationsTilt + namespace ConfigStatus { struct TypeInfo { @@ -17768,6 +18852,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ConfigStatus + namespace CurrentPositionLiftPercentage { struct TypeInfo { @@ -17780,6 +18865,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace CurrentPositionLiftPercentage + namespace CurrentPositionTiltPercentage { struct TypeInfo { @@ -17792,6 +18878,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace CurrentPositionTiltPercentage + namespace OperationalStatus { struct TypeInfo { @@ -17804,6 +18891,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace OperationalStatus + namespace TargetPositionLiftPercent100ths { struct TypeInfo { @@ -17816,6 +18904,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace TargetPositionLiftPercent100ths + namespace TargetPositionTiltPercent100ths { struct TypeInfo { @@ -17828,6 +18917,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace TargetPositionTiltPercent100ths + namespace EndProductType { struct TypeInfo { @@ -17840,6 +18930,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace EndProductType + namespace CurrentPositionLiftPercent100ths { struct TypeInfo { @@ -17852,6 +18943,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace CurrentPositionLiftPercent100ths + namespace CurrentPositionTiltPercent100ths { struct TypeInfo { @@ -17864,6 +18956,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace CurrentPositionTiltPercent100ths + namespace InstalledOpenLimitLift { struct TypeInfo { @@ -17876,6 +18969,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace InstalledOpenLimitLift + namespace InstalledClosedLimitLift { struct TypeInfo { @@ -17888,6 +18982,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace InstalledClosedLimitLift + namespace InstalledOpenLimitTilt { struct TypeInfo { @@ -17900,6 +18995,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace InstalledOpenLimitTilt + namespace InstalledClosedLimitTilt { struct TypeInfo { @@ -17912,6 +19008,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace InstalledClosedLimitTilt + namespace VelocityLift { struct TypeInfo { @@ -17924,6 +19021,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace VelocityLift + namespace AccelerationTimeLift { struct TypeInfo { @@ -17936,6 +19034,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AccelerationTimeLift + namespace DecelerationTimeLift { struct TypeInfo { @@ -17948,6 +19047,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace DecelerationTimeLift + namespace Mode { struct TypeInfo { @@ -17960,6 +19060,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Mode + namespace IntermediateSetpointsLift { struct TypeInfo { @@ -17972,6 +19073,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace IntermediateSetpointsLift + namespace IntermediateSetpointsTilt { struct TypeInfo { @@ -17984,6 +19086,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace IntermediateSetpointsTilt + namespace SafetyStatus { struct TypeInfo { @@ -17996,6 +19099,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace SafetyStatus + namespace FeatureMap { struct TypeInfo { @@ -18008,6 +19112,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -18020,6 +19125,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::WindowCovering::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace WindowCovering namespace BarrierControl { @@ -18115,6 +19233,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BarrierMovingState + namespace BarrierSafetyStatus { struct TypeInfo { @@ -18127,6 +19246,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BarrierSafetyStatus + namespace BarrierCapabilities { struct TypeInfo { @@ -18139,6 +19259,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BarrierCapabilities + namespace BarrierOpenEvents { struct TypeInfo { @@ -18151,6 +19272,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BarrierOpenEvents + namespace BarrierCloseEvents { struct TypeInfo { @@ -18163,6 +19285,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BarrierCloseEvents + namespace BarrierCommandOpenEvents { struct TypeInfo { @@ -18175,6 +19298,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BarrierCommandOpenEvents + namespace BarrierCommandCloseEvents { struct TypeInfo { @@ -18187,6 +19311,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BarrierCommandCloseEvents + namespace BarrierOpenPeriod { struct TypeInfo { @@ -18199,6 +19324,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BarrierOpenPeriod + namespace BarrierClosePeriod { struct TypeInfo { @@ -18211,6 +19337,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BarrierClosePeriod + namespace BarrierPosition { struct TypeInfo { @@ -18223,6 +19350,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BarrierPosition + namespace FeatureMap { struct TypeInfo { @@ -18235,6 +19363,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -18247,6 +19376,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::BarrierControl::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace BarrierControl namespace PumpConfigurationAndControl { @@ -18296,6 +19438,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxPressure + namespace MaxSpeed { struct TypeInfo { @@ -18308,6 +19451,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxSpeed + namespace MaxFlow { struct TypeInfo { @@ -18320,6 +19464,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxFlow + namespace MinConstPressure { struct TypeInfo { @@ -18332,6 +19477,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinConstPressure + namespace MaxConstPressure { struct TypeInfo { @@ -18344,6 +19490,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxConstPressure + namespace MinCompPressure { struct TypeInfo { @@ -18356,6 +19503,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinCompPressure + namespace MaxCompPressure { struct TypeInfo { @@ -18368,6 +19516,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxCompPressure + namespace MinConstSpeed { struct TypeInfo { @@ -18380,6 +19529,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinConstSpeed + namespace MaxConstSpeed { struct TypeInfo { @@ -18392,6 +19542,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxConstSpeed + namespace MinConstFlow { struct TypeInfo { @@ -18404,6 +19555,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinConstFlow + namespace MaxConstFlow { struct TypeInfo { @@ -18416,6 +19568,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxConstFlow + namespace MinConstTemp { struct TypeInfo { @@ -18428,6 +19581,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinConstTemp + namespace MaxConstTemp { struct TypeInfo { @@ -18440,6 +19594,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxConstTemp + namespace PumpStatus { struct TypeInfo { @@ -18452,6 +19607,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace PumpStatus + namespace EffectiveOperationMode { struct TypeInfo { @@ -18464,6 +19620,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace EffectiveOperationMode + namespace EffectiveControlMode { struct TypeInfo { @@ -18476,6 +19633,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace EffectiveControlMode + namespace Capacity { struct TypeInfo { @@ -18488,6 +19646,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Capacity + namespace Speed { struct TypeInfo { @@ -18500,6 +19659,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Speed + namespace LifetimeRunningHours { struct TypeInfo { @@ -18512,6 +19672,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace LifetimeRunningHours + namespace Power { struct TypeInfo { @@ -18524,6 +19685,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Power + namespace LifetimeEnergyConsumed { struct TypeInfo { @@ -18536,6 +19698,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace LifetimeEnergyConsumed + namespace OperationMode { struct TypeInfo { @@ -18548,6 +19711,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace OperationMode + namespace ControlMode { struct TypeInfo { @@ -18560,6 +19724,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ControlMode + namespace AlarmMask { struct TypeInfo { @@ -18572,6 +19737,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AlarmMask + namespace FeatureMap { struct TypeInfo { @@ -18584,6 +19750,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -18596,6 +19763,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::PumpConfigurationAndControl::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes namespace Events { namespace SupplyVoltageLow { @@ -19422,6 +20602,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace LocalTemperature + namespace OutdoorTemperature { struct TypeInfo { @@ -19434,6 +20615,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace OutdoorTemperature + namespace Occupancy { struct TypeInfo { @@ -19446,6 +20628,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Occupancy + namespace AbsMinHeatSetpointLimit { struct TypeInfo { @@ -19458,6 +20641,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AbsMinHeatSetpointLimit + namespace AbsMaxHeatSetpointLimit { struct TypeInfo { @@ -19470,6 +20654,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AbsMaxHeatSetpointLimit + namespace AbsMinCoolSetpointLimit { struct TypeInfo { @@ -19482,6 +20667,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AbsMinCoolSetpointLimit + namespace AbsMaxCoolSetpointLimit { struct TypeInfo { @@ -19494,6 +20680,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AbsMaxCoolSetpointLimit + namespace PiCoolingDemand { struct TypeInfo { @@ -19506,6 +20693,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace PiCoolingDemand + namespace PiHeatingDemand { struct TypeInfo { @@ -19518,6 +20706,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace PiHeatingDemand + namespace HvacSystemTypeConfiguration { struct TypeInfo { @@ -19530,6 +20719,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace HvacSystemTypeConfiguration + namespace LocalTemperatureCalibration { struct TypeInfo { @@ -19542,6 +20732,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace LocalTemperatureCalibration + namespace OccupiedCoolingSetpoint { struct TypeInfo { @@ -19554,6 +20745,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace OccupiedCoolingSetpoint + namespace OccupiedHeatingSetpoint { struct TypeInfo { @@ -19566,6 +20758,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace OccupiedHeatingSetpoint + namespace UnoccupiedCoolingSetpoint { struct TypeInfo { @@ -19578,6 +20771,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace UnoccupiedCoolingSetpoint + namespace UnoccupiedHeatingSetpoint { struct TypeInfo { @@ -19590,6 +20784,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace UnoccupiedHeatingSetpoint + namespace MinHeatSetpointLimit { struct TypeInfo { @@ -19602,6 +20797,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinHeatSetpointLimit + namespace MaxHeatSetpointLimit { struct TypeInfo { @@ -19614,6 +20810,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxHeatSetpointLimit + namespace MinCoolSetpointLimit { struct TypeInfo { @@ -19626,6 +20823,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinCoolSetpointLimit + namespace MaxCoolSetpointLimit { struct TypeInfo { @@ -19638,6 +20836,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxCoolSetpointLimit + namespace MinSetpointDeadBand { struct TypeInfo { @@ -19650,6 +20849,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinSetpointDeadBand + namespace RemoteSensing { struct TypeInfo { @@ -19662,6 +20862,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RemoteSensing + namespace ControlSequenceOfOperation { struct TypeInfo { @@ -19674,6 +20875,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ControlSequenceOfOperation + namespace SystemMode { struct TypeInfo { @@ -19686,6 +20888,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace SystemMode + namespace AlarmMask { struct TypeInfo { @@ -19698,6 +20901,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AlarmMask + namespace ThermostatRunningMode { struct TypeInfo { @@ -19710,6 +20914,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ThermostatRunningMode + namespace StartOfWeek { struct TypeInfo { @@ -19722,6 +20927,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace StartOfWeek + namespace NumberOfWeeklyTransitions { struct TypeInfo { @@ -19734,6 +20940,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NumberOfWeeklyTransitions + namespace NumberOfDailyTransitions { struct TypeInfo { @@ -19746,6 +20953,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NumberOfDailyTransitions + namespace TemperatureSetpointHold { struct TypeInfo { @@ -19758,6 +20966,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace TemperatureSetpointHold + namespace TemperatureSetpointHoldDuration { struct TypeInfo { @@ -19770,6 +20979,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace TemperatureSetpointHoldDuration + namespace ThermostatProgrammingOperationMode { struct TypeInfo { @@ -19782,6 +20992,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ThermostatProgrammingOperationMode + namespace HvacRelayState { struct TypeInfo { @@ -19794,6 +21005,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace HvacRelayState + namespace SetpointChangeSource { struct TypeInfo { @@ -19806,6 +21018,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace SetpointChangeSource + namespace SetpointChangeAmount { struct TypeInfo { @@ -19818,6 +21031,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace SetpointChangeAmount + namespace SetpointChangeSourceTimestamp { struct TypeInfo { @@ -19830,6 +21044,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace SetpointChangeSourceTimestamp + namespace AcType { struct TypeInfo { @@ -19842,6 +21057,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AcType + namespace AcCapacity { struct TypeInfo { @@ -19854,6 +21070,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AcCapacity + namespace AcRefrigerantType { struct TypeInfo { @@ -19866,6 +21083,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AcRefrigerantType + namespace AcCompressor { struct TypeInfo { @@ -19878,6 +21096,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AcCompressor + namespace AcErrorCode { struct TypeInfo { @@ -19890,6 +21109,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AcErrorCode + namespace AcLouverPosition { struct TypeInfo { @@ -19902,6 +21122,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AcLouverPosition + namespace AcCoilTemperature { struct TypeInfo { @@ -19914,6 +21135,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AcCoilTemperature + namespace AcCapacityFormat { struct TypeInfo { @@ -19926,6 +21148,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AcCapacityFormat + namespace FeatureMap { struct TypeInfo { @@ -19938,6 +21161,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -19950,6 +21174,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace Thermostat namespace FanControl { @@ -19967,6 +21204,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FanMode + namespace FanModeSequence { struct TypeInfo { @@ -19979,6 +21217,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FanModeSequence + namespace FeatureMap { struct TypeInfo { @@ -19991,6 +21230,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -20003,6 +21243,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::FanControl::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace FanControl namespace DehumidificationControl { @@ -20020,6 +21273,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RelativeHumidity + namespace DehumidificationCooling { struct TypeInfo { @@ -20032,6 +21286,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace DehumidificationCooling + namespace RhDehumidificationSetpoint { struct TypeInfo { @@ -20044,6 +21299,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RhDehumidificationSetpoint + namespace RelativeHumidityMode { struct TypeInfo { @@ -20056,6 +21312,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RelativeHumidityMode + namespace DehumidificationLockout { struct TypeInfo { @@ -20068,6 +21325,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace DehumidificationLockout + namespace DehumidificationHysteresis { struct TypeInfo { @@ -20080,6 +21338,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace DehumidificationHysteresis + namespace DehumidificationMaxCool { struct TypeInfo { @@ -20092,6 +21351,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace DehumidificationMaxCool + namespace RelativeHumidityDisplay { struct TypeInfo { @@ -20104,6 +21364,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RelativeHumidityDisplay + namespace FeatureMap { struct TypeInfo { @@ -20116,6 +21377,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -20128,6 +21390,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::DehumidificationControl::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace DehumidificationControl namespace ThermostatUserInterfaceConfiguration { @@ -20145,6 +21420,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace TemperatureDisplayMode + namespace KeypadLockout { struct TypeInfo { @@ -20157,6 +21433,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace KeypadLockout + namespace ScheduleProgrammingVisibility { struct TypeInfo { @@ -20169,6 +21446,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ScheduleProgrammingVisibility + namespace FeatureMap { struct TypeInfo { @@ -20181,6 +21459,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -20193,6 +21472,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::ThermostatUserInterfaceConfiguration::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace ThermostatUserInterfaceConfiguration namespace ColorControl { @@ -21258,6 +22550,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace CurrentHue + namespace CurrentSaturation { struct TypeInfo { @@ -21270,6 +22563,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace CurrentSaturation + namespace RemainingTime { struct TypeInfo { @@ -21282,6 +22576,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RemainingTime + namespace CurrentX { struct TypeInfo { @@ -21294,6 +22589,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace CurrentX + namespace CurrentY { struct TypeInfo { @@ -21306,6 +22602,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace CurrentY + namespace DriftCompensation { struct TypeInfo { @@ -21318,6 +22615,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace DriftCompensation + namespace CompensationText { struct TypeInfo { @@ -21330,6 +22628,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace CompensationText + namespace ColorTemperature { struct TypeInfo { @@ -21342,6 +22641,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ColorTemperature + namespace ColorMode { struct TypeInfo { @@ -21354,6 +22654,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ColorMode + namespace ColorControlOptions { struct TypeInfo { @@ -21366,6 +22667,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ColorControlOptions + namespace NumberOfPrimaries { struct TypeInfo { @@ -21378,6 +22680,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NumberOfPrimaries + namespace Primary1X { struct TypeInfo { @@ -21390,6 +22693,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Primary1X + namespace Primary1Y { struct TypeInfo { @@ -21402,6 +22706,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Primary1Y + namespace Primary1Intensity { struct TypeInfo { @@ -21414,6 +22719,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Primary1Intensity + namespace Primary2X { struct TypeInfo { @@ -21426,6 +22732,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Primary2X + namespace Primary2Y { struct TypeInfo { @@ -21438,6 +22745,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Primary2Y + namespace Primary2Intensity { struct TypeInfo { @@ -21450,6 +22758,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Primary2Intensity + namespace Primary3X { struct TypeInfo { @@ -21462,6 +22771,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Primary3X + namespace Primary3Y { struct TypeInfo { @@ -21474,6 +22784,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Primary3Y + namespace Primary3Intensity { struct TypeInfo { @@ -21486,6 +22797,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Primary3Intensity + namespace Primary4X { struct TypeInfo { @@ -21498,6 +22810,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Primary4X + namespace Primary4Y { struct TypeInfo { @@ -21510,6 +22823,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Primary4Y + namespace Primary4Intensity { struct TypeInfo { @@ -21522,6 +22836,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Primary4Intensity + namespace Primary5X { struct TypeInfo { @@ -21534,6 +22849,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Primary5X + namespace Primary5Y { struct TypeInfo { @@ -21546,6 +22862,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Primary5Y + namespace Primary5Intensity { struct TypeInfo { @@ -21558,6 +22875,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Primary5Intensity + namespace Primary6X { struct TypeInfo { @@ -21570,6 +22888,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Primary6X + namespace Primary6Y { struct TypeInfo { @@ -21582,6 +22901,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Primary6Y + namespace Primary6Intensity { struct TypeInfo { @@ -21594,6 +22914,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Primary6Intensity + namespace WhitePointX { struct TypeInfo { @@ -21606,6 +22927,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace WhitePointX + namespace WhitePointY { struct TypeInfo { @@ -21618,6 +22940,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace WhitePointY + namespace ColorPointRX { struct TypeInfo { @@ -21630,6 +22953,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ColorPointRX + namespace ColorPointRY { struct TypeInfo { @@ -21642,6 +22966,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ColorPointRY + namespace ColorPointRIntensity { struct TypeInfo { @@ -21654,6 +22979,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ColorPointRIntensity + namespace ColorPointGX { struct TypeInfo { @@ -21666,6 +22992,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ColorPointGX + namespace ColorPointGY { struct TypeInfo { @@ -21678,6 +23005,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ColorPointGY + namespace ColorPointGIntensity { struct TypeInfo { @@ -21690,6 +23018,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ColorPointGIntensity + namespace ColorPointBX { struct TypeInfo { @@ -21702,6 +23031,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ColorPointBX + namespace ColorPointBY { struct TypeInfo { @@ -21714,6 +23044,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ColorPointBY + namespace ColorPointBIntensity { struct TypeInfo { @@ -21726,6 +23057,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ColorPointBIntensity + namespace EnhancedCurrentHue { struct TypeInfo { @@ -21738,6 +23070,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace EnhancedCurrentHue + namespace EnhancedColorMode { struct TypeInfo { @@ -21750,6 +23083,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace EnhancedColorMode + namespace ColorLoopActive { struct TypeInfo { @@ -21762,6 +23096,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ColorLoopActive + namespace ColorLoopDirection { struct TypeInfo { @@ -21774,6 +23109,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ColorLoopDirection + namespace ColorLoopTime { struct TypeInfo { @@ -21786,6 +23122,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ColorLoopTime + namespace ColorLoopStartEnhancedHue { struct TypeInfo { @@ -21798,6 +23135,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ColorLoopStartEnhancedHue + namespace ColorLoopStoredEnhancedHue { struct TypeInfo { @@ -21810,6 +23148,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ColorLoopStoredEnhancedHue + namespace ColorCapabilities { struct TypeInfo { @@ -21822,6 +23161,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ColorCapabilities + namespace ColorTempPhysicalMin { struct TypeInfo { @@ -21834,6 +23174,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ColorTempPhysicalMin + namespace ColorTempPhysicalMax { struct TypeInfo { @@ -21846,6 +23187,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ColorTempPhysicalMax + namespace CoupleColorTempToLevelMinMireds { struct TypeInfo { @@ -21858,6 +23200,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace CoupleColorTempToLevelMinMireds + namespace StartUpColorTemperatureMireds { struct TypeInfo { @@ -21870,6 +23213,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace StartUpColorTemperatureMireds + namespace FeatureMap { struct TypeInfo { @@ -21882,6 +23226,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -21894,6 +23239,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::ColorControl::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace ColorControl namespace BallastConfiguration { @@ -21911,6 +23269,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace PhysicalMinLevel + namespace PhysicalMaxLevel { struct TypeInfo { @@ -21923,6 +23282,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace PhysicalMaxLevel + namespace BallastStatus { struct TypeInfo { @@ -21935,6 +23295,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BallastStatus + namespace MinLevel { struct TypeInfo { @@ -21947,6 +23308,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinLevel + namespace MaxLevel { struct TypeInfo { @@ -21959,6 +23321,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxLevel + namespace PowerOnLevel { struct TypeInfo { @@ -21971,6 +23334,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace PowerOnLevel + namespace PowerOnFadeTime { struct TypeInfo { @@ -21983,6 +23347,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace PowerOnFadeTime + namespace IntrinsicBallastFactor { struct TypeInfo { @@ -21995,6 +23360,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace IntrinsicBallastFactor + namespace BallastFactorAdjustment { struct TypeInfo { @@ -22007,6 +23373,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BallastFactorAdjustment + namespace LampQuality { struct TypeInfo { @@ -22019,6 +23386,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace LampQuality + namespace LampType { struct TypeInfo { @@ -22031,6 +23399,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace LampType + namespace LampManufacturer { struct TypeInfo { @@ -22043,6 +23412,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace LampManufacturer + namespace LampRatedHours { struct TypeInfo { @@ -22055,6 +23425,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace LampRatedHours + namespace LampBurnHours { struct TypeInfo { @@ -22067,6 +23438,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace LampBurnHours + namespace LampAlarmMode { struct TypeInfo { @@ -22079,6 +23451,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace LampAlarmMode + namespace LampBurnHoursTripPoint { struct TypeInfo { @@ -22091,6 +23464,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace LampBurnHoursTripPoint + namespace FeatureMap { struct TypeInfo { @@ -22103,6 +23477,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -22115,6 +23490,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::BallastConfiguration::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace BallastConfiguration namespace IlluminanceMeasurement { @@ -22138,6 +23526,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MeasuredValue + namespace MinMeasuredValue { struct TypeInfo { @@ -22150,6 +23539,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinMeasuredValue + namespace MaxMeasuredValue { struct TypeInfo { @@ -22162,6 +23552,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxMeasuredValue + namespace Tolerance { struct TypeInfo { @@ -22174,6 +23565,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Tolerance + namespace LightSensorType { struct TypeInfo { @@ -22186,6 +23578,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace LightSensorType + namespace FeatureMap { struct TypeInfo { @@ -22198,6 +23591,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -22210,6 +23604,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::IlluminanceMeasurement::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace IlluminanceMeasurement namespace TemperatureMeasurement { @@ -22227,6 +23634,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MeasuredValue + namespace MinMeasuredValue { struct TypeInfo { @@ -22239,6 +23647,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinMeasuredValue + namespace MaxMeasuredValue { struct TypeInfo { @@ -22251,6 +23660,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxMeasuredValue + namespace Tolerance { struct TypeInfo { @@ -22263,6 +23673,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Tolerance + namespace FeatureMap { struct TypeInfo { @@ -22275,6 +23686,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -22287,6 +23699,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::TemperatureMeasurement::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace TemperatureMeasurement namespace PressureMeasurement { @@ -22304,6 +23729,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MeasuredValue + namespace MinMeasuredValue { struct TypeInfo { @@ -22316,6 +23742,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinMeasuredValue + namespace MaxMeasuredValue { struct TypeInfo { @@ -22328,6 +23755,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxMeasuredValue + namespace Tolerance { struct TypeInfo { @@ -22340,6 +23768,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Tolerance + namespace ScaledValue { struct TypeInfo { @@ -22352,6 +23781,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ScaledValue + namespace MinScaledValue { struct TypeInfo { @@ -22364,6 +23794,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinScaledValue + namespace MaxScaledValue { struct TypeInfo { @@ -22376,6 +23807,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxScaledValue + namespace ScaledTolerance { struct TypeInfo { @@ -22388,6 +23820,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ScaledTolerance + namespace Scale { struct TypeInfo { @@ -22400,6 +23833,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Scale + namespace FeatureMap { struct TypeInfo { @@ -22412,6 +23846,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -22424,6 +23859,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::PressureMeasurement::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace PressureMeasurement namespace FlowMeasurement { @@ -22441,6 +23889,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MeasuredValue + namespace MinMeasuredValue { struct TypeInfo { @@ -22453,6 +23902,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinMeasuredValue + namespace MaxMeasuredValue { struct TypeInfo { @@ -22465,6 +23915,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxMeasuredValue + namespace Tolerance { struct TypeInfo { @@ -22477,6 +23928,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Tolerance + namespace FeatureMap { struct TypeInfo { @@ -22489,6 +23941,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -22501,6 +23954,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::FlowMeasurement::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace FlowMeasurement namespace RelativeHumidityMeasurement { @@ -22518,6 +23984,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MeasuredValue + namespace MinMeasuredValue { struct TypeInfo { @@ -22530,6 +23997,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinMeasuredValue + namespace MaxMeasuredValue { struct TypeInfo { @@ -22542,6 +24010,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxMeasuredValue + namespace Tolerance { struct TypeInfo { @@ -22554,6 +24023,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Tolerance + namespace FeatureMap { struct TypeInfo { @@ -22566,6 +24036,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -22578,6 +24049,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::RelativeHumidityMeasurement::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace RelativeHumidityMeasurement namespace OccupancySensing { @@ -22595,6 +24079,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Occupancy + namespace OccupancySensorType { struct TypeInfo { @@ -22607,6 +24092,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace OccupancySensorType + namespace OccupancySensorTypeBitmap { struct TypeInfo { @@ -22619,6 +24105,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace OccupancySensorTypeBitmap + namespace PirOccupiedToUnoccupiedDelay { struct TypeInfo { @@ -22631,6 +24118,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace PirOccupiedToUnoccupiedDelay + namespace PirUnoccupiedToOccupiedDelay { struct TypeInfo { @@ -22643,6 +24131,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace PirUnoccupiedToOccupiedDelay + namespace PirUnoccupiedToOccupiedThreshold { struct TypeInfo { @@ -22655,6 +24144,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace PirUnoccupiedToOccupiedThreshold + namespace UltrasonicOccupiedToUnoccupiedDelay { struct TypeInfo { @@ -22667,6 +24157,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace UltrasonicOccupiedToUnoccupiedDelay + namespace UltrasonicUnoccupiedToOccupiedDelay { struct TypeInfo { @@ -22679,6 +24170,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace UltrasonicUnoccupiedToOccupiedDelay + namespace UltrasonicUnoccupiedToOccupiedThreshold { struct TypeInfo { @@ -22691,6 +24183,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace UltrasonicUnoccupiedToOccupiedThreshold + namespace PhysicalContactOccupiedToUnoccupiedDelay { struct TypeInfo { @@ -22703,6 +24196,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace PhysicalContactOccupiedToUnoccupiedDelay + namespace PhysicalContactUnoccupiedToOccupiedDelay { struct TypeInfo { @@ -22715,6 +24209,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace PhysicalContactUnoccupiedToOccupiedDelay + namespace PhysicalContactUnoccupiedToOccupiedThreshold { struct TypeInfo { @@ -22727,6 +24222,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace PhysicalContactUnoccupiedToOccupiedThreshold + namespace FeatureMap { struct TypeInfo { @@ -22739,6 +24235,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -22751,6 +24248,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::OccupancySensing::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace OccupancySensing namespace CarbonMonoxideConcentrationMeasurement { @@ -22768,6 +24278,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MeasuredValue + namespace MinMeasuredValue { struct TypeInfo { @@ -22780,6 +24291,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinMeasuredValue + namespace MaxMeasuredValue { struct TypeInfo { @@ -22792,6 +24304,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxMeasuredValue + namespace Tolerance { struct TypeInfo { @@ -22804,6 +24317,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Tolerance + namespace FeatureMap { struct TypeInfo { @@ -22816,6 +24330,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -22828,6 +24343,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::CarbonMonoxideConcentrationMeasurement::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace CarbonMonoxideConcentrationMeasurement namespace CarbonDioxideConcentrationMeasurement { @@ -22845,6 +24373,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MeasuredValue + namespace MinMeasuredValue { struct TypeInfo { @@ -22857,6 +24386,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinMeasuredValue + namespace MaxMeasuredValue { struct TypeInfo { @@ -22869,6 +24399,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxMeasuredValue + namespace Tolerance { struct TypeInfo { @@ -22881,6 +24412,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Tolerance + namespace FeatureMap { struct TypeInfo { @@ -22893,6 +24425,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -22905,6 +24438,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::CarbonDioxideConcentrationMeasurement::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace CarbonDioxideConcentrationMeasurement namespace EthyleneConcentrationMeasurement { @@ -22922,6 +24468,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MeasuredValue + namespace MinMeasuredValue { struct TypeInfo { @@ -22934,6 +24481,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinMeasuredValue + namespace MaxMeasuredValue { struct TypeInfo { @@ -22946,6 +24494,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxMeasuredValue + namespace Tolerance { struct TypeInfo { @@ -22958,6 +24507,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Tolerance + namespace FeatureMap { struct TypeInfo { @@ -22970,6 +24520,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -22982,6 +24533,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::EthyleneConcentrationMeasurement::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace EthyleneConcentrationMeasurement namespace EthyleneOxideConcentrationMeasurement { @@ -22999,6 +24563,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MeasuredValue + namespace MinMeasuredValue { struct TypeInfo { @@ -23011,6 +24576,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinMeasuredValue + namespace MaxMeasuredValue { struct TypeInfo { @@ -23023,6 +24589,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxMeasuredValue + namespace Tolerance { struct TypeInfo { @@ -23035,6 +24602,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Tolerance + namespace FeatureMap { struct TypeInfo { @@ -23047,6 +24615,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -23059,6 +24628,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::EthyleneOxideConcentrationMeasurement::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace EthyleneOxideConcentrationMeasurement namespace HydrogenConcentrationMeasurement { @@ -23076,6 +24658,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MeasuredValue + namespace MinMeasuredValue { struct TypeInfo { @@ -23088,6 +24671,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinMeasuredValue + namespace MaxMeasuredValue { struct TypeInfo { @@ -23100,6 +24684,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxMeasuredValue + namespace Tolerance { struct TypeInfo { @@ -23112,6 +24697,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Tolerance + namespace FeatureMap { struct TypeInfo { @@ -23124,6 +24710,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -23136,6 +24723,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::HydrogenConcentrationMeasurement::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace HydrogenConcentrationMeasurement namespace HydrogenSulphideConcentrationMeasurement { @@ -23153,6 +24753,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MeasuredValue + namespace MinMeasuredValue { struct TypeInfo { @@ -23165,6 +24766,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinMeasuredValue + namespace MaxMeasuredValue { struct TypeInfo { @@ -23177,6 +24779,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxMeasuredValue + namespace Tolerance { struct TypeInfo { @@ -23189,6 +24792,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Tolerance + namespace FeatureMap { struct TypeInfo { @@ -23201,6 +24805,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -23213,6 +24818,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::HydrogenSulphideConcentrationMeasurement::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace HydrogenSulphideConcentrationMeasurement namespace NitricOxideConcentrationMeasurement { @@ -23230,6 +24848,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MeasuredValue + namespace MinMeasuredValue { struct TypeInfo { @@ -23242,6 +24861,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinMeasuredValue + namespace MaxMeasuredValue { struct TypeInfo { @@ -23254,6 +24874,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxMeasuredValue + namespace Tolerance { struct TypeInfo { @@ -23266,6 +24887,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Tolerance + namespace FeatureMap { struct TypeInfo { @@ -23278,6 +24900,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -23290,6 +24913,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::NitricOxideConcentrationMeasurement::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace NitricOxideConcentrationMeasurement namespace NitrogenDioxideConcentrationMeasurement { @@ -23307,6 +24943,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MeasuredValue + namespace MinMeasuredValue { struct TypeInfo { @@ -23319,6 +24956,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinMeasuredValue + namespace MaxMeasuredValue { struct TypeInfo { @@ -23331,6 +24969,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxMeasuredValue + namespace Tolerance { struct TypeInfo { @@ -23343,6 +24982,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Tolerance + namespace FeatureMap { struct TypeInfo { @@ -23355,6 +24995,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -23367,6 +25008,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::NitrogenDioxideConcentrationMeasurement::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace NitrogenDioxideConcentrationMeasurement namespace OxygenConcentrationMeasurement { @@ -23384,6 +25038,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MeasuredValue + namespace MinMeasuredValue { struct TypeInfo { @@ -23396,6 +25051,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinMeasuredValue + namespace MaxMeasuredValue { struct TypeInfo { @@ -23408,6 +25064,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxMeasuredValue + namespace Tolerance { struct TypeInfo { @@ -23420,6 +25077,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Tolerance + namespace FeatureMap { struct TypeInfo { @@ -23432,6 +25090,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -23444,6 +25103,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::OxygenConcentrationMeasurement::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace OxygenConcentrationMeasurement namespace OzoneConcentrationMeasurement { @@ -23461,6 +25133,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MeasuredValue + namespace MinMeasuredValue { struct TypeInfo { @@ -23473,6 +25146,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinMeasuredValue + namespace MaxMeasuredValue { struct TypeInfo { @@ -23485,6 +25159,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxMeasuredValue + namespace Tolerance { struct TypeInfo { @@ -23497,6 +25172,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Tolerance + namespace FeatureMap { struct TypeInfo { @@ -23509,6 +25185,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -23521,6 +25198,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::OzoneConcentrationMeasurement::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace OzoneConcentrationMeasurement namespace SulfurDioxideConcentrationMeasurement { @@ -23538,6 +25228,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MeasuredValue + namespace MinMeasuredValue { struct TypeInfo { @@ -23550,6 +25241,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinMeasuredValue + namespace MaxMeasuredValue { struct TypeInfo { @@ -23562,6 +25254,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxMeasuredValue + namespace Tolerance { struct TypeInfo { @@ -23574,6 +25267,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Tolerance + namespace FeatureMap { struct TypeInfo { @@ -23586,6 +25280,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -23598,6 +25293,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::SulfurDioxideConcentrationMeasurement::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace SulfurDioxideConcentrationMeasurement namespace DissolvedOxygenConcentrationMeasurement { @@ -23615,6 +25323,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MeasuredValue + namespace MinMeasuredValue { struct TypeInfo { @@ -23627,6 +25336,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinMeasuredValue + namespace MaxMeasuredValue { struct TypeInfo { @@ -23639,6 +25349,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxMeasuredValue + namespace Tolerance { struct TypeInfo { @@ -23651,6 +25362,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Tolerance + namespace FeatureMap { struct TypeInfo { @@ -23663,6 +25375,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -23675,6 +25388,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::DissolvedOxygenConcentrationMeasurement::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace DissolvedOxygenConcentrationMeasurement namespace BromateConcentrationMeasurement { @@ -23692,6 +25418,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MeasuredValue + namespace MinMeasuredValue { struct TypeInfo { @@ -23704,6 +25431,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinMeasuredValue + namespace MaxMeasuredValue { struct TypeInfo { @@ -23716,6 +25444,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxMeasuredValue + namespace Tolerance { struct TypeInfo { @@ -23728,6 +25457,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Tolerance + namespace FeatureMap { struct TypeInfo { @@ -23740,6 +25470,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -23752,6 +25483,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::BromateConcentrationMeasurement::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace BromateConcentrationMeasurement namespace ChloraminesConcentrationMeasurement { @@ -23769,6 +25513,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MeasuredValue + namespace MinMeasuredValue { struct TypeInfo { @@ -23781,6 +25526,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinMeasuredValue + namespace MaxMeasuredValue { struct TypeInfo { @@ -23793,6 +25539,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxMeasuredValue + namespace Tolerance { struct TypeInfo { @@ -23805,6 +25552,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Tolerance + namespace FeatureMap { struct TypeInfo { @@ -23817,6 +25565,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -23829,6 +25578,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::ChloraminesConcentrationMeasurement::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace ChloraminesConcentrationMeasurement namespace ChlorineConcentrationMeasurement { @@ -23846,6 +25608,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MeasuredValue + namespace MinMeasuredValue { struct TypeInfo { @@ -23858,6 +25621,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinMeasuredValue + namespace MaxMeasuredValue { struct TypeInfo { @@ -23870,6 +25634,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxMeasuredValue + namespace Tolerance { struct TypeInfo { @@ -23882,6 +25647,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Tolerance + namespace FeatureMap { struct TypeInfo { @@ -23894,6 +25660,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -23906,6 +25673,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::ChlorineConcentrationMeasurement::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace ChlorineConcentrationMeasurement namespace FecalColiformAndEColiConcentrationMeasurement { @@ -23923,6 +25703,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MeasuredValue + namespace MinMeasuredValue { struct TypeInfo { @@ -23935,6 +25716,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinMeasuredValue + namespace MaxMeasuredValue { struct TypeInfo { @@ -23947,6 +25729,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxMeasuredValue + namespace Tolerance { struct TypeInfo { @@ -23959,6 +25742,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Tolerance + namespace FeatureMap { struct TypeInfo { @@ -23971,6 +25755,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -23983,6 +25768,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::FecalColiformAndEColiConcentrationMeasurement::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace FecalColiformAndEColiConcentrationMeasurement namespace FluorideConcentrationMeasurement { @@ -24000,6 +25798,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MeasuredValue + namespace MinMeasuredValue { struct TypeInfo { @@ -24012,6 +25811,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinMeasuredValue + namespace MaxMeasuredValue { struct TypeInfo { @@ -24024,6 +25824,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxMeasuredValue + namespace Tolerance { struct TypeInfo { @@ -24036,6 +25837,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Tolerance + namespace FeatureMap { struct TypeInfo { @@ -24048,6 +25850,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -24060,6 +25863,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::FluorideConcentrationMeasurement::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace FluorideConcentrationMeasurement namespace HaloaceticAcidsConcentrationMeasurement { @@ -24077,6 +25893,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MeasuredValue + namespace MinMeasuredValue { struct TypeInfo { @@ -24089,6 +25906,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinMeasuredValue + namespace MaxMeasuredValue { struct TypeInfo { @@ -24101,6 +25919,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxMeasuredValue + namespace Tolerance { struct TypeInfo { @@ -24113,6 +25932,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Tolerance + namespace FeatureMap { struct TypeInfo { @@ -24125,6 +25945,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -24137,6 +25958,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::HaloaceticAcidsConcentrationMeasurement::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace HaloaceticAcidsConcentrationMeasurement namespace TotalTrihalomethanesConcentrationMeasurement { @@ -24154,6 +25988,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MeasuredValue + namespace MinMeasuredValue { struct TypeInfo { @@ -24166,6 +26001,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinMeasuredValue + namespace MaxMeasuredValue { struct TypeInfo { @@ -24178,6 +26014,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxMeasuredValue + namespace Tolerance { struct TypeInfo { @@ -24190,6 +26027,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Tolerance + namespace FeatureMap { struct TypeInfo { @@ -24202,6 +26040,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -24214,6 +26053,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::TotalTrihalomethanesConcentrationMeasurement::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace TotalTrihalomethanesConcentrationMeasurement namespace TotalColiformBacteriaConcentrationMeasurement { @@ -24231,6 +26083,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MeasuredValue + namespace MinMeasuredValue { struct TypeInfo { @@ -24243,6 +26096,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinMeasuredValue + namespace MaxMeasuredValue { struct TypeInfo { @@ -24255,6 +26109,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxMeasuredValue + namespace Tolerance { struct TypeInfo { @@ -24267,6 +26122,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Tolerance + namespace FeatureMap { struct TypeInfo { @@ -24279,6 +26135,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -24291,6 +26148,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::TotalColiformBacteriaConcentrationMeasurement::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace TotalColiformBacteriaConcentrationMeasurement namespace TurbidityConcentrationMeasurement { @@ -24308,6 +26178,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MeasuredValue + namespace MinMeasuredValue { struct TypeInfo { @@ -24320,6 +26191,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinMeasuredValue + namespace MaxMeasuredValue { struct TypeInfo { @@ -24332,6 +26204,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxMeasuredValue + namespace Tolerance { struct TypeInfo { @@ -24344,6 +26217,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Tolerance + namespace FeatureMap { struct TypeInfo { @@ -24356,6 +26230,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -24368,6 +26243,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::TurbidityConcentrationMeasurement::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace TurbidityConcentrationMeasurement namespace CopperConcentrationMeasurement { @@ -24385,6 +26273,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MeasuredValue + namespace MinMeasuredValue { struct TypeInfo { @@ -24397,6 +26286,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinMeasuredValue + namespace MaxMeasuredValue { struct TypeInfo { @@ -24409,6 +26299,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxMeasuredValue + namespace Tolerance { struct TypeInfo { @@ -24421,6 +26312,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Tolerance + namespace FeatureMap { struct TypeInfo { @@ -24433,6 +26325,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -24445,6 +26338,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::CopperConcentrationMeasurement::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace CopperConcentrationMeasurement namespace LeadConcentrationMeasurement { @@ -24462,6 +26368,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MeasuredValue + namespace MinMeasuredValue { struct TypeInfo { @@ -24474,6 +26381,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinMeasuredValue + namespace MaxMeasuredValue { struct TypeInfo { @@ -24486,6 +26394,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxMeasuredValue + namespace Tolerance { struct TypeInfo { @@ -24498,6 +26407,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Tolerance + namespace FeatureMap { struct TypeInfo { @@ -24510,6 +26420,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -24522,6 +26433,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::LeadConcentrationMeasurement::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace LeadConcentrationMeasurement namespace ManganeseConcentrationMeasurement { @@ -24539,6 +26463,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MeasuredValue + namespace MinMeasuredValue { struct TypeInfo { @@ -24551,6 +26476,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinMeasuredValue + namespace MaxMeasuredValue { struct TypeInfo { @@ -24563,6 +26489,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxMeasuredValue + namespace Tolerance { struct TypeInfo { @@ -24575,6 +26502,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Tolerance + namespace FeatureMap { struct TypeInfo { @@ -24587,6 +26515,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -24599,6 +26528,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::ManganeseConcentrationMeasurement::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace ManganeseConcentrationMeasurement namespace SulfateConcentrationMeasurement { @@ -24616,6 +26558,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MeasuredValue + namespace MinMeasuredValue { struct TypeInfo { @@ -24628,6 +26571,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinMeasuredValue + namespace MaxMeasuredValue { struct TypeInfo { @@ -24640,6 +26584,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxMeasuredValue + namespace Tolerance { struct TypeInfo { @@ -24652,6 +26597,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Tolerance + namespace FeatureMap { struct TypeInfo { @@ -24664,6 +26610,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -24676,6 +26623,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::SulfateConcentrationMeasurement::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace SulfateConcentrationMeasurement namespace BromodichloromethaneConcentrationMeasurement { @@ -24693,6 +26653,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MeasuredValue + namespace MinMeasuredValue { struct TypeInfo { @@ -24705,6 +26666,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinMeasuredValue + namespace MaxMeasuredValue { struct TypeInfo { @@ -24717,6 +26679,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxMeasuredValue + namespace Tolerance { struct TypeInfo { @@ -24729,6 +26692,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Tolerance + namespace FeatureMap { struct TypeInfo { @@ -24741,6 +26705,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -24753,6 +26718,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::BromodichloromethaneConcentrationMeasurement::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace BromodichloromethaneConcentrationMeasurement namespace BromoformConcentrationMeasurement { @@ -24770,6 +26748,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MeasuredValue + namespace MinMeasuredValue { struct TypeInfo { @@ -24782,6 +26761,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinMeasuredValue + namespace MaxMeasuredValue { struct TypeInfo { @@ -24794,6 +26774,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxMeasuredValue + namespace Tolerance { struct TypeInfo { @@ -24806,6 +26787,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Tolerance + namespace FeatureMap { struct TypeInfo { @@ -24818,6 +26800,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -24830,6 +26813,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::BromoformConcentrationMeasurement::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace BromoformConcentrationMeasurement namespace ChlorodibromomethaneConcentrationMeasurement { @@ -24847,6 +26843,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MeasuredValue + namespace MinMeasuredValue { struct TypeInfo { @@ -24859,6 +26856,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinMeasuredValue + namespace MaxMeasuredValue { struct TypeInfo { @@ -24871,6 +26869,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxMeasuredValue + namespace Tolerance { struct TypeInfo { @@ -24883,6 +26882,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Tolerance + namespace FeatureMap { struct TypeInfo { @@ -24895,6 +26895,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -24907,6 +26908,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::ChlorodibromomethaneConcentrationMeasurement::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace ChlorodibromomethaneConcentrationMeasurement namespace ChloroformConcentrationMeasurement { @@ -24924,6 +26938,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MeasuredValue + namespace MinMeasuredValue { struct TypeInfo { @@ -24936,6 +26951,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinMeasuredValue + namespace MaxMeasuredValue { struct TypeInfo { @@ -24948,6 +26964,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxMeasuredValue + namespace Tolerance { struct TypeInfo { @@ -24960,6 +26977,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Tolerance + namespace FeatureMap { struct TypeInfo { @@ -24972,6 +26990,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -24984,6 +27003,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::ChloroformConcentrationMeasurement::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace ChloroformConcentrationMeasurement namespace SodiumConcentrationMeasurement { @@ -25001,6 +27033,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MeasuredValue + namespace MinMeasuredValue { struct TypeInfo { @@ -25013,6 +27046,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MinMeasuredValue + namespace MaxMeasuredValue { struct TypeInfo { @@ -25025,6 +27059,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxMeasuredValue + namespace Tolerance { struct TypeInfo { @@ -25037,6 +27072,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Tolerance + namespace FeatureMap { struct TypeInfo { @@ -25049,6 +27085,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -25061,6 +27098,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::SodiumConcentrationMeasurement::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace SodiumConcentrationMeasurement namespace IasZone { @@ -25406,6 +27456,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ZoneState + namespace ZoneType { struct TypeInfo { @@ -25418,6 +27469,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ZoneType + namespace ZoneStatus { struct TypeInfo { @@ -25430,6 +27482,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ZoneStatus + namespace IasCieAddress { struct TypeInfo { @@ -25442,6 +27495,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace IasCieAddress + namespace ZoneId { struct TypeInfo { @@ -25454,6 +27508,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ZoneId + namespace NumberOfZoneSensitivityLevelsSupported { struct TypeInfo { @@ -25466,6 +27521,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NumberOfZoneSensitivityLevelsSupported + namespace CurrentZoneSensitivityLevel { struct TypeInfo { @@ -25478,6 +27534,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace CurrentZoneSensitivityLevel + namespace FeatureMap { struct TypeInfo { @@ -25490,6 +27547,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -25502,6 +27560,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::IasZone::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace IasZone namespace IasAce { @@ -26445,6 +28516,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -26457,6 +28529,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::IasAce::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace IasAce namespace IasWd { @@ -26581,6 +28666,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MaxDuration + namespace FeatureMap { struct TypeInfo { @@ -26593,6 +28679,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -26605,6 +28692,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::IasWd::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace IasWd namespace WakeOnLan { @@ -26622,6 +28722,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace WakeOnLanMacAddress + namespace FeatureMap { struct TypeInfo { @@ -26634,6 +28735,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -26646,6 +28748,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::WakeOnLan::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace WakeOnLan namespace TvChannel { @@ -26889,6 +29004,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace TvChannelList + namespace TvChannelLineup { struct TypeInfo { @@ -26901,6 +29017,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace TvChannelLineup + namespace CurrentTvChannel { struct TypeInfo { @@ -26913,6 +29030,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace CurrentTvChannel + namespace FeatureMap { struct TypeInfo { @@ -26925,6 +29043,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -26937,6 +29056,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::TvChannel::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace TvChannel namespace TargetNavigator { @@ -27072,6 +29204,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace TargetNavigatorList + namespace CurrentNavigatorTarget { struct TypeInfo { @@ -27084,6 +29217,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace CurrentNavigatorTarget + namespace FeatureMap { struct TypeInfo { @@ -27096,6 +29230,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -27108,6 +29243,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::TargetNavigator::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace TargetNavigator namespace MediaPlayback { @@ -27968,6 +30116,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace PlaybackState + namespace StartTime { struct TypeInfo { @@ -27980,6 +30129,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace StartTime + namespace Duration { struct TypeInfo { @@ -27992,6 +30142,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Duration + namespace PositionUpdatedAt { struct TypeInfo { @@ -28004,6 +30155,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace PositionUpdatedAt + namespace Position { struct TypeInfo { @@ -28016,6 +30168,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Position + namespace PlaybackSpeed { struct TypeInfo { @@ -28028,6 +30181,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace PlaybackSpeed + namespace SeekRangeEnd { struct TypeInfo { @@ -28040,6 +30194,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace SeekRangeEnd + namespace SeekRangeStart { struct TypeInfo { @@ -28052,6 +30207,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace SeekRangeStart + namespace FeatureMap { struct TypeInfo { @@ -28064,6 +30220,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -28076,6 +30233,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::MediaPlayback::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace MediaPlayback namespace MediaInput { @@ -28293,6 +30463,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MediaInputList + namespace CurrentMediaInput { struct TypeInfo { @@ -28305,6 +30476,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace CurrentMediaInput + namespace FeatureMap { struct TypeInfo { @@ -28317,6 +30489,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -28329,6 +30502,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::MediaInput::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace MediaInput namespace LowPower { @@ -28387,6 +30573,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -28399,6 +30586,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::LowPower::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace LowPower namespace KeypadInput { @@ -28607,6 +30807,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -28619,6 +30820,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::KeypadInput::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace KeypadInput namespace ContentLauncher { @@ -28973,6 +31187,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AcceptsHeaderList + namespace SupportedStreamingTypes { struct TypeInfo { @@ -28985,6 +31200,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace SupportedStreamingTypes + namespace FeatureMap { struct TypeInfo { @@ -28997,6 +31213,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -29009,6 +31226,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::ContentLauncher::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace ContentLauncher namespace AudioOutput { @@ -29152,6 +31382,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AudioOutputList + namespace CurrentAudioOutput { struct TypeInfo { @@ -29164,6 +31395,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace CurrentAudioOutput + namespace FeatureMap { struct TypeInfo { @@ -29176,6 +31408,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -29188,6 +31421,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::AudioOutput::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace AudioOutput namespace ApplicationLauncher { @@ -29332,6 +31578,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ApplicationLauncherList + namespace CatalogVendorId { struct TypeInfo { @@ -29344,6 +31591,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace CatalogVendorId + namespace ApplicationId { struct TypeInfo { @@ -29356,6 +31604,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ApplicationId + namespace FeatureMap { struct TypeInfo { @@ -29368,6 +31617,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -29380,6 +31630,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::ApplicationLauncher::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace ApplicationLauncher namespace ApplicationBasic { @@ -29450,6 +31713,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace VendorName + namespace VendorId { struct TypeInfo { @@ -29462,6 +31726,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace VendorId + namespace ApplicationName { struct TypeInfo { @@ -29474,6 +31739,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ApplicationName + namespace ProductId { struct TypeInfo { @@ -29486,6 +31752,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ProductId + namespace ApplicationId { struct TypeInfo { @@ -29498,6 +31765,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ApplicationId + namespace CatalogVendorId { struct TypeInfo { @@ -29510,6 +31778,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace CatalogVendorId + namespace ApplicationStatus { struct TypeInfo { @@ -29522,6 +31791,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ApplicationStatus + namespace FeatureMap { struct TypeInfo { @@ -29534,6 +31804,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -29546,6 +31817,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::ApplicationBasic::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace ApplicationBasic namespace AccountLogin { @@ -29685,6 +31969,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -29697,6 +31982,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::AccountLogin::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace AccountLogin namespace TestCluster { @@ -31184,6 +33482,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Boolean + namespace Bitmap8 { struct TypeInfo { @@ -31196,6 +33495,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Bitmap8 + namespace Bitmap16 { struct TypeInfo { @@ -31208,6 +33508,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Bitmap16 + namespace Bitmap32 { struct TypeInfo { @@ -31220,6 +33521,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Bitmap32 + namespace Bitmap64 { struct TypeInfo { @@ -31232,6 +33534,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Bitmap64 + namespace Int8u { struct TypeInfo { @@ -31244,6 +33547,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Int8u + namespace Int16u { struct TypeInfo { @@ -31256,6 +33560,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Int16u + namespace Int24u { struct TypeInfo { @@ -31268,6 +33573,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Int24u + namespace Int32u { struct TypeInfo { @@ -31280,6 +33586,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Int32u + namespace Int40u { struct TypeInfo { @@ -31292,6 +33599,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Int40u + namespace Int48u { struct TypeInfo { @@ -31304,6 +33612,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Int48u + namespace Int56u { struct TypeInfo { @@ -31316,6 +33625,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Int56u + namespace Int64u { struct TypeInfo { @@ -31328,6 +33638,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Int64u + namespace Int8s { struct TypeInfo { @@ -31340,6 +33651,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Int8s + namespace Int16s { struct TypeInfo { @@ -31352,6 +33664,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Int16s + namespace Int24s { struct TypeInfo { @@ -31364,6 +33677,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Int24s + namespace Int32s { struct TypeInfo { @@ -31376,6 +33690,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Int32s + namespace Int40s { struct TypeInfo { @@ -31388,6 +33703,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Int40s + namespace Int48s { struct TypeInfo { @@ -31400,6 +33716,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Int48s + namespace Int56s { struct TypeInfo { @@ -31412,6 +33729,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Int56s + namespace Int64s { struct TypeInfo { @@ -31424,6 +33742,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Int64s + namespace Enum8 { struct TypeInfo { @@ -31436,6 +33755,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Enum8 + namespace Enum16 { struct TypeInfo { @@ -31448,6 +33768,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Enum16 + namespace FloatSingle { struct TypeInfo { @@ -31460,6 +33781,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FloatSingle + namespace FloatDouble { struct TypeInfo { @@ -31472,6 +33794,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FloatDouble + namespace OctetString { struct TypeInfo { @@ -31484,6 +33807,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace OctetString + namespace ListInt8u { struct TypeInfo { @@ -31496,6 +33820,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ListInt8u + namespace ListOctetString { struct TypeInfo { @@ -31508,6 +33833,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ListOctetString + namespace ListStructOctetString { struct TypeInfo { @@ -31520,6 +33846,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ListStructOctetString + namespace LongOctetString { struct TypeInfo { @@ -31532,6 +33859,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace LongOctetString + namespace CharString { struct TypeInfo { @@ -31544,6 +33872,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace CharString + namespace LongCharString { struct TypeInfo { @@ -31556,6 +33885,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace LongCharString + namespace EpochUs { struct TypeInfo { @@ -31568,6 +33898,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace EpochUs + namespace EpochS { struct TypeInfo { @@ -31580,6 +33911,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace EpochS + namespace VendorId { struct TypeInfo { @@ -31592,6 +33924,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace VendorId + namespace ListNullablesAndOptionalsStruct { struct TypeInfo { @@ -31604,6 +33937,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ListNullablesAndOptionalsStruct + namespace EnumAttr { struct TypeInfo { @@ -31616,6 +33950,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace EnumAttr + namespace Struct { struct TypeInfo { @@ -31628,6 +33963,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Struct + namespace RangeRestrictedInt8u { struct TypeInfo { @@ -31640,6 +33976,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RangeRestrictedInt8u + namespace RangeRestrictedInt8s { struct TypeInfo { @@ -31652,6 +33989,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RangeRestrictedInt8s + namespace RangeRestrictedInt16u { struct TypeInfo { @@ -31664,6 +34002,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RangeRestrictedInt16u + namespace RangeRestrictedInt16s { struct TypeInfo { @@ -31676,6 +34015,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RangeRestrictedInt16s + namespace ListLongOctetString { struct TypeInfo { @@ -31688,6 +34028,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ListLongOctetString + namespace TimedWriteBoolean { struct TypeInfo { @@ -31700,6 +34041,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return true; } }; } // namespace TimedWriteBoolean + namespace Unsupported { struct TypeInfo { @@ -31712,6 +34054,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Unsupported + namespace NullableBoolean { struct TypeInfo { @@ -31724,6 +34067,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NullableBoolean + namespace NullableBitmap8 { struct TypeInfo { @@ -31736,6 +34080,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NullableBitmap8 + namespace NullableBitmap16 { struct TypeInfo { @@ -31748,6 +34093,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NullableBitmap16 + namespace NullableBitmap32 { struct TypeInfo { @@ -31760,6 +34106,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NullableBitmap32 + namespace NullableBitmap64 { struct TypeInfo { @@ -31772,6 +34119,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NullableBitmap64 + namespace NullableInt8u { struct TypeInfo { @@ -31784,6 +34132,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NullableInt8u + namespace NullableInt16u { struct TypeInfo { @@ -31796,6 +34145,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NullableInt16u + namespace NullableInt24u { struct TypeInfo { @@ -31808,6 +34158,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NullableInt24u + namespace NullableInt32u { struct TypeInfo { @@ -31820,6 +34171,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NullableInt32u + namespace NullableInt40u { struct TypeInfo { @@ -31832,6 +34184,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NullableInt40u + namespace NullableInt48u { struct TypeInfo { @@ -31844,6 +34197,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NullableInt48u + namespace NullableInt56u { struct TypeInfo { @@ -31856,6 +34210,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NullableInt56u + namespace NullableInt64u { struct TypeInfo { @@ -31868,6 +34223,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NullableInt64u + namespace NullableInt8s { struct TypeInfo { @@ -31880,6 +34236,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NullableInt8s + namespace NullableInt16s { struct TypeInfo { @@ -31892,6 +34249,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NullableInt16s + namespace NullableInt24s { struct TypeInfo { @@ -31904,6 +34262,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NullableInt24s + namespace NullableInt32s { struct TypeInfo { @@ -31916,6 +34275,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NullableInt32s + namespace NullableInt40s { struct TypeInfo { @@ -31928,6 +34288,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NullableInt40s + namespace NullableInt48s { struct TypeInfo { @@ -31940,6 +34301,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NullableInt48s + namespace NullableInt56s { struct TypeInfo { @@ -31952,6 +34314,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NullableInt56s + namespace NullableInt64s { struct TypeInfo { @@ -31964,6 +34327,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NullableInt64s + namespace NullableEnum8 { struct TypeInfo { @@ -31976,6 +34340,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NullableEnum8 + namespace NullableEnum16 { struct TypeInfo { @@ -31988,6 +34353,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NullableEnum16 + namespace NullableFloatSingle { struct TypeInfo { @@ -32000,6 +34366,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NullableFloatSingle + namespace NullableFloatDouble { struct TypeInfo { @@ -32012,6 +34379,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NullableFloatDouble + namespace NullableOctetString { struct TypeInfo { @@ -32024,6 +34392,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NullableOctetString + namespace NullableCharString { struct TypeInfo { @@ -32036,6 +34405,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NullableCharString + namespace NullableEnumAttr { struct TypeInfo { @@ -32048,6 +34418,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NullableEnumAttr + namespace NullableStruct { struct TypeInfo { @@ -32060,6 +34431,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NullableStruct + namespace NullableRangeRestrictedInt8u { struct TypeInfo { @@ -32072,6 +34444,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NullableRangeRestrictedInt8u + namespace NullableRangeRestrictedInt8s { struct TypeInfo { @@ -32084,6 +34457,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NullableRangeRestrictedInt8s + namespace NullableRangeRestrictedInt16u { struct TypeInfo { @@ -32096,6 +34470,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NullableRangeRestrictedInt16u + namespace NullableRangeRestrictedInt16s { struct TypeInfo { @@ -32108,6 +34483,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NullableRangeRestrictedInt16s + namespace FeatureMap { struct TypeInfo { @@ -32120,6 +34496,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -32132,6 +34509,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::TestCluster::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes namespace Events { namespace TestEvent { @@ -32639,6 +35029,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -32651,6 +35042,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::Messaging::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace Messaging namespace ApplianceIdentification { @@ -32668,6 +35072,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BasicIdentification + namespace CompanyName { struct TypeInfo { @@ -32680,6 +35085,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace CompanyName + namespace CompanyId { struct TypeInfo { @@ -32692,6 +35098,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace CompanyId + namespace BrandName { struct TypeInfo { @@ -32704,6 +35111,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BrandName + namespace BrandId { struct TypeInfo { @@ -32716,6 +35124,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace BrandId + namespace Model { struct TypeInfo { @@ -32728,6 +35137,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Model + namespace PartNumber { struct TypeInfo { @@ -32740,6 +35150,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace PartNumber + namespace ProductRevision { struct TypeInfo { @@ -32752,6 +35163,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ProductRevision + namespace SoftwareRevision { struct TypeInfo { @@ -32764,6 +35176,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace SoftwareRevision + namespace ProductTypeName { struct TypeInfo { @@ -32776,6 +35189,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ProductTypeName + namespace ProductTypeId { struct TypeInfo { @@ -32788,6 +35202,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ProductTypeId + namespace CecedSpecificationVersion { struct TypeInfo { @@ -32800,6 +35215,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace CecedSpecificationVersion + namespace FeatureMap { struct TypeInfo { @@ -32812,6 +35228,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -32824,6 +35241,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::ApplianceIdentification::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace ApplianceIdentification namespace MeterIdentification { @@ -32841,6 +35271,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace CompanyName + namespace MeterTypeId { struct TypeInfo { @@ -32853,6 +35284,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MeterTypeId + namespace DataQualityId { struct TypeInfo { @@ -32865,6 +35297,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace DataQualityId + namespace CustomerName { struct TypeInfo { @@ -32877,6 +35310,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace CustomerName + namespace Model { struct TypeInfo { @@ -32889,6 +35323,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Model + namespace PartNumber { struct TypeInfo { @@ -32901,6 +35336,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace PartNumber + namespace ProductRevision { struct TypeInfo { @@ -32913,6 +35349,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ProductRevision + namespace SoftwareRevision { struct TypeInfo { @@ -32925,6 +35362,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace SoftwareRevision + namespace UtilityName { struct TypeInfo { @@ -32937,6 +35375,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace UtilityName + namespace Pod { struct TypeInfo { @@ -32949,6 +35388,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Pod + namespace AvailablePower { struct TypeInfo { @@ -32961,6 +35401,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AvailablePower + namespace PowerThreshold { struct TypeInfo { @@ -32973,6 +35414,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace PowerThreshold + namespace FeatureMap { struct TypeInfo { @@ -32985,6 +35427,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -32997,6 +35440,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::MeterIdentification::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace MeterIdentification namespace ApplianceEventsAndAlert { @@ -33199,6 +35655,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -33211,6 +35668,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::ApplianceEventsAndAlert::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace ApplianceEventsAndAlert namespace ApplianceStatistics { @@ -33478,6 +35948,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace LogMaxSize + namespace LogQueueMaxSize { struct TypeInfo { @@ -33490,6 +35961,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace LogQueueMaxSize + namespace FeatureMap { struct TypeInfo { @@ -33502,6 +35974,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -33514,6 +35987,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::ApplianceStatistics::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace ApplianceStatistics namespace ElectricalMeasurement { @@ -33713,6 +36199,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MeasurementType + namespace DcVoltage { struct TypeInfo { @@ -33725,6 +36212,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace DcVoltage + namespace DcVoltageMin { struct TypeInfo { @@ -33737,6 +36225,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace DcVoltageMin + namespace DcVoltageMax { struct TypeInfo { @@ -33749,6 +36238,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace DcVoltageMax + namespace DcCurrent { struct TypeInfo { @@ -33761,6 +36251,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace DcCurrent + namespace DcCurrentMin { struct TypeInfo { @@ -33773,6 +36264,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace DcCurrentMin + namespace DcCurrentMax { struct TypeInfo { @@ -33785,6 +36277,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace DcCurrentMax + namespace DcPower { struct TypeInfo { @@ -33797,6 +36290,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace DcPower + namespace DcPowerMin { struct TypeInfo { @@ -33809,6 +36303,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace DcPowerMin + namespace DcPowerMax { struct TypeInfo { @@ -33821,6 +36316,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace DcPowerMax + namespace DcVoltageMultiplier { struct TypeInfo { @@ -33833,6 +36329,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace DcVoltageMultiplier + namespace DcVoltageDivisor { struct TypeInfo { @@ -33845,6 +36342,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace DcVoltageDivisor + namespace DcCurrentMultiplier { struct TypeInfo { @@ -33857,6 +36355,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace DcCurrentMultiplier + namespace DcCurrentDivisor { struct TypeInfo { @@ -33869,6 +36368,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace DcCurrentDivisor + namespace DcPowerMultiplier { struct TypeInfo { @@ -33881,6 +36381,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace DcPowerMultiplier + namespace DcPowerDivisor { struct TypeInfo { @@ -33893,6 +36394,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace DcPowerDivisor + namespace AcFrequency { struct TypeInfo { @@ -33905,6 +36407,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AcFrequency + namespace AcFrequencyMin { struct TypeInfo { @@ -33917,6 +36420,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AcFrequencyMin + namespace AcFrequencyMax { struct TypeInfo { @@ -33929,6 +36433,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AcFrequencyMax + namespace NeutralCurrent { struct TypeInfo { @@ -33941,6 +36446,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace NeutralCurrent + namespace TotalActivePower { struct TypeInfo { @@ -33953,6 +36459,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace TotalActivePower + namespace TotalReactivePower { struct TypeInfo { @@ -33965,6 +36472,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace TotalReactivePower + namespace TotalApparentPower { struct TypeInfo { @@ -33977,6 +36485,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace TotalApparentPower + namespace Measured1stHarmonicCurrent { struct TypeInfo { @@ -33989,6 +36498,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Measured1stHarmonicCurrent + namespace Measured3rdHarmonicCurrent { struct TypeInfo { @@ -34001,6 +36511,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Measured3rdHarmonicCurrent + namespace Measured5thHarmonicCurrent { struct TypeInfo { @@ -34013,6 +36524,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Measured5thHarmonicCurrent + namespace Measured7thHarmonicCurrent { struct TypeInfo { @@ -34025,6 +36537,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Measured7thHarmonicCurrent + namespace Measured9thHarmonicCurrent { struct TypeInfo { @@ -34037,6 +36550,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Measured9thHarmonicCurrent + namespace Measured11thHarmonicCurrent { struct TypeInfo { @@ -34049,6 +36563,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace Measured11thHarmonicCurrent + namespace MeasuredPhase1stHarmonicCurrent { struct TypeInfo { @@ -34061,6 +36576,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MeasuredPhase1stHarmonicCurrent + namespace MeasuredPhase3rdHarmonicCurrent { struct TypeInfo { @@ -34073,6 +36589,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MeasuredPhase3rdHarmonicCurrent + namespace MeasuredPhase5thHarmonicCurrent { struct TypeInfo { @@ -34085,6 +36602,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MeasuredPhase5thHarmonicCurrent + namespace MeasuredPhase7thHarmonicCurrent { struct TypeInfo { @@ -34097,6 +36615,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MeasuredPhase7thHarmonicCurrent + namespace MeasuredPhase9thHarmonicCurrent { struct TypeInfo { @@ -34109,6 +36628,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MeasuredPhase9thHarmonicCurrent + namespace MeasuredPhase11thHarmonicCurrent { struct TypeInfo { @@ -34121,6 +36641,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace MeasuredPhase11thHarmonicCurrent + namespace AcFrequencyMultiplier { struct TypeInfo { @@ -34133,6 +36654,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AcFrequencyMultiplier + namespace AcFrequencyDivisor { struct TypeInfo { @@ -34145,6 +36667,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AcFrequencyDivisor + namespace PowerMultiplier { struct TypeInfo { @@ -34157,6 +36680,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace PowerMultiplier + namespace PowerDivisor { struct TypeInfo { @@ -34169,6 +36693,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace PowerDivisor + namespace HarmonicCurrentMultiplier { struct TypeInfo { @@ -34181,6 +36706,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace HarmonicCurrentMultiplier + namespace PhaseHarmonicCurrentMultiplier { struct TypeInfo { @@ -34193,6 +36719,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace PhaseHarmonicCurrentMultiplier + namespace InstantaneousVoltage { struct TypeInfo { @@ -34205,6 +36732,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace InstantaneousVoltage + namespace InstantaneousLineCurrent { struct TypeInfo { @@ -34217,6 +36745,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace InstantaneousLineCurrent + namespace InstantaneousActiveCurrent { struct TypeInfo { @@ -34229,6 +36758,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace InstantaneousActiveCurrent + namespace InstantaneousReactiveCurrent { struct TypeInfo { @@ -34241,6 +36771,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace InstantaneousReactiveCurrent + namespace InstantaneousPower { struct TypeInfo { @@ -34253,6 +36784,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace InstantaneousPower + namespace RmsVoltage { struct TypeInfo { @@ -34265,6 +36797,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RmsVoltage + namespace RmsVoltageMin { struct TypeInfo { @@ -34277,6 +36810,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RmsVoltageMin + namespace RmsVoltageMax { struct TypeInfo { @@ -34289,6 +36823,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RmsVoltageMax + namespace RmsCurrent { struct TypeInfo { @@ -34301,6 +36836,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RmsCurrent + namespace RmsCurrentMin { struct TypeInfo { @@ -34313,6 +36849,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RmsCurrentMin + namespace RmsCurrentMax { struct TypeInfo { @@ -34325,6 +36862,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RmsCurrentMax + namespace ActivePower { struct TypeInfo { @@ -34337,6 +36875,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ActivePower + namespace ActivePowerMin { struct TypeInfo { @@ -34349,6 +36888,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ActivePowerMin + namespace ActivePowerMax { struct TypeInfo { @@ -34361,6 +36901,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ActivePowerMax + namespace ReactivePower { struct TypeInfo { @@ -34373,6 +36914,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ReactivePower + namespace ApparentPower { struct TypeInfo { @@ -34385,6 +36927,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ApparentPower + namespace PowerFactor { struct TypeInfo { @@ -34397,6 +36940,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace PowerFactor + namespace AverageRmsVoltageMeasurementPeriod { struct TypeInfo { @@ -34409,6 +36953,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AverageRmsVoltageMeasurementPeriod + namespace AverageRmsUnderVoltageCounter { struct TypeInfo { @@ -34421,6 +36966,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AverageRmsUnderVoltageCounter + namespace RmsExtremeOverVoltagePeriod { struct TypeInfo { @@ -34433,6 +36979,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RmsExtremeOverVoltagePeriod + namespace RmsExtremeUnderVoltagePeriod { struct TypeInfo { @@ -34445,6 +36992,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RmsExtremeUnderVoltagePeriod + namespace RmsVoltageSagPeriod { struct TypeInfo { @@ -34457,6 +37005,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RmsVoltageSagPeriod + namespace RmsVoltageSwellPeriod { struct TypeInfo { @@ -34469,6 +37018,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RmsVoltageSwellPeriod + namespace AcVoltageMultiplier { struct TypeInfo { @@ -34481,6 +37031,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AcVoltageMultiplier + namespace AcVoltageDivisor { struct TypeInfo { @@ -34493,6 +37044,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AcVoltageDivisor + namespace AcCurrentMultiplier { struct TypeInfo { @@ -34505,6 +37057,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AcCurrentMultiplier + namespace AcCurrentDivisor { struct TypeInfo { @@ -34517,6 +37070,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AcCurrentDivisor + namespace AcPowerMultiplier { struct TypeInfo { @@ -34529,6 +37083,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AcPowerMultiplier + namespace AcPowerDivisor { struct TypeInfo { @@ -34541,6 +37096,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AcPowerDivisor + namespace OverloadAlarmsMask { struct TypeInfo { @@ -34553,6 +37109,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace OverloadAlarmsMask + namespace VoltageOverload { struct TypeInfo { @@ -34565,6 +37122,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace VoltageOverload + namespace CurrentOverload { struct TypeInfo { @@ -34577,6 +37135,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace CurrentOverload + namespace AcOverloadAlarmsMask { struct TypeInfo { @@ -34589,6 +37148,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AcOverloadAlarmsMask + namespace AcVoltageOverload { struct TypeInfo { @@ -34601,6 +37161,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AcVoltageOverload + namespace AcCurrentOverload { struct TypeInfo { @@ -34613,6 +37174,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AcCurrentOverload + namespace AcActivePowerOverload { struct TypeInfo { @@ -34625,6 +37187,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AcActivePowerOverload + namespace AcReactivePowerOverload { struct TypeInfo { @@ -34637,6 +37200,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AcReactivePowerOverload + namespace AverageRmsOverVoltage { struct TypeInfo { @@ -34649,6 +37213,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AverageRmsOverVoltage + namespace AverageRmsUnderVoltage { struct TypeInfo { @@ -34661,6 +37226,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AverageRmsUnderVoltage + namespace RmsExtremeOverVoltage { struct TypeInfo { @@ -34673,6 +37239,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RmsExtremeOverVoltage + namespace RmsExtremeUnderVoltage { struct TypeInfo { @@ -34685,6 +37252,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RmsExtremeUnderVoltage + namespace RmsVoltageSag { struct TypeInfo { @@ -34697,6 +37265,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RmsVoltageSag + namespace RmsVoltageSwell { struct TypeInfo { @@ -34709,6 +37278,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RmsVoltageSwell + namespace LineCurrentPhaseB { struct TypeInfo { @@ -34721,6 +37291,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace LineCurrentPhaseB + namespace ActiveCurrentPhaseB { struct TypeInfo { @@ -34733,6 +37304,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ActiveCurrentPhaseB + namespace ReactiveCurrentPhaseB { struct TypeInfo { @@ -34745,6 +37317,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ReactiveCurrentPhaseB + namespace RmsVoltagePhaseB { struct TypeInfo { @@ -34757,6 +37330,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RmsVoltagePhaseB + namespace RmsVoltageMinPhaseB { struct TypeInfo { @@ -34769,6 +37343,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RmsVoltageMinPhaseB + namespace RmsVoltageMaxPhaseB { struct TypeInfo { @@ -34781,6 +37356,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RmsVoltageMaxPhaseB + namespace RmsCurrentPhaseB { struct TypeInfo { @@ -34793,6 +37369,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RmsCurrentPhaseB + namespace RmsCurrentMinPhaseB { struct TypeInfo { @@ -34805,6 +37382,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RmsCurrentMinPhaseB + namespace RmsCurrentMaxPhaseB { struct TypeInfo { @@ -34817,6 +37395,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RmsCurrentMaxPhaseB + namespace ActivePowerPhaseB { struct TypeInfo { @@ -34829,6 +37408,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ActivePowerPhaseB + namespace ActivePowerMinPhaseB { struct TypeInfo { @@ -34841,6 +37421,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ActivePowerMinPhaseB + namespace ActivePowerMaxPhaseB { struct TypeInfo { @@ -34853,6 +37434,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ActivePowerMaxPhaseB + namespace ReactivePowerPhaseB { struct TypeInfo { @@ -34865,6 +37447,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ReactivePowerPhaseB + namespace ApparentPowerPhaseB { struct TypeInfo { @@ -34877,6 +37460,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ApparentPowerPhaseB + namespace PowerFactorPhaseB { struct TypeInfo { @@ -34889,6 +37473,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace PowerFactorPhaseB + namespace AverageRmsVoltageMeasurementPeriodPhaseB { struct TypeInfo { @@ -34901,6 +37486,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AverageRmsVoltageMeasurementPeriodPhaseB + namespace AverageRmsOverVoltageCounterPhaseB { struct TypeInfo { @@ -34913,6 +37499,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AverageRmsOverVoltageCounterPhaseB + namespace AverageRmsUnderVoltageCounterPhaseB { struct TypeInfo { @@ -34925,6 +37512,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AverageRmsUnderVoltageCounterPhaseB + namespace RmsExtremeOverVoltagePeriodPhaseB { struct TypeInfo { @@ -34937,6 +37525,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RmsExtremeOverVoltagePeriodPhaseB + namespace RmsExtremeUnderVoltagePeriodPhaseB { struct TypeInfo { @@ -34949,6 +37538,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RmsExtremeUnderVoltagePeriodPhaseB + namespace RmsVoltageSagPeriodPhaseB { struct TypeInfo { @@ -34961,6 +37551,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RmsVoltageSagPeriodPhaseB + namespace RmsVoltageSwellPeriodPhaseB { struct TypeInfo { @@ -34973,6 +37564,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RmsVoltageSwellPeriodPhaseB + namespace LineCurrentPhaseC { struct TypeInfo { @@ -34985,6 +37577,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace LineCurrentPhaseC + namespace ActiveCurrentPhaseC { struct TypeInfo { @@ -34997,6 +37590,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ActiveCurrentPhaseC + namespace ReactiveCurrentPhaseC { struct TypeInfo { @@ -35009,6 +37603,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ReactiveCurrentPhaseC + namespace RmsVoltagePhaseC { struct TypeInfo { @@ -35021,6 +37616,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RmsVoltagePhaseC + namespace RmsVoltageMinPhaseC { struct TypeInfo { @@ -35033,6 +37629,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RmsVoltageMinPhaseC + namespace RmsVoltageMaxPhaseC { struct TypeInfo { @@ -35045,6 +37642,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RmsVoltageMaxPhaseC + namespace RmsCurrentPhaseC { struct TypeInfo { @@ -35057,6 +37655,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RmsCurrentPhaseC + namespace RmsCurrentMinPhaseC { struct TypeInfo { @@ -35069,6 +37668,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RmsCurrentMinPhaseC + namespace RmsCurrentMaxPhaseC { struct TypeInfo { @@ -35081,6 +37681,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RmsCurrentMaxPhaseC + namespace ActivePowerPhaseC { struct TypeInfo { @@ -35093,6 +37694,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ActivePowerPhaseC + namespace ActivePowerMinPhaseC { struct TypeInfo { @@ -35105,6 +37707,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ActivePowerMinPhaseC + namespace ActivePowerMaxPhaseC { struct TypeInfo { @@ -35117,6 +37720,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ActivePowerMaxPhaseC + namespace ReactivePowerPhaseC { struct TypeInfo { @@ -35129,6 +37733,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ReactivePowerPhaseC + namespace ApparentPowerPhaseC { struct TypeInfo { @@ -35141,6 +37746,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ApparentPowerPhaseC + namespace PowerFactorPhaseC { struct TypeInfo { @@ -35153,6 +37759,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace PowerFactorPhaseC + namespace AverageRmsVoltageMeasurementPeriodPhaseC { struct TypeInfo { @@ -35165,6 +37772,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AverageRmsVoltageMeasurementPeriodPhaseC + namespace AverageRmsOverVoltageCounterPhaseC { struct TypeInfo { @@ -35177,6 +37785,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AverageRmsOverVoltageCounterPhaseC + namespace AverageRmsUnderVoltageCounterPhaseC { struct TypeInfo { @@ -35189,6 +37798,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace AverageRmsUnderVoltageCounterPhaseC + namespace RmsExtremeOverVoltagePeriodPhaseC { struct TypeInfo { @@ -35201,6 +37811,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RmsExtremeOverVoltagePeriodPhaseC + namespace RmsExtremeUnderVoltagePeriodPhaseC { struct TypeInfo { @@ -35213,6 +37824,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RmsExtremeUnderVoltagePeriodPhaseC + namespace RmsVoltageSagPeriodPhaseC { struct TypeInfo { @@ -35225,6 +37837,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RmsVoltageSagPeriodPhaseC + namespace RmsVoltageSwellPeriodPhaseC { struct TypeInfo { @@ -35237,6 +37850,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace RmsVoltageSwellPeriodPhaseC + namespace FeatureMap { struct TypeInfo { @@ -35249,6 +37863,7 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace FeatureMap + namespace ClusterRevision { struct TypeInfo { @@ -35261,6 +37876,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace ClusterRevision + +namespace AttributeList { +struct TypeInfo +{ + using Type = DataModel::List; + using DecodableType = DataModel::DecodableList; + using DecodableArgType = const DataModel::DecodableList &; + static constexpr ClusterId GetClusterId() { return Clusters::ElectricalMeasurement::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::AttributeList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace AttributeList + } // namespace Attributes } // namespace ElectricalMeasurement diff --git a/zzz_generated/app-common/app-common/zap-generated/ids/Attributes.h b/zzz_generated/app-common/app-common/zap-generated/ids/Attributes.h index fa47cb9cb4ccae..3848a22786c4b0 100644 --- a/zzz_generated/app-common/app-common/zap-generated/ids/Attributes.h +++ b/zzz_generated/app-common/app-common/zap-generated/ids/Attributes.h @@ -36,6 +36,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = 0x0000FFFD; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = 0x0000FFFB; +} // namespace AttributeList + } // namespace Attributes } // namespace Globals @@ -278,6 +282,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace PowerConfiguration @@ -328,6 +336,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace DeviceTemperatureConfiguration @@ -350,6 +362,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace Identify @@ -368,6 +384,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace Groups @@ -406,6 +426,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace Scenes @@ -440,6 +464,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace OnOff @@ -462,6 +490,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace OnOffSwitchConfiguration @@ -532,6 +564,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace LevelControl @@ -550,6 +586,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace Alarms @@ -604,6 +644,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace Time @@ -654,6 +698,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace BinaryInputBasic @@ -688,6 +736,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace PowerProfile @@ -714,6 +766,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace ApplianceControl @@ -728,6 +784,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace PulseWidthModulation @@ -758,6 +818,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace Descriptor @@ -772,6 +836,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace Binding @@ -794,6 +862,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace AccessControl @@ -836,6 +908,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace PollControl @@ -862,6 +938,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace BridgedActions @@ -952,6 +1032,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace Basic @@ -966,6 +1050,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace OtaSoftwareUpdateProvider @@ -988,6 +1076,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace OtaSoftwareUpdateRequestor @@ -1002,6 +1094,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace LocalizationConfiguration @@ -1016,6 +1112,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace LocalizationTimeFormat @@ -1030,6 +1130,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace LocalizationUnit @@ -1048,6 +1152,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace PowerSourceConfiguration @@ -1186,6 +1294,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace PowerSource @@ -1216,6 +1328,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace GeneralCommissioning @@ -1230,6 +1346,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace NetworkCommissioning @@ -1244,6 +1364,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace DiagnosticLogs @@ -1290,6 +1414,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace GeneralDiagnostics @@ -1320,6 +1448,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace SoftwareDiagnostics @@ -1586,6 +1718,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace ThreadNetworkDiagnostics @@ -1652,6 +1788,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace WiFiNetworkDiagnostics @@ -1702,6 +1842,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace EthernetNetworkDiagnostics @@ -1716,6 +1860,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace TimeSynchronization @@ -1790,6 +1938,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace BridgedDeviceBasic @@ -1816,6 +1968,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace Switch @@ -1830,6 +1986,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace AdministratorCommissioning @@ -1864,6 +2024,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace OperationalCredentials @@ -1886,6 +2050,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace GroupKeyManagement @@ -1904,6 +2072,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace FixedLabel @@ -1922,6 +2094,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace UserLabel @@ -1936,6 +2112,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace ProxyConfiguration @@ -1950,6 +2130,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace ProxyDiscovery @@ -1964,6 +2148,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace ProxyValid @@ -1982,6 +2170,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace BooleanState @@ -2016,6 +2208,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace ModeSelect @@ -2050,6 +2246,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace ShadeConfiguration @@ -2244,6 +2444,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace DoorLock @@ -2366,6 +2570,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace WindowCovering @@ -2420,6 +2628,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace BarrierControl @@ -2530,6 +2742,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace PumpConfigurationAndControl @@ -2716,6 +2932,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace Thermostat @@ -2738,6 +2958,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace FanControl @@ -2784,6 +3008,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace DehumidificationControl @@ -2810,6 +3038,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace ThermostatUserInterfaceConfiguration @@ -3032,6 +3264,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace ColorControl @@ -3110,6 +3346,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace BallastConfiguration @@ -3144,6 +3384,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace IlluminanceMeasurement @@ -3174,6 +3418,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace TemperatureMeasurement @@ -3224,6 +3472,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace PressureMeasurement @@ -3254,6 +3506,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace FlowMeasurement @@ -3284,6 +3540,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace RelativeHumidityMeasurement @@ -3346,6 +3606,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace OccupancySensing @@ -3376,6 +3640,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace CarbonMonoxideConcentrationMeasurement @@ -3406,6 +3674,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace CarbonDioxideConcentrationMeasurement @@ -3436,6 +3708,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace EthyleneConcentrationMeasurement @@ -3466,6 +3742,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace EthyleneOxideConcentrationMeasurement @@ -3496,6 +3776,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace HydrogenConcentrationMeasurement @@ -3526,6 +3810,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace HydrogenSulphideConcentrationMeasurement @@ -3556,6 +3844,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace NitricOxideConcentrationMeasurement @@ -3586,6 +3878,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace NitrogenDioxideConcentrationMeasurement @@ -3616,6 +3912,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace OxygenConcentrationMeasurement @@ -3646,6 +3946,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace OzoneConcentrationMeasurement @@ -3676,6 +3980,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace SulfurDioxideConcentrationMeasurement @@ -3706,6 +4014,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace DissolvedOxygenConcentrationMeasurement @@ -3736,6 +4048,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace BromateConcentrationMeasurement @@ -3766,6 +4082,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace ChloraminesConcentrationMeasurement @@ -3796,6 +4116,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace ChlorineConcentrationMeasurement @@ -3826,6 +4150,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace FecalColiformAndEColiConcentrationMeasurement @@ -3856,6 +4184,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace FluorideConcentrationMeasurement @@ -3886,6 +4218,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace HaloaceticAcidsConcentrationMeasurement @@ -3916,6 +4252,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace TotalTrihalomethanesConcentrationMeasurement @@ -3946,6 +4286,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace TotalColiformBacteriaConcentrationMeasurement @@ -3976,6 +4320,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace TurbidityConcentrationMeasurement @@ -4006,6 +4354,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace CopperConcentrationMeasurement @@ -4036,6 +4388,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace LeadConcentrationMeasurement @@ -4066,6 +4422,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace ManganeseConcentrationMeasurement @@ -4096,6 +4456,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace SulfateConcentrationMeasurement @@ -4126,6 +4490,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace BromodichloromethaneConcentrationMeasurement @@ -4156,6 +4524,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace BromoformConcentrationMeasurement @@ -4186,6 +4558,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace ChlorodibromomethaneConcentrationMeasurement @@ -4216,6 +4592,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace ChloroformConcentrationMeasurement @@ -4246,6 +4626,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace SodiumConcentrationMeasurement @@ -4288,6 +4672,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace IasZone @@ -4302,6 +4690,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace IasAce @@ -4320,6 +4712,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace IasWd @@ -4338,6 +4734,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace WakeOnLan @@ -4364,6 +4764,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace TvChannel @@ -4386,6 +4790,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace TargetNavigator @@ -4432,6 +4840,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace MediaPlayback @@ -4454,6 +4866,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace MediaInput @@ -4468,6 +4884,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace LowPower @@ -4482,6 +4902,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace KeypadInput @@ -4504,6 +4928,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace ContentLauncher @@ -4526,6 +4954,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace AudioOutput @@ -4552,6 +4984,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace ApplicationLauncher @@ -4594,6 +5030,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace ApplicationBasic @@ -4608,6 +5048,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace AccountLogin @@ -4934,6 +5378,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace TestCluster @@ -4948,6 +5396,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace Messaging @@ -5010,6 +5462,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace ApplianceIdentification @@ -5072,6 +5528,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace MeterIdentification @@ -5086,6 +5546,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace ApplianceEventsAndAlert @@ -5108,6 +5572,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace ApplianceStatistics @@ -5634,6 +6102,10 @@ namespace ClusterRevision { static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id; } // namespace ClusterRevision +namespace AttributeList { +static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id; +} // namespace AttributeList + } // namespace Attributes } // namespace ElectricalMeasurement diff --git a/zzz_generated/bridge-app/zap-generated/attribute-size.cpp b/zzz_generated/bridge-app/zap-generated/attribute-size.cpp index 4f7f43e75f07bc..8d7eeb0dc97cff 100644 --- a/zzz_generated/bridge-app/zap-generated/attribute-size.cpp +++ b/zzz_generated/bridge-app/zap-generated/attribute-size.cpp @@ -79,6 +79,46 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo uint16_t entryLength = 0; switch (clusterId) { + case 0x003C: // AdministratorCommissioning Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0028: // Basic Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } case 0x001D: // Descriptor Cluster { uint16_t entryOffset = kSizeLengthInBytes; @@ -137,6 +177,58 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo copyListMember(dest, src, write, &entryOffset, entryLength); // ENDPOINT_NO break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0032: // Diagnostic Logs Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0037: // Ethernet Network Diagnostics Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -176,6 +268,18 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo entryOffset = static_cast(entryOffset + 18); break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -200,6 +304,18 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo sizeof(entry->FailSafeExpiryLengthMs)); // INT32U break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -285,6 +401,78 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo copyListMember(dest, src, write, &entryOffset, entryLength); // ENUM8 break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0008: // Level Control Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0031: // Network Commissioning Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0006: // On/Off Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -359,6 +547,18 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo entryLength = static_cast(trustedRootCertificatesSpan->size()); break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -397,6 +597,38 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo &entryOffset, sizeof(entry->StackSize)); // INT32U break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x003B: // Switch Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -552,6 +784,38 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo copyListMember(dest, src, write, &entryOffset, entryLength); // NetworkFault break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0036: // WiFi Network Diagnostics Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -574,6 +838,24 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut uint16_t entryLength = 0; switch (clusterId) { + case 0x003C: // AdministratorCommissioning Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0028: // Basic Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; case 0x001D: // Descriptor Cluster switch (attributeId) { @@ -593,6 +875,28 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // chip::EndpointId entryLength = 2; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0032: // Diagnostic Logs Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0037: // Ethernet Network Diagnostics Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0040: // Fixed Label Cluster @@ -602,6 +906,10 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _LabelStruct entryLength = 36; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0030: // General Commissioning Cluster @@ -611,6 +919,10 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _BasicCommissioningInfoType entryLength = 4; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0033: // General Diagnostics Cluster @@ -632,6 +944,37 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // uint8_t entryLength = 1; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0008: // Level Control Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0031: // Network Commissioning Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0006: // On/Off Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x003E: // Operational Credentials Cluster @@ -645,6 +988,10 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // chip::ByteSpan return GetByteSpanOffsetFromIndex(buffer, 402, entryCount); break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0034: // Software Diagnostics Cluster @@ -654,6 +1001,19 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _ThreadMetrics entryLength = 30; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x003B: // Switch Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0035: // Thread Network Diagnostics Cluster @@ -679,6 +1039,19 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // uint8_t entryLength = 1; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0036: // WiFi Network Diagnostics Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; } diff --git a/zzz_generated/chip-tool/zap-generated/cluster/Commands.h b/zzz_generated/chip-tool/zap-generated/cluster/Commands.h index b437e8060e1ba0..3b4f660faf0512 100644 --- a/zzz_generated/chip-tool/zap-generated/cluster/Commands.h +++ b/zzz_generated/chip-tool/zap-generated/cluster/Commands.h @@ -3624,6 +3624,7 @@ static void OnTestClusterTestSpecificResponseSuccess( | Attributes: | | | * Acl | 0x0000 | | * Extension | 0x0001 | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -3693,6 +3694,36 @@ class ReadAccessControlExtension : public ModelCommand } }; +/* + * Attribute AttributeList + */ +class ReadAccessControlAttributeList : public ModelCommand +{ +public: + ReadAccessControlAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadAccessControlAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x001F) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::AccessControlCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "AccessControl.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -3731,6 +3762,7 @@ class ReadAccessControlClusterRevision : public ModelCommand | * Login | 0x01 | |------------------------------------------------------------------------------| | Attributes: | | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -3783,6 +3815,36 @@ class AccountLoginLogin : public ModelCommand chip::app::Clusters::AccountLogin::Commands::Login::Type mRequest; }; +/* + * Attribute AttributeList + */ +class ReadAccountLoginAttributeList : public ModelCommand +{ +public: + ReadAccountLoginAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadAccountLoginAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x050E) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::AccountLoginCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "AccountLogin.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -3874,6 +3936,7 @@ class ReportAccountLoginClusterRevision : public ModelCommand | * RevokeCommissioning | 0x02 | |------------------------------------------------------------------------------| | Attributes: | | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -3950,6 +4013,36 @@ class AdministratorCommissioningRevokeCommissioning : public ModelCommand chip::app::Clusters::AdministratorCommissioning::Commands::RevokeCommissioning::Type mRequest; }; +/* + * Attribute AttributeList + */ +class ReadAdministratorCommissioningAttributeList : public ModelCommand +{ +public: + ReadAdministratorCommissioningAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadAdministratorCommissioningAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x003C) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::AdministratorCommissioningCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "AdministratorCommissioning.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -4046,6 +4139,7 @@ class ReportAdministratorCommissioningClusterRevision : public ModelCommand | * ApplicationId | 0x0005 | | * CatalogVendorId | 0x0006 | | * ApplicationStatus | 0x0007 | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -4649,6 +4743,36 @@ class ReportApplicationBasicApplicationStatus : public ModelCommand bool mWait; }; +/* + * Attribute AttributeList + */ +class ReadApplicationBasicAttributeList : public ModelCommand +{ +public: + ReadApplicationBasicAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadApplicationBasicAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x050D) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::ApplicationBasicCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "ApplicationBasic.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -4741,6 +4865,7 @@ class ReportApplicationBasicClusterRevision : public ModelCommand | * ApplicationLauncherList | 0x0000 | | * CatalogVendorId | 0x0001 | | * ApplicationId | 0x0002 | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -4964,6 +5089,36 @@ class ReportApplicationLauncherApplicationId : public ModelCommand bool mWait; }; +/* + * Attribute AttributeList + */ +class ReadApplicationLauncherAttributeList : public ModelCommand +{ +public: + ReadApplicationLauncherAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadApplicationLauncherAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x050C) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::ApplicationLauncherCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "ApplicationLauncher.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -5056,6 +5211,7 @@ class ReportApplicationLauncherClusterRevision : public ModelCommand | Attributes: | | | * AudioOutputList | 0x0000 | | * CurrentAudioOutput | 0x0001 | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -5224,6 +5380,36 @@ class ReportAudioOutputCurrentAudioOutput : public ModelCommand bool mWait; }; +/* + * Attribute AttributeList + */ +class ReadAudioOutputAttributeList : public ModelCommand +{ +public: + ReadAudioOutputAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadAudioOutputAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x050B) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::AudioOutputCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "AudioOutput.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -5318,6 +5504,7 @@ class ReportAudioOutputClusterRevision : public ModelCommand | * BarrierSafetyStatus | 0x0002 | | * BarrierCapabilities | 0x0003 | | * BarrierPosition | 0x000A | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -5696,6 +5883,36 @@ class ReportBarrierControlBarrierPosition : public ModelCommand bool mWait; }; +/* + * Attribute AttributeList + */ +class ReadBarrierControlAttributeList : public ModelCommand +{ +public: + ReadBarrierControlAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadBarrierControlAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x0103) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::BarrierControlCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "BarrierControl.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -5804,6 +6021,7 @@ class ReportBarrierControlClusterRevision : public ModelCommand | * LocalConfigDisabled | 0x0010 | | * Reachable | 0x0011 | | * UniqueID | 0x0012 | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -7416,6 +7634,36 @@ class ReadBasicUniqueID : public ModelCommand } }; +/* + * Attribute AttributeList + */ +class ReadBasicAttributeList : public ModelCommand +{ +public: + ReadBasicAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadBasicAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x0028) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::BasicCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute(this, OnAttributeResponse, + OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "Basic.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -7507,6 +7755,7 @@ class ReportBasicClusterRevision : public ModelCommand | * OutOfService | 0x0051 | | * PresentValue | 0x0055 | | * StatusFlags | 0x006F | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -7808,6 +8057,36 @@ class ReportBinaryInputBasicStatusFlags : public ModelCommand bool mWait; }; +/* + * Attribute AttributeList + */ +class ReadBinaryInputBasicAttributeList : public ModelCommand +{ +public: + ReadBinaryInputBasicAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadBinaryInputBasicAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x000F) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::BinaryInputBasicCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "BinaryInputBasic.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -7898,6 +8177,7 @@ class ReportBinaryInputBasicClusterRevision : public ModelCommand | * Unbind | 0x01 | |------------------------------------------------------------------------------| | Attributes: | | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -7955,6 +8235,36 @@ class BindingUnbind : public ModelCommand chip::app::Clusters::Binding::Commands::Unbind::Type mRequest; }; +/* + * Attribute AttributeList + */ +class ReadBindingAttributeList : public ModelCommand +{ +public: + ReadBindingAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadBindingAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x001E) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::BindingCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute(this, OnAttributeResponse, + OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "Binding.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -8044,6 +8354,7 @@ class ReportBindingClusterRevision : public ModelCommand |------------------------------------------------------------------------------| | Attributes: | | | * StateValue | 0x0000 | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -8129,6 +8440,36 @@ class ReportBooleanStateStateValue : public ModelCommand bool mWait; }; +/* + * Attribute AttributeList + */ +class ReadBooleanStateAttributeList : public ModelCommand +{ +public: + ReadBooleanStateAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadBooleanStateAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x0045) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::BooleanStateCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "BooleanState.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -8232,6 +8573,7 @@ class ReportBooleanStateClusterRevision : public ModelCommand | * ActionList | 0x0000 | | * EndpointList | 0x0001 | | * SetupUrl | 0x0002 | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -8688,6 +9030,36 @@ class ReportBridgedActionsSetupUrl : public ModelCommand bool mWait; }; +/* + * Attribute AttributeList + */ +class ReadBridgedActionsAttributeList : public ModelCommand +{ +public: + ReadBridgedActionsAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadBridgedActionsAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x0025) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::BridgedActionsCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "BridgedActions.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -8776,9 +9148,40 @@ class ReportBridgedActionsClusterRevision : public ModelCommand | Commands: | | |------------------------------------------------------------------------------| | Attributes: | | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ +/* + * Attribute AttributeList + */ +class ReadBridgedDeviceBasicAttributeList : public ModelCommand +{ +public: + ReadBridgedDeviceBasicAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadBridgedDeviceBasicAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x0039) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::BridgedDeviceBasicCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "BridgedDeviceBasic.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -8938,6 +9341,7 @@ class ReportBridgedDeviceBasicClusterRevision : public ModelCommand | * ColorTempPhysicalMax | 0x400C | | * CoupleColorTempToLevelMinMireds | 0x400D | | * StartUpColorTemperatureMireds | 0x4010 | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -14108,6 +14512,36 @@ class ReportColorControlStartUpColorTemperatureMireds : public ModelCommand bool mWait; }; +/* + * Attribute AttributeList + */ +class ReadColorControlAttributeList : public ModelCommand +{ +public: + ReadColorControlAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadColorControlAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x0300) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::ColorControlCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "ColorControl.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -14200,6 +14634,7 @@ class ReportColorControlClusterRevision : public ModelCommand | Attributes: | | | * AcceptsHeaderList | 0x0000 | | * SupportedStreamingTypes | 0x0001 | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -14315,6 +14750,36 @@ class ReadContentLauncherSupportedStreamingTypes : public ModelCommand } }; +/* + * Attribute AttributeList + */ +class ReadContentLauncherAttributeList : public ModelCommand +{ +public: + ReadContentLauncherAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadContentLauncherAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x050A) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::ContentLauncherCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "ContentLauncher.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -14407,6 +14872,7 @@ class ReportContentLauncherClusterRevision : public ModelCommand | * ServerList | 0x0001 | | * ClientList | 0x0002 | | * PartsList | 0x0003 | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -14532,6 +14998,36 @@ class ReadDescriptorPartsList : public ModelCommand } }; +/* + * Attribute AttributeList + */ +class ReadDescriptorAttributeList : public ModelCommand +{ +public: + ReadDescriptorAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadDescriptorAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x001D) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::DescriptorCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "Descriptor.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -14621,6 +15117,7 @@ class ReportDescriptorClusterRevision : public ModelCommand | * RetrieveLogsRequest | 0x00 | |------------------------------------------------------------------------------| | Attributes: | | +| * AttributeList | 0xFFFB | \*----------------------------------------------------------------------------*/ /* @@ -14651,6 +15148,36 @@ class DiagnosticLogsRetrieveLogsRequest : public ModelCommand chip::app::Clusters::DiagnosticLogs::Commands::RetrieveLogsRequest::Type mRequest; }; +/* + * Attribute AttributeList + */ +class ReadDiagnosticLogsAttributeList : public ModelCommand +{ +public: + ReadDiagnosticLogsAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadDiagnosticLogsAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x0032) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::DiagnosticLogsCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "DiagnosticLogs.AttributeList response", value); + } +}; + /*----------------------------------------------------------------------------*\ | Cluster DoorLock | 0x0101 | |------------------------------------------------------------------------------| @@ -14683,6 +15210,7 @@ class DiagnosticLogsRetrieveLogsRequest : public ModelCommand | * LockState | 0x0000 | | * LockType | 0x0001 | | * ActuatorEnabled | 0x0002 | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -15343,6 +15871,36 @@ class ReportDoorLockActuatorEnabled : public ModelCommand bool mWait; }; +/* + * Attribute AttributeList + */ +class ReadDoorLockAttributeList : public ModelCommand +{ +public: + ReadDoorLockAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadDoorLockAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x0101) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::DoorLockCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute(this, OnAttributeResponse, + OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "DoorLock.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -15442,6 +16000,7 @@ class ReportDoorLockClusterRevision : public ModelCommand | * ActivePower | 0x050B | | * ActivePowerMin | 0x050C | | * ActivePowerMax | 0x050D | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -16347,6 +16906,36 @@ class ReportElectricalMeasurementActivePowerMax : public ModelCommand bool mWait; }; +/* + * Attribute AttributeList + */ +class ReadElectricalMeasurementAttributeList : public ModelCommand +{ +public: + ReadElectricalMeasurementAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadElectricalMeasurementAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x0B04) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::ElectricalMeasurementCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "ElectricalMeasurement.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -16445,6 +17034,7 @@ class ReportElectricalMeasurementClusterRevision : public ModelCommand | * OverrunCount | 0x0006 | | * CarrierDetect | 0x0007 | | * TimeSinceReset | 0x0008 | +| * AttributeList | 0xFFFB | | * FeatureMap | 0xFFFC | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -17207,6 +17797,36 @@ class ReportEthernetNetworkDiagnosticsTimeSinceReset : public ModelCommand bool mWait; }; +/* + * Attribute AttributeList + */ +class ReadEthernetNetworkDiagnosticsAttributeList : public ModelCommand +{ +public: + ReadEthernetNetworkDiagnosticsAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadEthernetNetworkDiagnosticsAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x0037) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::EthernetNetworkDiagnosticsCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "EthernetNetworkDiagnostics.AttributeList response", value); + } +}; + /* * Attribute FeatureMap */ @@ -17326,6 +17946,7 @@ class ReportEthernetNetworkDiagnosticsClusterRevision : public ModelCommand |------------------------------------------------------------------------------| | Attributes: | | | * LabelList | 0x0000 | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -17361,6 +17982,36 @@ class ReadFixedLabelLabelList : public ModelCommand } }; +/* + * Attribute AttributeList + */ +class ReadFixedLabelAttributeList : public ModelCommand +{ +public: + ReadFixedLabelAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadFixedLabelAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x0040) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::FixedLabelCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "FixedLabel.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -17453,6 +18104,7 @@ class ReportFixedLabelClusterRevision : public ModelCommand | * MinMeasuredValue | 0x0001 | | * MaxMeasuredValue | 0x0002 | | * Tolerance | 0x0003 | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -17784,6 +18436,36 @@ class ReportFlowMeasurementTolerance : public ModelCommand bool mWait; }; +/* + * Attribute AttributeList + */ +class ReadFlowMeasurementAttributeList : public ModelCommand +{ +public: + ReadFlowMeasurementAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadFlowMeasurementAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x0404) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::FlowMeasurementCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "FlowMeasurement.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -17879,6 +18561,7 @@ class ReportFlowMeasurementClusterRevision : public ModelCommand | * BasicCommissioningInfoList | 0x0001 | | * RegulatoryConfig | 0x0002 | | * LocationCapability | 0x0003 | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -18157,6 +18840,36 @@ class ReadGeneralCommissioningLocationCapability : public ModelCommand } }; +/* + * Attribute AttributeList + */ +class ReadGeneralCommissioningAttributeList : public ModelCommand +{ +public: + ReadGeneralCommissioningAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadGeneralCommissioningAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x0030) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::GeneralCommissioningCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "GeneralCommissioning.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -18253,6 +18966,7 @@ class ReportGeneralCommissioningClusterRevision : public ModelCommand | * ActiveHardwareFaults | 0x0005 | | * ActiveRadioFaults | 0x0006 | | * ActiveNetworkFaults | 0x0007 | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -18708,6 +19422,36 @@ class ReadGeneralDiagnosticsActiveNetworkFaults : public ModelCommand } }; +/* + * Attribute AttributeList + */ +class ReadGeneralDiagnosticsAttributeList : public ModelCommand +{ +public: + ReadGeneralDiagnosticsAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadGeneralDiagnosticsAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x0033) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::GeneralDiagnosticsCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "GeneralDiagnostics.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -18798,6 +19542,7 @@ class ReportGeneralDiagnosticsClusterRevision : public ModelCommand | Attributes: | | | * Groups | 0x0000 | | * GroupKeys | 0x0001 | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -18867,6 +19612,36 @@ class ReadGroupKeyManagementGroupKeys : public ModelCommand } }; +/* + * Attribute AttributeList + */ +class ReadGroupKeyManagementAttributeList : public ModelCommand +{ +public: + ReadGroupKeyManagementAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadGroupKeyManagementAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x003F) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::GroupKeyManagementCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "GroupKeyManagement.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -18962,6 +19737,7 @@ class ReportGroupKeyManagementClusterRevision : public ModelCommand |------------------------------------------------------------------------------| | Attributes: | | | * NameSupport | 0x0000 | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -19189,6 +19965,36 @@ class ReportGroupsNameSupport : public ModelCommand bool mWait; }; +/* + * Attribute AttributeList + */ +class ReadGroupsAttributeList : public ModelCommand +{ +public: + ReadGroupsAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadGroupsAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x0004) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::GroupsCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute(this, OnAttributeResponse, + OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "Groups.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -19282,6 +20088,7 @@ class ReportGroupsClusterRevision : public ModelCommand | Attributes: | | | * IdentifyTime | 0x0000 | | * IdentifyType | 0x0001 | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -19546,6 +20353,36 @@ class ReportIdentifyIdentifyType : public ModelCommand bool mWait; }; +/* + * Attribute AttributeList + */ +class ReadIdentifyAttributeList : public ModelCommand +{ +public: + ReadIdentifyAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadIdentifyAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x0003) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::IdentifyCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute(this, OnAttributeResponse, + OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "Identify.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -19639,6 +20476,7 @@ class ReportIdentifyClusterRevision : public ModelCommand | * MaxMeasuredValue | 0x0002 | | * Tolerance | 0x0003 | | * LightSensorType | 0x0004 | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -20052,6 +20890,36 @@ class ReportIlluminanceMeasurementLightSensorType : public ModelCommand bool mWait; }; +/* + * Attribute AttributeList + */ +class ReadIlluminanceMeasurementAttributeList : public ModelCommand +{ +public: + ReadIlluminanceMeasurementAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadIlluminanceMeasurementAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x0400) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::IlluminanceMeasurementCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "IlluminanceMeasurement.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -20141,6 +21009,7 @@ class ReportIlluminanceMeasurementClusterRevision : public ModelCommand | * SendKey | 0x00 | |------------------------------------------------------------------------------| | Attributes: | | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -20169,6 +21038,36 @@ class KeypadInputSendKey : public ModelCommand chip::app::Clusters::KeypadInput::Commands::SendKey::Type mRequest; }; +/* + * Attribute AttributeList + */ +class ReadKeypadInputAttributeList : public ModelCommand +{ +public: + ReadKeypadInputAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadKeypadInputAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x0509) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::KeypadInputCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "KeypadInput.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -20279,6 +21178,7 @@ class ReportKeypadInputClusterRevision : public ModelCommand | * OffTransitionTime | 0x0013 | | * DefaultMoveRate | 0x0014 | | * StartUpCurrentLevel | 0x4000 | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -21822,6 +22722,36 @@ class ReportLevelControlStartUpCurrentLevel : public ModelCommand bool mWait; }; +/* + * Attribute AttributeList + */ +class ReadLevelControlAttributeList : public ModelCommand +{ +public: + ReadLevelControlAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadLevelControlAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x0008) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::LevelControlCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "LevelControl.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -21911,6 +22841,7 @@ class ReportLevelControlClusterRevision : public ModelCommand | * Sleep | 0x00 | |------------------------------------------------------------------------------| | Attributes: | | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -21934,6 +22865,36 @@ class LowPowerSleep : public ModelCommand chip::app::Clusters::LowPower::Commands::Sleep::Type mRequest; }; +/* + * Attribute AttributeList + */ +class ReadLowPowerAttributeList : public ModelCommand +{ +public: + ReadLowPowerAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadLowPowerAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x0508) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::LowPowerCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute(this, OnAttributeResponse, + OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "LowPower.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -22028,6 +22989,7 @@ class ReportLowPowerClusterRevision : public ModelCommand | Attributes: | | | * MediaInputList | 0x0000 | | * CurrentMediaInput | 0x0001 | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -22235,6 +23197,36 @@ class ReportMediaInputCurrentMediaInput : public ModelCommand bool mWait; }; +/* + * Attribute AttributeList + */ +class ReadMediaInputAttributeList : public ModelCommand +{ +public: + ReadMediaInputAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadMediaInputAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x0507) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::MediaInputCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "MediaInput.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -22342,6 +23334,7 @@ class ReportMediaInputClusterRevision : public ModelCommand | * PlaybackSpeed | 0x0005 | | * SeekRangeEnd | 0x0006 | | * SeekRangeStart | 0x0007 | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -23071,18 +24064,100 @@ class ReportMediaPlaybackPlaybackSpeed : public ModelCommand }; /* - * Attribute SeekRangeEnd + * Attribute SeekRangeEnd + */ +class ReadMediaPlaybackSeekRangeEnd : public ModelCommand +{ +public: + ReadMediaPlaybackSeekRangeEnd() : ModelCommand("read") + { + AddArgument("attr-name", "seek-range-end"); + ModelCommand::AddArguments(); + } + + ~ReadMediaPlaybackSeekRangeEnd() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x0506) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::MediaPlaybackCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, uint64_t value) + { + OnGeneralAttributeResponse(context, "MediaPlayback.SeekRangeEnd response", value); + } +}; + +class ReportMediaPlaybackSeekRangeEnd : public ModelCommand +{ +public: + ReportMediaPlaybackSeekRangeEnd() : ModelCommand("report") + { + AddArgument("attr-name", "seek-range-end"); + AddArgument("min-interval", 0, UINT16_MAX, &mMinInterval); + AddArgument("max-interval", 0, UINT16_MAX, &mMaxInterval); + AddArgument("wait", 0, 1, &mWait); + ModelCommand::AddArguments(); + } + + ~ReportMediaPlaybackSeekRangeEnd() + { + delete onSuccessCallback; + delete onSuccessCallbackWithoutExit; + delete onFailureCallback; + delete onReportCallback; + } + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x0506) command (0x06) on endpoint %" PRIu8, endpointId); + + chip::Controller::MediaPlaybackCluster cluster; + cluster.Associate(device, endpointId); + + ReturnErrorOnFailure(cluster.ReportAttributeSeekRangeEnd(onReportCallback->Cancel())); + + chip::Callback::Cancelable * successCallback = mWait ? onSuccessCallbackWithoutExit->Cancel() : onSuccessCallback->Cancel(); + return cluster.SubscribeAttributeSeekRangeEnd(successCallback, onFailureCallback->Cancel(), mMinInterval, mMaxInterval); + } + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mWait ? UINT16_MAX : 10); + } + +private: + chip::Callback::Callback * onSuccessCallback = + new chip::Callback::Callback(OnDefaultSuccessResponse, this); + chip::Callback::Callback * onSuccessCallbackWithoutExit = + new chip::Callback::Callback(OnDefaultSuccessResponseWithoutExit, this); + chip::Callback::Callback * onFailureCallback = + new chip::Callback::Callback(OnDefaultFailureResponse, this); + chip::Callback::Callback * onReportCallback = + new chip::Callback::Callback(OnInt64uAttributeReport, this); + uint16_t mMinInterval; + uint16_t mMaxInterval; + bool mWait; +}; + +/* + * Attribute SeekRangeStart */ -class ReadMediaPlaybackSeekRangeEnd : public ModelCommand +class ReadMediaPlaybackSeekRangeStart : public ModelCommand { public: - ReadMediaPlaybackSeekRangeEnd() : ModelCommand("read") + ReadMediaPlaybackSeekRangeStart() : ModelCommand("read") { - AddArgument("attr-name", "seek-range-end"); + AddArgument("attr-name", "seek-range-start"); ModelCommand::AddArguments(); } - ~ReadMediaPlaybackSeekRangeEnd() {} + ~ReadMediaPlaybackSeekRangeStart() {} CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override { @@ -23090,29 +24165,29 @@ class ReadMediaPlaybackSeekRangeEnd : public ModelCommand chip::Controller::MediaPlaybackCluster cluster; cluster.Associate(device, endpointId); - return cluster.ReadAttribute( + return cluster.ReadAttribute( this, OnAttributeResponse, OnDefaultFailure); } static void OnAttributeResponse(void * context, uint64_t value) { - OnGeneralAttributeResponse(context, "MediaPlayback.SeekRangeEnd response", value); + OnGeneralAttributeResponse(context, "MediaPlayback.SeekRangeStart response", value); } }; -class ReportMediaPlaybackSeekRangeEnd : public ModelCommand +class ReportMediaPlaybackSeekRangeStart : public ModelCommand { public: - ReportMediaPlaybackSeekRangeEnd() : ModelCommand("report") + ReportMediaPlaybackSeekRangeStart() : ModelCommand("report") { - AddArgument("attr-name", "seek-range-end"); + AddArgument("attr-name", "seek-range-start"); AddArgument("min-interval", 0, UINT16_MAX, &mMinInterval); AddArgument("max-interval", 0, UINT16_MAX, &mMaxInterval); AddArgument("wait", 0, 1, &mWait); ModelCommand::AddArguments(); } - ~ReportMediaPlaybackSeekRangeEnd() + ~ReportMediaPlaybackSeekRangeStart() { delete onSuccessCallback; delete onSuccessCallbackWithoutExit; @@ -23127,10 +24202,10 @@ class ReportMediaPlaybackSeekRangeEnd : public ModelCommand chip::Controller::MediaPlaybackCluster cluster; cluster.Associate(device, endpointId); - ReturnErrorOnFailure(cluster.ReportAttributeSeekRangeEnd(onReportCallback->Cancel())); + ReturnErrorOnFailure(cluster.ReportAttributeSeekRangeStart(onReportCallback->Cancel())); chip::Callback::Cancelable * successCallback = mWait ? onSuccessCallbackWithoutExit->Cancel() : onSuccessCallback->Cancel(); - return cluster.SubscribeAttributeSeekRangeEnd(successCallback, onFailureCallback->Cancel(), mMinInterval, mMaxInterval); + return cluster.SubscribeAttributeSeekRangeStart(successCallback, onFailureCallback->Cancel(), mMinInterval, mMaxInterval); } chip::System::Clock::Timeout GetWaitDuration() const override @@ -23153,18 +24228,18 @@ class ReportMediaPlaybackSeekRangeEnd : public ModelCommand }; /* - * Attribute SeekRangeStart + * Attribute AttributeList */ -class ReadMediaPlaybackSeekRangeStart : public ModelCommand +class ReadMediaPlaybackAttributeList : public ModelCommand { public: - ReadMediaPlaybackSeekRangeStart() : ModelCommand("read") + ReadMediaPlaybackAttributeList() : ModelCommand("read") { - AddArgument("attr-name", "seek-range-start"); + AddArgument("attr-name", "attribute-list"); ModelCommand::AddArguments(); } - ~ReadMediaPlaybackSeekRangeStart() {} + ~ReadMediaPlaybackAttributeList() {} CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override { @@ -23172,68 +24247,16 @@ class ReadMediaPlaybackSeekRangeStart : public ModelCommand chip::Controller::MediaPlaybackCluster cluster; cluster.Associate(device, endpointId); - return cluster.ReadAttribute( + return cluster.ReadAttribute( this, OnAttributeResponse, OnDefaultFailure); } - static void OnAttributeResponse(void * context, uint64_t value) + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) { - OnGeneralAttributeResponse(context, "MediaPlayback.SeekRangeStart response", value); + OnGeneralAttributeResponse(context, "MediaPlayback.AttributeList response", value); } }; -class ReportMediaPlaybackSeekRangeStart : public ModelCommand -{ -public: - ReportMediaPlaybackSeekRangeStart() : ModelCommand("report") - { - AddArgument("attr-name", "seek-range-start"); - AddArgument("min-interval", 0, UINT16_MAX, &mMinInterval); - AddArgument("max-interval", 0, UINT16_MAX, &mMaxInterval); - AddArgument("wait", 0, 1, &mWait); - ModelCommand::AddArguments(); - } - - ~ReportMediaPlaybackSeekRangeStart() - { - delete onSuccessCallback; - delete onSuccessCallbackWithoutExit; - delete onFailureCallback; - delete onReportCallback; - } - - CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override - { - ChipLogProgress(chipTool, "Sending cluster (0x0506) command (0x06) on endpoint %" PRIu8, endpointId); - - chip::Controller::MediaPlaybackCluster cluster; - cluster.Associate(device, endpointId); - - ReturnErrorOnFailure(cluster.ReportAttributeSeekRangeStart(onReportCallback->Cancel())); - - chip::Callback::Cancelable * successCallback = mWait ? onSuccessCallbackWithoutExit->Cancel() : onSuccessCallback->Cancel(); - return cluster.SubscribeAttributeSeekRangeStart(successCallback, onFailureCallback->Cancel(), mMinInterval, mMaxInterval); - } - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mWait ? UINT16_MAX : 10); - } - -private: - chip::Callback::Callback * onSuccessCallback = - new chip::Callback::Callback(OnDefaultSuccessResponse, this); - chip::Callback::Callback * onSuccessCallbackWithoutExit = - new chip::Callback::Callback(OnDefaultSuccessResponseWithoutExit, this); - chip::Callback::Callback * onFailureCallback = - new chip::Callback::Callback(OnDefaultFailureResponse, this); - chip::Callback::Callback * onReportCallback = - new chip::Callback::Callback(OnInt64uAttributeReport, this); - uint16_t mMinInterval; - uint16_t mMaxInterval; - bool mWait; -}; - /* * Attribute ClusterRevision */ @@ -23328,6 +24351,7 @@ class ReportMediaPlaybackClusterRevision : public ModelCommand | * OnMode | 0x0002 | | * StartUpMode | 0x0003 | | * Description | 0x0004 | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -23742,6 +24766,36 @@ class ReportModeSelectDescription : public ModelCommand bool mWait; }; +/* + * Attribute AttributeList + */ +class ReadModeSelectAttributeList : public ModelCommand +{ +public: + ReadModeSelectAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadModeSelectAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x0050) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::ModeSelectCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "ModeSelect.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -23838,6 +24892,7 @@ class ReportModeSelectClusterRevision : public ModelCommand | * UpdateWiFiNetwork | 0x04 | |------------------------------------------------------------------------------| | Attributes: | | +| * AttributeList | 0xFFFB | | * FeatureMap | 0xFFFC | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -24052,6 +25107,36 @@ class NetworkCommissioningUpdateWiFiNetwork : public ModelCommand chip::app::Clusters::NetworkCommissioning::Commands::UpdateWiFiNetwork::Type mRequest; }; +/* + * Attribute AttributeList + */ +class ReadNetworkCommissioningAttributeList : public ModelCommand +{ +public: + ReadNetworkCommissioningAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadNetworkCommissioningAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x0031) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::NetworkCommissioningCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "NetworkCommissioning.AttributeList response", value); + } +}; + /* * Attribute FeatureMap */ @@ -24225,6 +25310,7 @@ class ReportNetworkCommissioningClusterRevision : public ModelCommand | * QueryImage | 0x00 | |------------------------------------------------------------------------------| | Attributes: | | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -24309,6 +25395,36 @@ class OtaSoftwareUpdateProviderQueryImage : public ModelCommand chip::app::Clusters::OtaSoftwareUpdateProvider::Commands::QueryImage::Type mRequest; }; +/* + * Attribute AttributeList + */ +class ReadOtaSoftwareUpdateProviderAttributeList : public ModelCommand +{ +public: + ReadOtaSoftwareUpdateProviderAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadOtaSoftwareUpdateProviderAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x0029) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::OtaSoftwareUpdateProviderCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "OtaSoftwareUpdateProvider.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -24400,6 +25516,7 @@ class ReportOtaSoftwareUpdateProviderClusterRevision : public ModelCommand | Attributes: | | | * DefaultOtaProvider | 0x0001 | | * UpdatePossible | 0x0002 | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -24623,6 +25740,36 @@ class ReportOtaSoftwareUpdateRequestorUpdatePossible : public ModelCommand bool mWait; }; +/* + * Attribute AttributeList + */ +class ReadOtaSoftwareUpdateRequestorAttributeList : public ModelCommand +{ +public: + ReadOtaSoftwareUpdateRequestorAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadOtaSoftwareUpdateRequestorAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x002A) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::OtaSoftwareUpdateRequestorCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "OtaSoftwareUpdateRequestor.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -24714,6 +25861,7 @@ class ReportOtaSoftwareUpdateRequestorClusterRevision : public ModelCommand | * Occupancy | 0x0000 | | * OccupancySensorType | 0x0001 | | * OccupancySensorTypeBitmap | 0x0002 | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -24965,6 +26113,36 @@ class ReportOccupancySensingOccupancySensorTypeBitmap : public ModelCommand bool mWait; }; +/* + * Attribute AttributeList + */ +class ReadOccupancySensingAttributeList : public ModelCommand +{ +public: + ReadOccupancySensingAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadOccupancySensingAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x0406) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::OccupancySensingCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "OccupancySensing.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -25064,6 +26242,7 @@ class ReportOccupancySensingClusterRevision : public ModelCommand | * OnTime | 0x4001 | | * OffWaitTime | 0x4002 | | * StartUpOnOff | 0x4003 | +| * AttributeList | 0xFFFB | | * FeatureMap | 0xFFFC | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -25691,6 +26870,36 @@ class ReportOnOffStartUpOnOff : public ModelCommand bool mWait; }; +/* + * Attribute AttributeList + */ +class ReadOnOffAttributeList : public ModelCommand +{ +public: + ReadOnOffAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadOnOffAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x0006) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::OnOffCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute(this, OnAttributeResponse, + OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "OnOff.AttributeList response", value); + } +}; + /* * Attribute FeatureMap */ @@ -25863,6 +27072,7 @@ class ReportOnOffClusterRevision : public ModelCommand | Attributes: | | | * SwitchType | 0x0000 | | * SwitchActions | 0x0010 | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -26056,6 +27266,36 @@ class ReportOnOffSwitchConfigurationSwitchActions : public ModelCommand bool mWait; }; +/* + * Attribute AttributeList + */ +class ReadOnOffSwitchConfigurationAttributeList : public ModelCommand +{ +public: + ReadOnOffSwitchConfigurationAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadOnOffSwitchConfigurationAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x0007) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::OnOffSwitchConfigurationCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "OnOffSwitchConfiguration.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -26158,6 +27398,7 @@ class ReportOnOffSwitchConfigurationClusterRevision : public ModelCommand | * CommissionedFabrics | 0x0003 | | * TrustedRootCertificates | 0x0004 | | * CurrentFabricIndex | 0x0005 | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -26693,6 +27934,36 @@ class ReportOperationalCredentialsCurrentFabricIndex : public ModelCommand bool mWait; }; +/* + * Attribute AttributeList + */ +class ReadOperationalCredentialsAttributeList : public ModelCommand +{ +public: + ReadOperationalCredentialsAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadOperationalCredentialsAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x003E) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::OperationalCredentialsCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "OperationalCredentials.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -26790,6 +28061,7 @@ class ReportOperationalCredentialsClusterRevision : public ModelCommand | * BatteryChargeLevel | 0x000E | | * ActiveBatteryFaults | 0x0012 | | * BatteryChargeState | 0x001A | +| * AttributeList | 0xFFFB | | * FeatureMap | 0xFFFC | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -27484,6 +28756,36 @@ class ReportPowerSourceBatteryChargeState : public ModelCommand bool mWait; }; +/* + * Attribute AttributeList + */ +class ReadPowerSourceAttributeList : public ModelCommand +{ +public: + ReadPowerSourceAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadPowerSourceAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x002F) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::PowerSourceCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "PowerSource.AttributeList response", value); + } +}; + /* * Attribute FeatureMap */ @@ -27655,6 +28957,7 @@ class ReportPowerSourceClusterRevision : public ModelCommand |------------------------------------------------------------------------------| | Attributes: | | | * Sources | 0x0000 | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -27688,6 +28991,36 @@ class ReadPowerSourceConfigurationSources : public ModelCommand } }; +/* + * Attribute AttributeList + */ +class ReadPowerSourceConfigurationAttributeList : public ModelCommand +{ +public: + ReadPowerSourceConfigurationAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadPowerSourceConfigurationAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x002E) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::PowerSourceConfigurationCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "PowerSourceConfiguration.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -27727,6 +29060,7 @@ class ReadPowerSourceConfigurationClusterRevision : public ModelCommand | * MeasuredValue | 0x0000 | | * MinMeasuredValue | 0x0001 | | * MaxMeasuredValue | 0x0002 | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -27976,6 +29310,36 @@ class ReportPressureMeasurementMaxMeasuredValue : public ModelCommand bool mWait; }; +/* + * Attribute AttributeList + */ +class ReadPressureMeasurementAttributeList : public ModelCommand +{ +public: + ReadPressureMeasurementAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadPressureMeasurementAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x0403) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::PressureMeasurementCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "PressureMeasurement.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -28088,6 +29452,7 @@ class ReportPressureMeasurementClusterRevision : public ModelCommand | * OperationMode | 0x0020 | | * ControlMode | 0x0021 | | * AlarmMask | 0x0022 | +| * AttributeList | 0xFFFB | | * FeatureMap | 0xFFFC | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -30171,6 +31536,36 @@ class ReportPumpConfigurationAndControlAlarmMask : public ModelCommand bool mWait; }; +/* + * Attribute AttributeList + */ +class ReadPumpConfigurationAndControlAttributeList : public ModelCommand +{ +public: + ReadPumpConfigurationAndControlAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadPumpConfigurationAndControlAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x0200) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::PumpConfigurationAndControlCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "PumpConfigurationAndControl.AttributeList response", value); + } +}; + /* * Attribute FeatureMap */ @@ -30345,6 +31740,7 @@ class ReportPumpConfigurationAndControlClusterRevision : public ModelCommand | * MinMeasuredValue | 0x0001 | | * MaxMeasuredValue | 0x0002 | | * Tolerance | 0x0003 | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -30676,6 +32072,36 @@ class ReportRelativeHumidityMeasurementTolerance : public ModelCommand bool mWait; }; +/* + * Attribute AttributeList + */ +class ReadRelativeHumidityMeasurementAttributeList : public ModelCommand +{ +public: + ReadRelativeHumidityMeasurementAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadRelativeHumidityMeasurementAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x0405) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::RelativeHumidityMeasurementCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "RelativeHumidityMeasurement.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -30776,6 +32202,7 @@ class ReportRelativeHumidityMeasurementClusterRevision : public ModelCommand | * CurrentGroup | 0x0002 | | * SceneValid | 0x0003 | | * NameSupport | 0x0004 | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -31366,6 +32793,36 @@ class ReportScenesNameSupport : public ModelCommand bool mWait; }; +/* + * Attribute AttributeList + */ +class ReadScenesAttributeList : public ModelCommand +{ +public: + ReadScenesAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadScenesAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x0005) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::ScenesCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute(this, OnAttributeResponse, + OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "Scenes.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -31459,6 +32916,7 @@ class ReportScenesClusterRevision : public ModelCommand | * CurrentHeapFree | 0x0001 | | * CurrentHeapUsed | 0x0002 | | * CurrentHeapHighWatermark | 0x0003 | +| * AttributeList | 0xFFFB | | * FeatureMap | 0xFFFC | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -31763,6 +33221,36 @@ class ReportSoftwareDiagnosticsCurrentHeapHighWatermark : public ModelCommand bool mWait; }; +/* + * Attribute AttributeList + */ +class ReadSoftwareDiagnosticsAttributeList : public ModelCommand +{ +public: + ReadSoftwareDiagnosticsAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadSoftwareDiagnosticsAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x0034) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::SoftwareDiagnosticsCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "SoftwareDiagnostics.AttributeList response", value); + } +}; + /* * Attribute FeatureMap */ @@ -31884,6 +33372,7 @@ class ReportSoftwareDiagnosticsClusterRevision : public ModelCommand | * NumberOfPositions | 0x0000 | | * CurrentPosition | 0x0001 | | * MultiPressMax | 0x0002 | +| * AttributeList | 0xFFFB | | * FeatureMap | 0xFFFC | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -32135,6 +33624,36 @@ class ReportSwitchMultiPressMax : public ModelCommand bool mWait; }; +/* + * Attribute AttributeList + */ +class ReadSwitchAttributeList : public ModelCommand +{ +public: + ReadSwitchAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadSwitchAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x003B) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::SwitchCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute(this, OnAttributeResponse, + OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "Switch.AttributeList response", value); + } +}; + /* * Attribute FeatureMap */ @@ -32311,6 +33830,7 @@ class ReportSwitchClusterRevision : public ModelCommand | * TvChannelList | 0x0000 | | * TvChannelLineup | 0x0001 | | * CurrentTvChannel | 0x0002 | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -32502,18 +34022,100 @@ class ReportTvChannelTvChannelLineup : public ModelCommand }; /* - * Attribute CurrentTvChannel + * Attribute CurrentTvChannel + */ +class ReadTvChannelCurrentTvChannel : public ModelCommand +{ +public: + ReadTvChannelCurrentTvChannel() : ModelCommand("read") + { + AddArgument("attr-name", "current-tv-channel"); + ModelCommand::AddArguments(); + } + + ~ReadTvChannelCurrentTvChannel() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x0504) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::TvChannelCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, chip::ByteSpan value) + { + OnGeneralAttributeResponse(context, "TvChannel.CurrentTvChannel response", value); + } +}; + +class ReportTvChannelCurrentTvChannel : public ModelCommand +{ +public: + ReportTvChannelCurrentTvChannel() : ModelCommand("report") + { + AddArgument("attr-name", "current-tv-channel"); + AddArgument("min-interval", 0, UINT16_MAX, &mMinInterval); + AddArgument("max-interval", 0, UINT16_MAX, &mMaxInterval); + AddArgument("wait", 0, 1, &mWait); + ModelCommand::AddArguments(); + } + + ~ReportTvChannelCurrentTvChannel() + { + delete onSuccessCallback; + delete onSuccessCallbackWithoutExit; + delete onFailureCallback; + delete onReportCallback; + } + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x0504) command (0x06) on endpoint %" PRIu8, endpointId); + + chip::Controller::TvChannelCluster cluster; + cluster.Associate(device, endpointId); + + ReturnErrorOnFailure(cluster.ReportAttributeCurrentTvChannel(onReportCallback->Cancel())); + + chip::Callback::Cancelable * successCallback = mWait ? onSuccessCallbackWithoutExit->Cancel() : onSuccessCallback->Cancel(); + return cluster.SubscribeAttributeCurrentTvChannel(successCallback, onFailureCallback->Cancel(), mMinInterval, mMaxInterval); + } + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mWait ? UINT16_MAX : 10); + } + +private: + chip::Callback::Callback * onSuccessCallback = + new chip::Callback::Callback(OnDefaultSuccessResponse, this); + chip::Callback::Callback * onSuccessCallbackWithoutExit = + new chip::Callback::Callback(OnDefaultSuccessResponseWithoutExit, this); + chip::Callback::Callback * onFailureCallback = + new chip::Callback::Callback(OnDefaultFailureResponse, this); + chip::Callback::Callback * onReportCallback = + new chip::Callback::Callback(OnOctetStringAttributeReport, this); + uint16_t mMinInterval; + uint16_t mMaxInterval; + bool mWait; +}; + +/* + * Attribute AttributeList */ -class ReadTvChannelCurrentTvChannel : public ModelCommand +class ReadTvChannelAttributeList : public ModelCommand { public: - ReadTvChannelCurrentTvChannel() : ModelCommand("read") + ReadTvChannelAttributeList() : ModelCommand("read") { - AddArgument("attr-name", "current-tv-channel"); + AddArgument("attr-name", "attribute-list"); ModelCommand::AddArguments(); } - ~ReadTvChannelCurrentTvChannel() {} + ~ReadTvChannelAttributeList() {} CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override { @@ -32521,66 +34123,14 @@ class ReadTvChannelCurrentTvChannel : public ModelCommand chip::Controller::TvChannelCluster cluster; cluster.Associate(device, endpointId); - return cluster.ReadAttribute( - this, OnAttributeResponse, OnDefaultFailure); - } - - static void OnAttributeResponse(void * context, chip::ByteSpan value) - { - OnGeneralAttributeResponse(context, "TvChannel.CurrentTvChannel response", value); - } -}; - -class ReportTvChannelCurrentTvChannel : public ModelCommand -{ -public: - ReportTvChannelCurrentTvChannel() : ModelCommand("report") - { - AddArgument("attr-name", "current-tv-channel"); - AddArgument("min-interval", 0, UINT16_MAX, &mMinInterval); - AddArgument("max-interval", 0, UINT16_MAX, &mMaxInterval); - AddArgument("wait", 0, 1, &mWait); - ModelCommand::AddArguments(); - } - - ~ReportTvChannelCurrentTvChannel() - { - delete onSuccessCallback; - delete onSuccessCallbackWithoutExit; - delete onFailureCallback; - delete onReportCallback; - } - - CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override - { - ChipLogProgress(chipTool, "Sending cluster (0x0504) command (0x06) on endpoint %" PRIu8, endpointId); - - chip::Controller::TvChannelCluster cluster; - cluster.Associate(device, endpointId); - - ReturnErrorOnFailure(cluster.ReportAttributeCurrentTvChannel(onReportCallback->Cancel())); - - chip::Callback::Cancelable * successCallback = mWait ? onSuccessCallbackWithoutExit->Cancel() : onSuccessCallback->Cancel(); - return cluster.SubscribeAttributeCurrentTvChannel(successCallback, onFailureCallback->Cancel(), mMinInterval, mMaxInterval); + return cluster.ReadAttribute(this, OnAttributeResponse, + OnDefaultFailure); } - chip::System::Clock::Timeout GetWaitDuration() const override + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) { - return chip::System::Clock::Seconds16(mWait ? UINT16_MAX : 10); + OnGeneralAttributeResponse(context, "TvChannel.AttributeList response", value); } - -private: - chip::Callback::Callback * onSuccessCallback = - new chip::Callback::Callback(OnDefaultSuccessResponse, this); - chip::Callback::Callback * onSuccessCallbackWithoutExit = - new chip::Callback::Callback(OnDefaultSuccessResponseWithoutExit, this); - chip::Callback::Callback * onFailureCallback = - new chip::Callback::Callback(OnDefaultFailureResponse, this); - chip::Callback::Callback * onReportCallback = - new chip::Callback::Callback(OnOctetStringAttributeReport, this); - uint16_t mMinInterval; - uint16_t mMaxInterval; - bool mWait; }; /* @@ -32673,6 +34223,7 @@ class ReportTvChannelClusterRevision : public ModelCommand |------------------------------------------------------------------------------| | Attributes: | | | * TargetNavigatorList | 0x0000 | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -32734,6 +34285,36 @@ class ReadTargetNavigatorTargetNavigatorList : public ModelCommand } }; +/* + * Attribute AttributeList + */ +class ReadTargetNavigatorAttributeList : public ModelCommand +{ +public: + ReadTargetNavigatorAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadTargetNavigatorAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x0505) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::TargetNavigatorCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "TargetNavigator.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -32826,6 +34407,7 @@ class ReportTargetNavigatorClusterRevision : public ModelCommand | * MinMeasuredValue | 0x0001 | | * MaxMeasuredValue | 0x0002 | | * Tolerance | 0x0003 | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -33157,6 +34739,36 @@ class ReportTemperatureMeasurementTolerance : public ModelCommand bool mWait; }; +/* + * Attribute AttributeList + */ +class ReadTemperatureMeasurementAttributeList : public ModelCommand +{ +public: + ReadTemperatureMeasurementAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadTemperatureMeasurementAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x0402) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::TemperatureMeasurementCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "TemperatureMeasurement.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -33340,6 +34952,7 @@ class ReportTemperatureMeasurementClusterRevision : public ModelCommand | * NullableRangeRestrictedInt8s | 0x8027 | | * NullableRangeRestrictedInt16u | 0x8028 | | * NullableRangeRestrictedInt16s | 0x8029 | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -41301,6 +42914,36 @@ class ReportTestClusterNullableRangeRestrictedInt16s : public ModelCommand bool mWait; }; +/* + * Attribute AttributeList + */ +class ReadTestClusterAttributeList : public ModelCommand +{ +public: + ReadTestClusterAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadTestClusterAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x050F) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::TestClusterCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "TestCluster.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -41411,6 +43054,7 @@ class ReportTestClusterClusterRevision : public ModelCommand | * StartOfWeek | 0x0020 | | * NumberOfWeeklyTransitions | 0x0021 | | * NumberOfDailyTransitions | 0x0022 | +| * AttributeList | 0xFFFB | | * FeatureMap | 0xFFFC | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -43181,6 +44825,36 @@ class ReportThermostatNumberOfDailyTransitions : public ModelCommand bool mWait; }; +/* + * Attribute AttributeList + */ +class ReadThermostatAttributeList : public ModelCommand +{ +public: + ReadThermostatAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadThermostatAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x0201) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::ThermostatCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "Thermostat.AttributeList response", value); + } +}; + /* * Attribute FeatureMap */ @@ -43354,6 +45028,7 @@ class ReportThermostatClusterRevision : public ModelCommand | * TemperatureDisplayMode | 0x0000 | | * KeypadLockout | 0x0001 | | * ScheduleProgrammingVisibility | 0x0002 | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -43689,6 +45364,37 @@ class ReportThermostatUserInterfaceConfigurationScheduleProgrammingVisibility : bool mWait; }; +/* + * Attribute AttributeList + */ +class ReadThermostatUserInterfaceConfigurationAttributeList : public ModelCommand +{ +public: + ReadThermostatUserInterfaceConfigurationAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadThermostatUserInterfaceConfigurationAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x0204) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::ThermostatUserInterfaceConfigurationCluster cluster; + cluster.Associate(device, endpointId); + return cluster + .ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "ThermostatUserInterfaceConfiguration.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -43842,6 +45548,7 @@ class ReportThermostatUserInterfaceConfigurationClusterRevision : public ModelCo | * ChannelMask | 0x003C | | * OperationalDatasetComponents | 0x003D | | * ActiveNetworkFaultsList | 0x003E | +| * AttributeList | 0xFFFB | | * FeatureMap | 0xFFFC | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -48809,6 +50516,36 @@ class ReadThreadNetworkDiagnosticsActiveNetworkFaultsList : public ModelCommand } }; +/* + * Attribute AttributeList + */ +class ReadThreadNetworkDiagnosticsAttributeList : public ModelCommand +{ +public: + ReadThreadNetworkDiagnosticsAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadThreadNetworkDiagnosticsAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x0035) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::ThreadNetworkDiagnosticsCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "ThreadNetworkDiagnostics.AttributeList response", value); + } +}; + /* * Attribute FeatureMap */ @@ -48928,6 +50665,7 @@ class ReportThreadNetworkDiagnosticsClusterRevision : public ModelCommand |------------------------------------------------------------------------------| | Attributes: | | | * WakeOnLanMacAddress | 0x0000 | +| * AttributeList | 0xFFFB | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -49014,6 +50752,36 @@ class ReportWakeOnLanWakeOnLanMacAddress : public ModelCommand bool mWait; }; +/* + * Attribute AttributeList + */ +class ReadWakeOnLanAttributeList : public ModelCommand +{ +public: + ReadWakeOnLanAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadWakeOnLanAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x0503) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::WakeOnLanCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute(this, OnAttributeResponse, + OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "WakeOnLan.AttributeList response", value); + } +}; + /* * Attribute ClusterRevision */ @@ -49116,6 +50884,7 @@ class ReportWakeOnLanClusterRevision : public ModelCommand | * PacketUnicastTxCount | 0x000A | | * CurrentMaxRate | 0x000B | | * OverrunCount | 0x000C | +| * AttributeList | 0xFFFB | | * FeatureMap | 0xFFFC | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -50210,6 +51979,36 @@ class ReportWiFiNetworkDiagnosticsOverrunCount : public ModelCommand bool mWait; }; +/* + * Attribute AttributeList + */ +class ReadWiFiNetworkDiagnosticsAttributeList : public ModelCommand +{ +public: + ReadWiFiNetworkDiagnosticsAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadWiFiNetworkDiagnosticsAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x0036) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::WiFiNetworkDiagnosticsCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "WiFiNetworkDiagnostics.AttributeList response", value); + } +}; + /* * Attribute FeatureMap */ @@ -50353,6 +52152,7 @@ class ReportWiFiNetworkDiagnosticsClusterRevision : public ModelCommand | * InstalledClosedLimitTilt | 0x0013 | | * Mode | 0x0017 | | * SafetyStatus | 0x001A | +| * AttributeList | 0xFFFB | | * FeatureMap | 0xFFFC | | * ClusterRevision | 0xFFFD | \*----------------------------------------------------------------------------*/ @@ -52030,6 +53830,36 @@ class ReportWindowCoveringSafetyStatus : public ModelCommand bool mWait; }; +/* + * Attribute AttributeList + */ +class ReadWindowCoveringAttributeList : public ModelCommand +{ +public: + ReadWindowCoveringAttributeList() : ModelCommand("read") + { + AddArgument("attr-name", "attribute-list"); + ModelCommand::AddArguments(); + } + + ~ReadWindowCoveringAttributeList() {} + + CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override + { + ChipLogProgress(chipTool, "Sending cluster (0x0102) command (0x00) on endpoint %" PRIu8, endpointId); + + chip::Controller::WindowCoveringCluster cluster; + cluster.Associate(device, endpointId); + return cluster.ReadAttribute( + this, OnAttributeResponse, OnDefaultFailure); + } + + static void OnAttributeResponse(void * context, const chip::app::DataModel::DecodableList & value) + { + OnGeneralAttributeResponse(context, "WindowCovering.AttributeList response", value); + } +}; + /* * Attribute FeatureMap */ @@ -52204,6 +54034,7 @@ void registerClusterAccessControl(Commands & commands) commands_list clusterCommands = { make_unique(), // make_unique(), // + make_unique(), // make_unique(), // }; @@ -52216,6 +54047,7 @@ void registerClusterAccountLogin(Commands & commands) commands_list clusterCommands = { make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // }; @@ -52230,6 +54062,7 @@ void registerClusterAdministratorCommissioning(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // }; @@ -52256,6 +54089,7 @@ void registerClusterApplicationBasic(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // }; @@ -52273,6 +54107,7 @@ void registerClusterApplicationLauncher(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // }; @@ -52289,6 +54124,7 @@ void registerClusterAudioOutput(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // }; @@ -52310,6 +54146,7 @@ void registerClusterBarrierControl(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // }; @@ -52362,6 +54199,7 @@ void registerClusterBasic(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // }; @@ -52381,6 +54219,7 @@ void registerClusterBinaryInputBasic(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // }; @@ -52394,6 +54233,7 @@ void registerClusterBinding(Commands & commands) commands_list clusterCommands = { make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // }; @@ -52407,6 +54247,7 @@ void registerClusterBooleanState(Commands & commands) commands_list clusterCommands = { make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // }; @@ -52434,6 +54275,7 @@ void registerClusterBridgedActions(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // }; @@ -52445,6 +54287,7 @@ void registerClusterBridgedDeviceBasic(Commands & commands) const char * clusterName = "BridgedDeviceBasic"; commands_list clusterCommands = { + make_unique(), // make_unique(), // make_unique(), // }; @@ -52592,6 +54435,7 @@ void registerClusterColorControl(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // }; @@ -52607,6 +54451,7 @@ void registerClusterContentLauncher(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // }; @@ -52622,6 +54467,7 @@ void registerClusterDescriptor(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // }; @@ -52634,6 +54480,7 @@ void registerClusterDiagnosticLogs(Commands & commands) commands_list clusterCommands = { make_unique(), // + make_unique(), // }; commands.Register(clusterName, clusterCommands); @@ -52668,6 +54515,7 @@ void registerClusterDoorLock(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // }; @@ -52701,6 +54549,7 @@ void registerClusterElectricalMeasurement(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // }; @@ -52731,6 +54580,7 @@ void registerClusterEthernetNetworkDiagnostics(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // make_unique(), // @@ -52744,6 +54594,7 @@ void registerClusterFixedLabel(Commands & commands) commands_list clusterCommands = { make_unique(), // + make_unique(), // make_unique(), // make_unique(), // }; @@ -52763,6 +54614,7 @@ void registerClusterFlowMeasurement(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // }; @@ -52783,6 +54635,7 @@ void registerClusterGeneralCommissioning(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // }; @@ -52806,6 +54659,7 @@ void registerClusterGeneralDiagnostics(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // }; @@ -52819,6 +54673,7 @@ void registerClusterGroupKeyManagement(Commands & commands) commands_list clusterCommands = { make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // }; @@ -52838,6 +54693,7 @@ void registerClusterGroups(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // }; @@ -52857,6 +54713,7 @@ void registerClusterIdentify(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // }; @@ -52878,6 +54735,7 @@ void registerClusterIlluminanceMeasurement(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // }; @@ -52890,6 +54748,7 @@ void registerClusterKeypadInput(Commands & commands) commands_list clusterCommands = { make_unique(), // + make_unique(), // make_unique(), // make_unique(), // }; @@ -52944,6 +54803,7 @@ void registerClusterLevelControl(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // }; @@ -52956,6 +54816,7 @@ void registerClusterLowPower(Commands & commands) commands_list clusterCommands = { make_unique(), // + make_unique(), // make_unique(), // make_unique(), // }; @@ -52974,6 +54835,7 @@ void registerClusterMediaInput(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // }; @@ -53012,6 +54874,7 @@ void registerClusterMediaPlayback(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // }; @@ -53034,6 +54897,7 @@ void registerClusterModeSelect(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // }; @@ -53053,6 +54917,7 @@ void registerClusterNetworkCommissioning(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // make_unique(), // @@ -53069,6 +54934,7 @@ void registerClusterOtaSoftwareUpdateProvider(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // }; @@ -53086,6 +54952,7 @@ void registerClusterOtaSoftwareUpdateRequestor(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // }; @@ -53103,6 +54970,7 @@ void registerClusterOccupancySensing(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // }; @@ -53133,6 +55001,7 @@ void registerClusterOnOff(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // make_unique(), // @@ -53151,6 +55020,7 @@ void registerClusterOnOffSwitchConfiguration(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // }; @@ -53179,6 +55049,7 @@ void registerClusterOperationalCredentials(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // }; @@ -53207,6 +55078,7 @@ void registerClusterPowerSource(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // make_unique(), // @@ -53221,6 +55093,7 @@ void registerClusterPowerSourceConfiguration(Commands & commands) commands_list clusterCommands = { make_unique(), // + make_unique(), // make_unique(), // }; @@ -53237,6 +55110,7 @@ void registerClusterPressureMeasurement(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // }; @@ -53300,6 +55174,7 @@ void registerClusterPumpConfigurationAndControl(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // make_unique(), // @@ -53321,6 +55196,7 @@ void registerClusterRelativeHumidityMeasurement(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // }; @@ -53349,6 +55225,7 @@ void registerClusterScenes(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // }; @@ -53368,6 +55245,7 @@ void registerClusterSoftwareDiagnostics(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // make_unique(), // @@ -53386,6 +55264,7 @@ void registerClusterSwitch(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // make_unique(), // @@ -53407,6 +55286,7 @@ void registerClusterTvChannel(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // }; @@ -53420,6 +55300,7 @@ void registerClusterTargetNavigator(Commands & commands) commands_list clusterCommands = { make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // }; @@ -53439,6 +55320,7 @@ void registerClusterTemperatureMeasurement(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // }; @@ -53678,6 +55560,7 @@ void registerClusterTestCluster(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // }; @@ -53737,6 +55620,7 @@ void registerClusterThermostat(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // make_unique(), // @@ -53759,6 +55643,7 @@ void registerClusterThermostatUserInterfaceConfiguration(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // }; @@ -53892,6 +55777,7 @@ void registerClusterThreadNetworkDiagnostics(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // make_unique(), // @@ -53906,6 +55792,7 @@ void registerClusterWakeOnLan(Commands & commands) commands_list clusterCommands = { make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // }; @@ -53944,6 +55831,7 @@ void registerClusterWiFiNetworkDiagnostics(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // make_unique(), // @@ -54000,6 +55888,7 @@ void registerClusterWindowCovering(Commands & commands) make_unique(), // make_unique(), // make_unique(), // + make_unique(), // make_unique(), // make_unique(), // make_unique(), // diff --git a/zzz_generated/chip-tool/zap-generated/test/Commands.h b/zzz_generated/chip-tool/zap-generated/test/Commands.h index c91a49f4c0f1d2..711df2959903d8 100644 --- a/zzz_generated/chip-tool/zap-generated/test/Commands.h +++ b/zzz_generated/chip-tool/zap-generated/test/Commands.h @@ -47785,6 +47785,10 @@ class TestBasicInformation : public TestCommand ChipLogProgress(chipTool, " ***** Test Step 4 : Restore initial location value\n"); err = TestRestoreInitialLocationValue_4(); break; + case 5: + ChipLogProgress(chipTool, " ***** Test Step 5 : Read AttributeList value\n"); + err = TestReadAttributeListValue_5(); + break; } if (CHIP_NO_ERROR != err) @@ -47796,7 +47800,7 @@ class TestBasicInformation : public TestCommand private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 5; + const uint16_t mTestCount = 6; static void OnFailureCallback_1(void * context, EmberAfStatus status) { @@ -47832,6 +47836,16 @@ class TestBasicInformation : public TestCommand static void OnSuccessCallback_4(void * context) { (static_cast(context))->OnSuccessResponse_4(); } + static void OnFailureCallback_5(void * context, EmberAfStatus status) + { + (static_cast(context))->OnFailureResponse_5(chip::to_underlying(status)); + } + + static void OnSuccessCallback_5(void * context, const chip::app::DataModel::DecodableList & attributeList) + { + (static_cast(context))->OnSuccessResponse_5(attributeList); + } + // // Tests methods // @@ -47915,6 +47929,68 @@ class TestBasicInformation : public TestCommand void OnFailureResponse_4(uint8_t status) { ThrowFailureResponse(); } void OnSuccessResponse_4() { NextTest(); } + + CHIP_ERROR TestReadAttributeListValue_5() + { + const chip::EndpointId endpoint = mEndpointId.HasValue() ? mEndpointId.Value() : 0; + chip::Controller::BasicClusterTest cluster; + cluster.Associate(mDevices[kIdentityAlpha], endpoint); + + return cluster.ReadAttribute(this, OnSuccessCallback_5, + OnFailureCallback_5); + } + + void OnFailureResponse_5(uint8_t status) { ThrowFailureResponse(); } + + void OnSuccessResponse_5(const chip::app::DataModel::DecodableList & attributeList) + { + auto iter = attributeList.begin(); + VerifyOrReturn(CheckNextListItemDecodes("attributeList", iter, 0)); + VerifyOrReturn(CheckValue("attributeList[0]", iter.GetValue(), 0UL)); + VerifyOrReturn(CheckNextListItemDecodes("attributeList", iter, 1)); + VerifyOrReturn(CheckValue("attributeList[1]", iter.GetValue(), 1UL)); + VerifyOrReturn(CheckNextListItemDecodes("attributeList", iter, 2)); + VerifyOrReturn(CheckValue("attributeList[2]", iter.GetValue(), 2UL)); + VerifyOrReturn(CheckNextListItemDecodes("attributeList", iter, 3)); + VerifyOrReturn(CheckValue("attributeList[3]", iter.GetValue(), 3UL)); + VerifyOrReturn(CheckNextListItemDecodes("attributeList", iter, 4)); + VerifyOrReturn(CheckValue("attributeList[4]", iter.GetValue(), 4UL)); + VerifyOrReturn(CheckNextListItemDecodes("attributeList", iter, 5)); + VerifyOrReturn(CheckValue("attributeList[5]", iter.GetValue(), 5UL)); + VerifyOrReturn(CheckNextListItemDecodes("attributeList", iter, 6)); + VerifyOrReturn(CheckValue("attributeList[6]", iter.GetValue(), 6UL)); + VerifyOrReturn(CheckNextListItemDecodes("attributeList", iter, 7)); + VerifyOrReturn(CheckValue("attributeList[7]", iter.GetValue(), 7UL)); + VerifyOrReturn(CheckNextListItemDecodes("attributeList", iter, 8)); + VerifyOrReturn(CheckValue("attributeList[8]", iter.GetValue(), 8UL)); + VerifyOrReturn(CheckNextListItemDecodes("attributeList", iter, 9)); + VerifyOrReturn(CheckValue("attributeList[9]", iter.GetValue(), 9UL)); + VerifyOrReturn(CheckNextListItemDecodes("attributeList", iter, 10)); + VerifyOrReturn(CheckValue("attributeList[10]", iter.GetValue(), 10UL)); + VerifyOrReturn(CheckNextListItemDecodes("attributeList", iter, 11)); + VerifyOrReturn(CheckValue("attributeList[11]", iter.GetValue(), 11UL)); + VerifyOrReturn(CheckNextListItemDecodes("attributeList", iter, 12)); + VerifyOrReturn(CheckValue("attributeList[12]", iter.GetValue(), 12UL)); + VerifyOrReturn(CheckNextListItemDecodes("attributeList", iter, 13)); + VerifyOrReturn(CheckValue("attributeList[13]", iter.GetValue(), 13UL)); + VerifyOrReturn(CheckNextListItemDecodes("attributeList", iter, 14)); + VerifyOrReturn(CheckValue("attributeList[14]", iter.GetValue(), 14UL)); + VerifyOrReturn(CheckNextListItemDecodes("attributeList", iter, 15)); + VerifyOrReturn(CheckValue("attributeList[15]", iter.GetValue(), 15UL)); + VerifyOrReturn(CheckNextListItemDecodes("attributeList", iter, 16)); + VerifyOrReturn(CheckValue("attributeList[16]", iter.GetValue(), 16UL)); + VerifyOrReturn(CheckNextListItemDecodes("attributeList", iter, 17)); + VerifyOrReturn(CheckValue("attributeList[17]", iter.GetValue(), 17UL)); + VerifyOrReturn(CheckNextListItemDecodes("attributeList", iter, 18)); + VerifyOrReturn(CheckValue("attributeList[18]", iter.GetValue(), 18UL)); + VerifyOrReturn(CheckNextListItemDecodes("attributeList", iter, 19)); + VerifyOrReturn(CheckValue("attributeList[19]", iter.GetValue(), 65531UL)); + VerifyOrReturn(CheckNextListItemDecodes("attributeList", iter, 20)); + VerifyOrReturn(CheckValue("attributeList[20]", iter.GetValue(), 65533UL)); + VerifyOrReturn(CheckNoMoreListItems("attributeList", iter, 21)); + + NextTest(); + } }; class TestIdentifyCluster : public TestCommand diff --git a/zzz_generated/controller-clusters/zap-generated/CHIPClientCallbacks.cpp b/zzz_generated/controller-clusters/zap-generated/CHIPClientCallbacks.cpp index b8f79cc871f0ac..8ad90a8bc99412 100644 --- a/zzz_generated/controller-clusters/zap-generated/CHIPClientCallbacks.cpp +++ b/zzz_generated/controller-clusters/zap-generated/CHIPClientCallbacks.cpp @@ -176,11 +176,10 @@ void AccessControlClusterExtensionListAttributeFilter(TLV::TLVReader * tlvData, cb->mCall(cb->mContext, list); } -void ApplicationLauncherClusterApplicationLauncherListListAttributeFilter(TLV::TLVReader * tlvData, - Callback::Cancelable * onSuccessCallback, - Callback::Cancelable * onFailureCallback) +void AccessControlClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) { - chip::app::DataModel::DecodableList list; + chip::app::DataModel::DecodableList list; CHIP_ERROR err = Decode(*tlvData, list); if (err != CHIP_NO_ERROR) { @@ -193,15 +192,15 @@ void ApplicationLauncherClusterApplicationLauncherListListAttributeFilter(TLV::T return; } - Callback::Callback * cb = - Callback::Callback::FromCancelable(onSuccessCallback); + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); cb->mCall(cb->mContext, list); } -void AudioOutputClusterAudioOutputListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, - Callback::Cancelable * onFailureCallback) +void AccountLoginClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) { - chip::app::DataModel::DecodableList list; + chip::app::DataModel::DecodableList list; CHIP_ERROR err = Decode(*tlvData, list); if (err != CHIP_NO_ERROR) { @@ -214,15 +213,16 @@ void AudioOutputClusterAudioOutputListListAttributeFilter(TLV::TLVReader * tlvDa return; } - Callback::Callback * cb = - Callback::Callback::FromCancelable(onSuccessCallback); + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); cb->mCall(cb->mContext, list); } -void BridgedActionsClusterActionListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, - Callback::Cancelable * onFailureCallback) +void AdministratorCommissioningClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, + Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) { - chip::app::DataModel::DecodableList list; + chip::app::DataModel::DecodableList list; CHIP_ERROR err = Decode(*tlvData, list); if (err != CHIP_NO_ERROR) { @@ -235,15 +235,15 @@ void BridgedActionsClusterActionListListAttributeFilter(TLV::TLVReader * tlvData return; } - Callback::Callback * cb = - Callback::Callback::FromCancelable(onSuccessCallback); + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); cb->mCall(cb->mContext, list); } -void BridgedActionsClusterEndpointListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, - Callback::Cancelable * onFailureCallback) +void ApplicationBasicClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) { - chip::app::DataModel::DecodableList list; + chip::app::DataModel::DecodableList list; CHIP_ERROR err = Decode(*tlvData, list); if (err != CHIP_NO_ERROR) { @@ -256,15 +256,16 @@ void BridgedActionsClusterEndpointListListAttributeFilter(TLV::TLVReader * tlvDa return; } - Callback::Callback * cb = - Callback::Callback::FromCancelable(onSuccessCallback); + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); cb->mCall(cb->mContext, list); } -void ContentLauncherClusterAcceptsHeaderListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, - Callback::Cancelable * onFailureCallback) +void ApplicationLauncherClusterApplicationLauncherListListAttributeFilter(TLV::TLVReader * tlvData, + Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) { - chip::app::DataModel::DecodableList list; + chip::app::DataModel::DecodableList list; CHIP_ERROR err = Decode(*tlvData, list); if (err != CHIP_NO_ERROR) { @@ -277,16 +278,15 @@ void ContentLauncherClusterAcceptsHeaderListListAttributeFilter(TLV::TLVReader * return; } - Callback::Callback * cb = - Callback::Callback::FromCancelable(onSuccessCallback); + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); cb->mCall(cb->mContext, list); } -void ContentLauncherClusterSupportedStreamingTypesListAttributeFilter(TLV::TLVReader * tlvData, - Callback::Cancelable * onSuccessCallback, - Callback::Cancelable * onFailureCallback) +void ApplicationLauncherClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) { - chip::app::DataModel::DecodableList list; + chip::app::DataModel::DecodableList list; CHIP_ERROR err = Decode(*tlvData, list); if (err != CHIP_NO_ERROR) { @@ -299,15 +299,15 @@ void ContentLauncherClusterSupportedStreamingTypesListAttributeFilter(TLV::TLVRe return; } - Callback::Callback * cb = - Callback::Callback::FromCancelable(onSuccessCallback); + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); cb->mCall(cb->mContext, list); } -void DescriptorClusterDeviceListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, - Callback::Cancelable * onFailureCallback) +void AudioOutputClusterAudioOutputListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) { - chip::app::DataModel::DecodableList list; + chip::app::DataModel::DecodableList list; CHIP_ERROR err = Decode(*tlvData, list); if (err != CHIP_NO_ERROR) { @@ -320,15 +320,15 @@ void DescriptorClusterDeviceListListAttributeFilter(TLV::TLVReader * tlvData, Ca return; } - Callback::Callback * cb = - Callback::Callback::FromCancelable(onSuccessCallback); + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); cb->mCall(cb->mContext, list); } -void DescriptorClusterServerListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, - Callback::Cancelable * onFailureCallback) +void AudioOutputClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) { - chip::app::DataModel::DecodableList list; + chip::app::DataModel::DecodableList list; CHIP_ERROR err = Decode(*tlvData, list); if (err != CHIP_NO_ERROR) { @@ -341,15 +341,15 @@ void DescriptorClusterServerListListAttributeFilter(TLV::TLVReader * tlvData, Ca return; } - Callback::Callback * cb = - Callback::Callback::FromCancelable(onSuccessCallback); + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); cb->mCall(cb->mContext, list); } -void DescriptorClusterClientListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, - Callback::Cancelable * onFailureCallback) +void BarrierControlClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) { - chip::app::DataModel::DecodableList list; + chip::app::DataModel::DecodableList list; CHIP_ERROR err = Decode(*tlvData, list); if (err != CHIP_NO_ERROR) { @@ -362,15 +362,15 @@ void DescriptorClusterClientListListAttributeFilter(TLV::TLVReader * tlvData, Ca return; } - Callback::Callback * cb = - Callback::Callback::FromCancelable(onSuccessCallback); + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); cb->mCall(cb->mContext, list); } -void DescriptorClusterPartsListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, - Callback::Cancelable * onFailureCallback) +void BasicClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) { - chip::app::DataModel::DecodableList list; + chip::app::DataModel::DecodableList list; CHIP_ERROR err = Decode(*tlvData, list); if (err != CHIP_NO_ERROR) { @@ -383,15 +383,15 @@ void DescriptorClusterPartsListListAttributeFilter(TLV::TLVReader * tlvData, Cal return; } - Callback::Callback * cb = - Callback::Callback::FromCancelable(onSuccessCallback); + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); cb->mCall(cb->mContext, list); } -void FixedLabelClusterLabelListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, - Callback::Cancelable * onFailureCallback) +void BinaryInputBasicClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) { - chip::app::DataModel::DecodableList list; + chip::app::DataModel::DecodableList list; CHIP_ERROR err = Decode(*tlvData, list); if (err != CHIP_NO_ERROR) { @@ -404,18 +404,15 @@ void FixedLabelClusterLabelListListAttributeFilter(TLV::TLVReader * tlvData, Cal return; } - Callback::Callback * cb = - Callback::Callback::FromCancelable(onSuccessCallback); + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); cb->mCall(cb->mContext, list); } -void GeneralCommissioningClusterBasicCommissioningInfoListListAttributeFilter(TLV::TLVReader * tlvData, - Callback::Cancelable * onSuccessCallback, - Callback::Cancelable * onFailureCallback) +void BindingClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) { - chip::app::DataModel::DecodableList< - chip::app::Clusters::GeneralCommissioning::Structs::BasicCommissioningInfoType::DecodableType> - list; + chip::app::DataModel::DecodableList list; CHIP_ERROR err = Decode(*tlvData, list); if (err != CHIP_NO_ERROR) { @@ -428,16 +425,15 @@ void GeneralCommissioningClusterBasicCommissioningInfoListListAttributeFilter(TL return; } - Callback::Callback * cb = - Callback::Callback::FromCancelable(onSuccessCallback); + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); cb->mCall(cb->mContext, list); } -void GeneralDiagnosticsClusterNetworkInterfacesListAttributeFilter(TLV::TLVReader * tlvData, - Callback::Cancelable * onSuccessCallback, - Callback::Cancelable * onFailureCallback) +void BooleanStateClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) { - chip::app::DataModel::DecodableList list; + chip::app::DataModel::DecodableList list; CHIP_ERROR err = Decode(*tlvData, list); if (err != CHIP_NO_ERROR) { @@ -450,16 +446,15 @@ void GeneralDiagnosticsClusterNetworkInterfacesListAttributeFilter(TLV::TLVReade return; } - Callback::Callback * cb = - Callback::Callback::FromCancelable(onSuccessCallback); + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); cb->mCall(cb->mContext, list); } -void GeneralDiagnosticsClusterActiveHardwareFaultsListAttributeFilter(TLV::TLVReader * tlvData, - Callback::Cancelable * onSuccessCallback, - Callback::Cancelable * onFailureCallback) +void BridgedActionsClusterActionListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) { - chip::app::DataModel::DecodableList list; + chip::app::DataModel::DecodableList list; CHIP_ERROR err = Decode(*tlvData, list); if (err != CHIP_NO_ERROR) { @@ -472,16 +467,15 @@ void GeneralDiagnosticsClusterActiveHardwareFaultsListAttributeFilter(TLV::TLVRe return; } - Callback::Callback * cb = - Callback::Callback::FromCancelable(onSuccessCallback); + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); cb->mCall(cb->mContext, list); } -void GeneralDiagnosticsClusterActiveRadioFaultsListAttributeFilter(TLV::TLVReader * tlvData, - Callback::Cancelable * onSuccessCallback, - Callback::Cancelable * onFailureCallback) +void BridgedActionsClusterEndpointListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) { - chip::app::DataModel::DecodableList list; + chip::app::DataModel::DecodableList list; CHIP_ERROR err = Decode(*tlvData, list); if (err != CHIP_NO_ERROR) { @@ -494,16 +488,15 @@ void GeneralDiagnosticsClusterActiveRadioFaultsListAttributeFilter(TLV::TLVReade return; } - Callback::Callback * cb = - Callback::Callback::FromCancelable(onSuccessCallback); + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); cb->mCall(cb->mContext, list); } -void GeneralDiagnosticsClusterActiveNetworkFaultsListAttributeFilter(TLV::TLVReader * tlvData, - Callback::Cancelable * onSuccessCallback, - Callback::Cancelable * onFailureCallback) +void BridgedActionsClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) { - chip::app::DataModel::DecodableList list; + chip::app::DataModel::DecodableList list; CHIP_ERROR err = Decode(*tlvData, list); if (err != CHIP_NO_ERROR) { @@ -516,15 +509,15 @@ void GeneralDiagnosticsClusterActiveNetworkFaultsListAttributeFilter(TLV::TLVRea return; } - Callback::Callback * cb = - Callback::Callback::FromCancelable(onSuccessCallback); + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); cb->mCall(cb->mContext, list); } -void GroupKeyManagementClusterGroupsListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, - Callback::Cancelable * onFailureCallback) +void BridgedDeviceBasicClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) { - chip::app::DataModel::DecodableList list; + chip::app::DataModel::DecodableList list; CHIP_ERROR err = Decode(*tlvData, list); if (err != CHIP_NO_ERROR) { @@ -537,15 +530,15 @@ void GroupKeyManagementClusterGroupsListAttributeFilter(TLV::TLVReader * tlvData return; } - Callback::Callback * cb = - Callback::Callback::FromCancelable(onSuccessCallback); + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); cb->mCall(cb->mContext, list); } -void GroupKeyManagementClusterGroupKeysListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, - Callback::Cancelable * onFailureCallback) +void ColorControlClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) { - chip::app::DataModel::DecodableList list; + chip::app::DataModel::DecodableList list; CHIP_ERROR err = Decode(*tlvData, list); if (err != CHIP_NO_ERROR) { @@ -558,15 +551,15 @@ void GroupKeyManagementClusterGroupKeysListAttributeFilter(TLV::TLVReader * tlvD return; } - Callback::Callback * cb = - Callback::Callback::FromCancelable(onSuccessCallback); + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); cb->mCall(cb->mContext, list); } -void MediaInputClusterMediaInputListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, - Callback::Cancelable * onFailureCallback) +void ContentLauncherClusterAcceptsHeaderListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) { - chip::app::DataModel::DecodableList list; + chip::app::DataModel::DecodableList list; CHIP_ERROR err = Decode(*tlvData, list); if (err != CHIP_NO_ERROR) { @@ -579,15 +572,16 @@ void MediaInputClusterMediaInputListListAttributeFilter(TLV::TLVReader * tlvData return; } - Callback::Callback * cb = - Callback::Callback::FromCancelable(onSuccessCallback); + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); cb->mCall(cb->mContext, list); } -void ModeSelectClusterSupportedModesListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, - Callback::Cancelable * onFailureCallback) +void ContentLauncherClusterSupportedStreamingTypesListAttributeFilter(TLV::TLVReader * tlvData, + Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) { - chip::app::DataModel::DecodableList list; + chip::app::DataModel::DecodableList list; CHIP_ERROR err = Decode(*tlvData, list); if (err != CHIP_NO_ERROR) { @@ -600,15 +594,15 @@ void ModeSelectClusterSupportedModesListAttributeFilter(TLV::TLVReader * tlvData return; } - Callback::Callback * cb = - Callback::Callback::FromCancelable(onSuccessCallback); + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); cb->mCall(cb->mContext, list); } -void OperationalCredentialsClusterFabricsListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, - Callback::Cancelable * onFailureCallback) +void ContentLauncherClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) { - chip::app::DataModel::DecodableList list; + chip::app::DataModel::DecodableList list; CHIP_ERROR err = Decode(*tlvData, list); if (err != CHIP_NO_ERROR) { @@ -621,16 +615,15 @@ void OperationalCredentialsClusterFabricsListListAttributeFilter(TLV::TLVReader return; } - Callback::Callback * cb = - Callback::Callback::FromCancelable(onSuccessCallback); + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); cb->mCall(cb->mContext, list); } -void OperationalCredentialsClusterTrustedRootCertificatesListAttributeFilter(TLV::TLVReader * tlvData, - Callback::Cancelable * onSuccessCallback, - Callback::Cancelable * onFailureCallback) +void DescriptorClusterDeviceListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) { - chip::app::DataModel::DecodableList list; + chip::app::DataModel::DecodableList list; CHIP_ERROR err = Decode(*tlvData, list); if (err != CHIP_NO_ERROR) { @@ -643,15 +636,15 @@ void OperationalCredentialsClusterTrustedRootCertificatesListAttributeFilter(TLV return; } - Callback::Callback * cb = - Callback::Callback::FromCancelable(onSuccessCallback); + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); cb->mCall(cb->mContext, list); } -void PowerSourceClusterActiveBatteryFaultsListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, - Callback::Cancelable * onFailureCallback) +void DescriptorClusterServerListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) { - chip::app::DataModel::DecodableList list; + chip::app::DataModel::DecodableList list; CHIP_ERROR err = Decode(*tlvData, list); if (err != CHIP_NO_ERROR) { @@ -664,15 +657,15 @@ void PowerSourceClusterActiveBatteryFaultsListAttributeFilter(TLV::TLVReader * t return; } - Callback::Callback * cb = - Callback::Callback::FromCancelable(onSuccessCallback); + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); cb->mCall(cb->mContext, list); } -void PowerSourceConfigurationClusterSourcesListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, - Callback::Cancelable * onFailureCallback) +void DescriptorClusterClientListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) { - chip::app::DataModel::DecodableList list; + chip::app::DataModel::DecodableList list; CHIP_ERROR err = Decode(*tlvData, list); if (err != CHIP_NO_ERROR) { @@ -685,15 +678,15 @@ void PowerSourceConfigurationClusterSourcesListAttributeFilter(TLV::TLVReader * return; } - Callback::Callback * cb = - Callback::Callback::FromCancelable(onSuccessCallback); + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); cb->mCall(cb->mContext, list); } -void SoftwareDiagnosticsClusterThreadMetricsListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, - Callback::Cancelable * onFailureCallback) +void DescriptorClusterPartsListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) { - chip::app::DataModel::DecodableList list; + chip::app::DataModel::DecodableList list; CHIP_ERROR err = Decode(*tlvData, list); if (err != CHIP_NO_ERROR) { @@ -706,15 +699,15 @@ void SoftwareDiagnosticsClusterThreadMetricsListAttributeFilter(TLV::TLVReader * return; } - Callback::Callback * cb = - Callback::Callback::FromCancelable(onSuccessCallback); + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); cb->mCall(cb->mContext, list); } -void TvChannelClusterTvChannelListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, - Callback::Cancelable * onFailureCallback) +void DescriptorClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) { - chip::app::DataModel::DecodableList list; + chip::app::DataModel::DecodableList list; CHIP_ERROR err = Decode(*tlvData, list); if (err != CHIP_NO_ERROR) { @@ -727,17 +720,15 @@ void TvChannelClusterTvChannelListListAttributeFilter(TLV::TLVReader * tlvData, return; } - Callback::Callback * cb = - Callback::Callback::FromCancelable(onSuccessCallback); + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); cb->mCall(cb->mContext, list); } -void TargetNavigatorClusterTargetNavigatorListListAttributeFilter(TLV::TLVReader * tlvData, - Callback::Cancelable * onSuccessCallback, - Callback::Cancelable * onFailureCallback) +void DiagnosticLogsClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) { - chip::app::DataModel::DecodableList - list; + chip::app::DataModel::DecodableList list; CHIP_ERROR err = Decode(*tlvData, list); if (err != CHIP_NO_ERROR) { @@ -750,15 +741,15 @@ void TargetNavigatorClusterTargetNavigatorListListAttributeFilter(TLV::TLVReader return; } - Callback::Callback * cb = - Callback::Callback::FromCancelable(onSuccessCallback); + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); cb->mCall(cb->mContext, list); } -void TestClusterClusterListInt8uListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, - Callback::Cancelable * onFailureCallback) +void DoorLockClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) { - chip::app::DataModel::DecodableList list; + chip::app::DataModel::DecodableList list; CHIP_ERROR err = Decode(*tlvData, list); if (err != CHIP_NO_ERROR) { @@ -771,15 +762,16 @@ void TestClusterClusterListInt8uListAttributeFilter(TLV::TLVReader * tlvData, Ca return; } - Callback::Callback * cb = - Callback::Callback::FromCancelable(onSuccessCallback); + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); cb->mCall(cb->mContext, list); } -void TestClusterClusterListOctetStringListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, - Callback::Cancelable * onFailureCallback) +void ElectricalMeasurementClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, + Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) { - chip::app::DataModel::DecodableList list; + chip::app::DataModel::DecodableList list; CHIP_ERROR err = Decode(*tlvData, list); if (err != CHIP_NO_ERROR) { @@ -792,15 +784,16 @@ void TestClusterClusterListOctetStringListAttributeFilter(TLV::TLVReader * tlvDa return; } - Callback::Callback * cb = - Callback::Callback::FromCancelable(onSuccessCallback); + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); cb->mCall(cb->mContext, list); } -void TestClusterClusterListStructOctetStringListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, - Callback::Cancelable * onFailureCallback) +void EthernetNetworkDiagnosticsClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, + Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) { - chip::app::DataModel::DecodableList list; + chip::app::DataModel::DecodableList list; CHIP_ERROR err = Decode(*tlvData, list); if (err != CHIP_NO_ERROR) { @@ -813,16 +806,15 @@ void TestClusterClusterListStructOctetStringListAttributeFilter(TLV::TLVReader * return; } - Callback::Callback * cb = - Callback::Callback::FromCancelable(onSuccessCallback); + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); cb->mCall(cb->mContext, list); } -void TestClusterClusterListNullablesAndOptionalsStructListAttributeFilter(TLV::TLVReader * tlvData, - Callback::Cancelable * onSuccessCallback, - Callback::Cancelable * onFailureCallback) +void FixedLabelClusterLabelListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) { - chip::app::DataModel::DecodableList list; + chip::app::DataModel::DecodableList list; CHIP_ERROR err = Decode(*tlvData, list); if (err != CHIP_NO_ERROR) { @@ -835,15 +827,15 @@ void TestClusterClusterListNullablesAndOptionalsStructListAttributeFilter(TLV::T return; } - Callback::Callback * cb = - Callback::Callback::FromCancelable(onSuccessCallback); + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); cb->mCall(cb->mContext, list); } -void TestClusterClusterListLongOctetStringListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, - Callback::Cancelable * onFailureCallback) +void FixedLabelClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) { - chip::app::DataModel::DecodableList list; + chip::app::DataModel::DecodableList list; CHIP_ERROR err = Decode(*tlvData, list); if (err != CHIP_NO_ERROR) { @@ -856,16 +848,15 @@ void TestClusterClusterListLongOctetStringListAttributeFilter(TLV::TLVReader * t return; } - Callback::Callback * cb = - Callback::Callback::FromCancelable(onSuccessCallback); + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); cb->mCall(cb->mContext, list); } -void ThreadNetworkDiagnosticsClusterNeighborTableListListAttributeFilter(TLV::TLVReader * tlvData, - Callback::Cancelable * onSuccessCallback, - Callback::Cancelable * onFailureCallback) +void FlowMeasurementClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) { - chip::app::DataModel::DecodableList list; + chip::app::DataModel::DecodableList list; CHIP_ERROR err = Decode(*tlvData, list); if (err != CHIP_NO_ERROR) { @@ -878,16 +869,1194 @@ void ThreadNetworkDiagnosticsClusterNeighborTableListListAttributeFilter(TLV::TL return; } - Callback::Callback * cb = - Callback::Callback::FromCancelable(onSuccessCallback); + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); cb->mCall(cb->mContext, list); } -void ThreadNetworkDiagnosticsClusterRouteTableListListAttributeFilter(TLV::TLVReader * tlvData, - Callback::Cancelable * onSuccessCallback, - Callback::Cancelable * onFailureCallback) +void GeneralCommissioningClusterBasicCommissioningInfoListListAttributeFilter(TLV::TLVReader * tlvData, + Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) { - chip::app::DataModel::DecodableList list; + chip::app::DataModel::DecodableList< + chip::app::Clusters::GeneralCommissioning::Structs::BasicCommissioningInfoType::DecodableType> + list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void GeneralCommissioningClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void GeneralDiagnosticsClusterNetworkInterfacesListAttributeFilter(TLV::TLVReader * tlvData, + Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void GeneralDiagnosticsClusterActiveHardwareFaultsListAttributeFilter(TLV::TLVReader * tlvData, + Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void GeneralDiagnosticsClusterActiveRadioFaultsListAttributeFilter(TLV::TLVReader * tlvData, + Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void GeneralDiagnosticsClusterActiveNetworkFaultsListAttributeFilter(TLV::TLVReader * tlvData, + Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void GeneralDiagnosticsClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void GroupKeyManagementClusterGroupsListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void GroupKeyManagementClusterGroupKeysListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void GroupKeyManagementClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void GroupsClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void IdentifyClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void IlluminanceMeasurementClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, + Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void KeypadInputClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void LevelControlClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void LowPowerClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void MediaInputClusterMediaInputListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void MediaInputClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void MediaPlaybackClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void ModeSelectClusterSupportedModesListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void ModeSelectClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void NetworkCommissioningClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void OtaSoftwareUpdateProviderClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, + Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void OtaSoftwareUpdateRequestorClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, + Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void OccupancySensingClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void OnOffClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void OnOffSwitchConfigurationClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, + Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void OperationalCredentialsClusterFabricsListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void OperationalCredentialsClusterTrustedRootCertificatesListAttributeFilter(TLV::TLVReader * tlvData, + Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void OperationalCredentialsClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, + Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void PowerSourceClusterActiveBatteryFaultsListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void PowerSourceClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void PowerSourceConfigurationClusterSourcesListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void PowerSourceConfigurationClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, + Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void PressureMeasurementClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void PumpConfigurationAndControlClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, + Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void RelativeHumidityMeasurementClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, + Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void ScenesClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void SoftwareDiagnosticsClusterThreadMetricsListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void SoftwareDiagnosticsClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void SwitchClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void TvChannelClusterTvChannelListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void TvChannelClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void TargetNavigatorClusterTargetNavigatorListListAttributeFilter(TLV::TLVReader * tlvData, + Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList + list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void TargetNavigatorClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void TemperatureMeasurementClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, + Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void TestClusterClusterListInt8uListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void TestClusterClusterListOctetStringListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void TestClusterClusterListStructOctetStringListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void TestClusterClusterListNullablesAndOptionalsStructListAttributeFilter(TLV::TLVReader * tlvData, + Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void TestClusterClusterListLongOctetStringListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void TestClusterClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void ThermostatClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void ThermostatUserInterfaceConfigurationClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, + Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable( + onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void ThreadNetworkDiagnosticsClusterNeighborTableListListAttributeFilter(TLV::TLVReader * tlvData, + Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void ThreadNetworkDiagnosticsClusterRouteTableListListAttributeFilter(TLV::TLVReader * tlvData, + Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; CHIP_ERROR err = Decode(*tlvData, list); if (err != CHIP_NO_ERROR) { @@ -974,6 +2143,92 @@ void ThreadNetworkDiagnosticsClusterActiveNetworkFaultsListListAttributeFilter(T cb->mCall(cb->mContext, list); } +void ThreadNetworkDiagnosticsClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, + Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void WakeOnLanClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void WiFiNetworkDiagnosticsClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, + Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void WindowCoveringClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + bool emberAfAccountLoginClusterGetSetupPINResponseCallback(EndpointId endpoint, app::CommandSender * commandObj, chip::CharSpan setupPIN) { diff --git a/zzz_generated/controller-clusters/zap-generated/CHIPClientCallbacks.h b/zzz_generated/controller-clusters/zap-generated/CHIPClientCallbacks.h index 0ba9dbdc7634f9..e9d94f07b384f6 100644 --- a/zzz_generated/controller-clusters/zap-generated/CHIPClientCallbacks.h +++ b/zzz_generated/controller-clusters/zap-generated/CHIPClientCallbacks.h @@ -148,17 +148,69 @@ void AccessControlClusterExtensionListAttributeFilter(chip::TLV::TLVReader * dat typedef void (*AccessControlExtensionListAttributeCallback)( void * context, const chip::app::DataModel::DecodableList & data); +void AccessControlClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*AccessControlAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); +void AccountLoginClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*AccountLoginAttributeListListAttributeCallback)(void * context, + const chip::app::DataModel::DecodableList & data); +void AdministratorCommissioningClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*AdministratorCommissioningAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); +void ApplicationBasicClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*ApplicationBasicAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); void ApplicationLauncherClusterApplicationLauncherListListAttributeFilter(chip::TLV::TLVReader * data, chip::Callback::Cancelable * onSuccessCallback, chip::Callback::Cancelable * onFailureCallback); typedef void (*ApplicationLauncherApplicationLauncherListListAttributeCallback)( void * context, const chip::app::DataModel::DecodableList & data); +void ApplicationLauncherClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*ApplicationLauncherAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); void AudioOutputClusterAudioOutputListListAttributeFilter(chip::TLV::TLVReader * data, chip::Callback::Cancelable * onSuccessCallback, chip::Callback::Cancelable * onFailureCallback); typedef void (*AudioOutputAudioOutputListListAttributeCallback)( void * context, const chip::app::DataModel::DecodableList & data); +void AudioOutputClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*AudioOutputAttributeListListAttributeCallback)(void * context, + const chip::app::DataModel::DecodableList & data); +void BarrierControlClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*BarrierControlAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); +void BasicClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*BasicAttributeListListAttributeCallback)(void * context, + const chip::app::DataModel::DecodableList & data); +void BinaryInputBasicClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*BinaryInputBasicAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); +void BindingClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*BindingAttributeListListAttributeCallback)(void * context, + const chip::app::DataModel::DecodableList & data); +void BooleanStateClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*BooleanStateAttributeListListAttributeCallback)(void * context, + const chip::app::DataModel::DecodableList & data); void BridgedActionsClusterActionListListAttributeFilter(chip::TLV::TLVReader * data, chip::Callback::Cancelable * onSuccessCallback, chip::Callback::Cancelable * onFailureCallback); typedef void (*BridgedActionsActionListListAttributeCallback)( @@ -171,6 +223,21 @@ typedef void (*BridgedActionsEndpointListListAttributeCallback)( void * context, const chip::app::DataModel::DecodableList & data); +void BridgedActionsClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*BridgedActionsAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); +void BridgedDeviceBasicClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*BridgedDeviceBasicAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); +void ColorControlClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*ColorControlAttributeListListAttributeCallback)(void * context, + const chip::app::DataModel::DecodableList & data); void ContentLauncherClusterAcceptsHeaderListListAttributeFilter(chip::TLV::TLVReader * data, chip::Callback::Cancelable * onSuccessCallback, chip::Callback::Cancelable * onFailureCallback); @@ -182,6 +249,11 @@ void ContentLauncherClusterSupportedStreamingTypesListAttributeFilter(chip::TLV: typedef void (*ContentLauncherSupportedStreamingTypesListAttributeCallback)( void * context, const chip::app::DataModel::DecodableList & data); +void ContentLauncherClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*ContentLauncherAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); void DescriptorClusterDeviceListListAttributeFilter(chip::TLV::TLVReader * data, chip::Callback::Cancelable * onSuccessCallback, chip::Callback::Cancelable * onFailureCallback); typedef void (*DescriptorDeviceListListAttributeCallback)( @@ -199,11 +271,43 @@ void DescriptorClusterPartsListListAttributeFilter(chip::TLV::TLVReader * data, chip::Callback::Cancelable * onFailureCallback); typedef void (*DescriptorPartsListListAttributeCallback)(void * context, const chip::app::DataModel::DecodableList & data); +void DescriptorClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*DescriptorAttributeListListAttributeCallback)(void * context, + const chip::app::DataModel::DecodableList & data); +void DiagnosticLogsClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*DiagnosticLogsAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); +void DoorLockClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*DoorLockAttributeListListAttributeCallback)(void * context, + const chip::app::DataModel::DecodableList & data); +void ElectricalMeasurementClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*ElectricalMeasurementAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); +void EthernetNetworkDiagnosticsClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*EthernetNetworkDiagnosticsAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); void FixedLabelClusterLabelListListAttributeFilter(chip::TLV::TLVReader * data, chip::Callback::Cancelable * onSuccessCallback, chip::Callback::Cancelable * onFailureCallback); typedef void (*FixedLabelLabelListListAttributeCallback)( void * context, const chip::app::DataModel::DecodableList & data); +void FixedLabelClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*FixedLabelAttributeListListAttributeCallback)(void * context, + const chip::app::DataModel::DecodableList & data); +void FlowMeasurementClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*FlowMeasurementAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); void GeneralCommissioningClusterBasicCommissioningInfoListListAttributeFilter(chip::TLV::TLVReader * data, chip::Callback::Cancelable * onSuccessCallback, chip::Callback::Cancelable * onFailureCallback); @@ -211,6 +315,11 @@ typedef void (*GeneralCommissioningBasicCommissioningInfoListListAttributeCallba void * context, const chip::app::DataModel::DecodableList< chip::app::Clusters::GeneralCommissioning::Structs::BasicCommissioningInfoType::DecodableType> & data); +void GeneralCommissioningClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*GeneralCommissioningAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); void GeneralDiagnosticsClusterNetworkInterfacesListAttributeFilter(chip::TLV::TLVReader * data, chip::Callback::Cancelable * onSuccessCallback, chip::Callback::Cancelable * onFailureCallback); @@ -233,6 +342,11 @@ void GeneralDiagnosticsClusterActiveNetworkFaultsListAttributeFilter(chip::TLV:: chip::Callback::Cancelable * onFailureCallback); typedef void (*GeneralDiagnosticsActiveNetworkFaultsListAttributeCallback)( void * context, const chip::app::DataModel::DecodableList & data); +void GeneralDiagnosticsClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*GeneralDiagnosticsAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); void GroupKeyManagementClusterGroupsListAttributeFilter(chip::TLV::TLVReader * data, chip::Callback::Cancelable * onSuccessCallback, chip::Callback::Cancelable * onFailureCallback); typedef void (*GroupKeyManagementGroupsListAttributeCallback)( @@ -244,16 +358,89 @@ void GroupKeyManagementClusterGroupKeysListAttributeFilter(chip::TLV::TLVReader typedef void (*GroupKeyManagementGroupKeysListAttributeCallback)( void * context, const chip::app::DataModel::DecodableList & data); +void GroupKeyManagementClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*GroupKeyManagementAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); +void GroupsClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*GroupsAttributeListListAttributeCallback)(void * context, + const chip::app::DataModel::DecodableList & data); +void IdentifyClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*IdentifyAttributeListListAttributeCallback)(void * context, + const chip::app::DataModel::DecodableList & data); +void IlluminanceMeasurementClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*IlluminanceMeasurementAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); +void KeypadInputClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*KeypadInputAttributeListListAttributeCallback)(void * context, + const chip::app::DataModel::DecodableList & data); +void LevelControlClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*LevelControlAttributeListListAttributeCallback)(void * context, + const chip::app::DataModel::DecodableList & data); +void LowPowerClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*LowPowerAttributeListListAttributeCallback)(void * context, + const chip::app::DataModel::DecodableList & data); void MediaInputClusterMediaInputListListAttributeFilter(chip::TLV::TLVReader * data, chip::Callback::Cancelable * onSuccessCallback, chip::Callback::Cancelable * onFailureCallback); typedef void (*MediaInputMediaInputListListAttributeCallback)( void * context, const chip::app::DataModel::DecodableList & data); +void MediaInputClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*MediaInputAttributeListListAttributeCallback)(void * context, + const chip::app::DataModel::DecodableList & data); +void MediaPlaybackClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*MediaPlaybackAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); void ModeSelectClusterSupportedModesListAttributeFilter(chip::TLV::TLVReader * data, chip::Callback::Cancelable * onSuccessCallback, chip::Callback::Cancelable * onFailureCallback); typedef void (*ModeSelectSupportedModesListAttributeCallback)( void * context, const chip::app::DataModel::DecodableList & data); +void ModeSelectClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*ModeSelectAttributeListListAttributeCallback)(void * context, + const chip::app::DataModel::DecodableList & data); +void NetworkCommissioningClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*NetworkCommissioningAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); +void OtaSoftwareUpdateProviderClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*OtaSoftwareUpdateProviderAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); +void OtaSoftwareUpdateRequestorClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*OtaSoftwareUpdateRequestorAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); +void OccupancySensingClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*OccupancySensingAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); +void OnOffClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*OnOffAttributeListListAttributeCallback)(void * context, + const chip::app::DataModel::DecodableList & data); +void OnOffSwitchConfigurationClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*OnOffSwitchConfigurationAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); void OperationalCredentialsClusterFabricsListListAttributeFilter(chip::TLV::TLVReader * data, chip::Callback::Cancelable * onSuccessCallback, chip::Callback::Cancelable * onFailureCallback); @@ -266,16 +453,49 @@ void OperationalCredentialsClusterTrustedRootCertificatesListAttributeFilter(chi chip::Callback::Cancelable * onFailureCallback); typedef void (*OperationalCredentialsTrustedRootCertificatesListAttributeCallback)( void * context, const chip::app::DataModel::DecodableList & data); +void OperationalCredentialsClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*OperationalCredentialsAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); void PowerSourceClusterActiveBatteryFaultsListAttributeFilter(chip::TLV::TLVReader * data, chip::Callback::Cancelable * onSuccessCallback, chip::Callback::Cancelable * onFailureCallback); typedef void (*PowerSourceActiveBatteryFaultsListAttributeCallback)(void * context, const chip::app::DataModel::DecodableList & data); +void PowerSourceClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*PowerSourceAttributeListListAttributeCallback)(void * context, + const chip::app::DataModel::DecodableList & data); void PowerSourceConfigurationClusterSourcesListAttributeFilter(chip::TLV::TLVReader * data, chip::Callback::Cancelable * onSuccessCallback, chip::Callback::Cancelable * onFailureCallback); typedef void (*PowerSourceConfigurationSourcesListAttributeCallback)(void * context, const chip::app::DataModel::DecodableList & data); +void PowerSourceConfigurationClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*PowerSourceConfigurationAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); +void PressureMeasurementClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*PressureMeasurementAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); +void PumpConfigurationAndControlClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*PumpConfigurationAndControlAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); +void RelativeHumidityMeasurementClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*RelativeHumidityMeasurementAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); +void ScenesClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*ScenesAttributeListListAttributeCallback)(void * context, + const chip::app::DataModel::DecodableList & data); void SoftwareDiagnosticsClusterThreadMetricsListAttributeFilter(chip::TLV::TLVReader * data, chip::Callback::Cancelable * onSuccessCallback, chip::Callback::Cancelable * onFailureCallback); @@ -283,11 +503,24 @@ typedef void (*SoftwareDiagnosticsThreadMetricsListAttributeCallback)( void * context, const chip::app::DataModel::DecodableList & data); +void SoftwareDiagnosticsClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*SoftwareDiagnosticsAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); +void SwitchClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*SwitchAttributeListListAttributeCallback)(void * context, + const chip::app::DataModel::DecodableList & data); void TvChannelClusterTvChannelListListAttributeFilter(chip::TLV::TLVReader * data, chip::Callback::Cancelable * onSuccessCallback, chip::Callback::Cancelable * onFailureCallback); typedef void (*TvChannelTvChannelListListAttributeCallback)( void * context, const chip::app::DataModel::DecodableList & data); +void TvChannelClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*TvChannelAttributeListListAttributeCallback)(void * context, + const chip::app::DataModel::DecodableList & data); void TargetNavigatorClusterTargetNavigatorListListAttributeFilter(chip::TLV::TLVReader * data, chip::Callback::Cancelable * onSuccessCallback, chip::Callback::Cancelable * onFailureCallback); @@ -295,6 +528,16 @@ typedef void (*TargetNavigatorTargetNavigatorListListAttributeCallback)( void * context, const chip::app::DataModel::DecodableList< chip::app::Clusters::TargetNavigator::Structs::NavigateTargetTargetInfo::DecodableType> & data); +void TargetNavigatorClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*TargetNavigatorAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); +void TemperatureMeasurementClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*TemperatureMeasurementAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); void TestClusterClusterListInt8uListAttributeFilter(chip::TLV::TLVReader * data, chip::Callback::Cancelable * onSuccessCallback, chip::Callback::Cancelable * onFailureCallback); typedef void (*TestClusterListInt8uListAttributeCallback)(void * context, @@ -323,6 +566,19 @@ void TestClusterClusterListLongOctetStringListAttributeFilter(chip::TLV::TLVRead chip::Callback::Cancelable * onFailureCallback); typedef void (*TestClusterListLongOctetStringListAttributeCallback)( void * context, const chip::app::DataModel::DecodableList & data); +void TestClusterClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*TestClusterAttributeListListAttributeCallback)(void * context, + const chip::app::DataModel::DecodableList & data); +void ThermostatClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*ThermostatAttributeListListAttributeCallback)(void * context, + const chip::app::DataModel::DecodableList & data); +void ThermostatUserInterfaceConfigurationClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*ThermostatUserInterfaceConfigurationAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); void ThreadNetworkDiagnosticsClusterNeighborTableListListAttributeFilter(chip::TLV::TLVReader * data, chip::Callback::Cancelable * onSuccessCallback, chip::Callback::Cancelable * onFailureCallback); @@ -356,3 +612,22 @@ void ThreadNetworkDiagnosticsClusterActiveNetworkFaultsListListAttributeFilter(c chip::Callback::Cancelable * onFailureCallback); typedef void (*ThreadNetworkDiagnosticsActiveNetworkFaultsListListAttributeCallback)( void * context, const chip::app::DataModel::DecodableList & data); +void ThreadNetworkDiagnosticsClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*ThreadNetworkDiagnosticsAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); +void WakeOnLanClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*WakeOnLanAttributeListListAttributeCallback)(void * context, + const chip::app::DataModel::DecodableList & data); +void WiFiNetworkDiagnosticsClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*WiFiNetworkDiagnosticsAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); +void WindowCoveringClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*WindowCoveringAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); diff --git a/zzz_generated/lighting-app/zap-generated/CHIPClientCallbacks.cpp b/zzz_generated/lighting-app/zap-generated/CHIPClientCallbacks.cpp index daeade20704895..0b14c10b5418fe 100644 --- a/zzz_generated/lighting-app/zap-generated/CHIPClientCallbacks.cpp +++ b/zzz_generated/lighting-app/zap-generated/CHIPClientCallbacks.cpp @@ -134,6 +134,49 @@ namespace { // Singleton instance of the callbacks manager app::CHIPDeviceCallbacksMgr & gCallbacks = app::CHIPDeviceCallbacksMgr::GetInstance(); +void OtaSoftwareUpdateProviderClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, + Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void OnOffClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + bool emberAfOtaSoftwareUpdateProviderClusterApplyUpdateResponseCallback(EndpointId endpoint, app::CommandSender * commandObj, uint8_t action, uint32_t delayedActionTime) { diff --git a/zzz_generated/lighting-app/zap-generated/CHIPClientCallbacks.h b/zzz_generated/lighting-app/zap-generated/CHIPClientCallbacks.h index 499a1924413099..7597adfd619111 100644 --- a/zzz_generated/lighting-app/zap-generated/CHIPClientCallbacks.h +++ b/zzz_generated/lighting-app/zap-generated/CHIPClientCallbacks.h @@ -43,3 +43,12 @@ typedef void (*OtaSoftwareUpdateProviderClusterQueryImageResponseCallback)( chip::CharSpan softwareVersionString, chip::ByteSpan updateToken, bool userConsentNeeded, chip::ByteSpan metadataForRequestor); // List specific responses +void OtaSoftwareUpdateProviderClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*OtaSoftwareUpdateProviderAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); +void OnOffClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*OnOffAttributeListListAttributeCallback)(void * context, + const chip::app::DataModel::DecodableList & data); diff --git a/zzz_generated/lighting-app/zap-generated/attribute-size.cpp b/zzz_generated/lighting-app/zap-generated/attribute-size.cpp index eefc399fb4e2f3..1f593f077da257 100644 --- a/zzz_generated/lighting-app/zap-generated/attribute-size.cpp +++ b/zzz_generated/lighting-app/zap-generated/attribute-size.cpp @@ -79,6 +79,66 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo uint16_t entryLength = 0; switch (clusterId) { + case 0x003C: // AdministratorCommissioning Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0028: // Basic Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0300: // Color Control Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } case 0x001D: // Descriptor Cluster { uint16_t entryOffset = kSizeLengthInBytes; @@ -137,6 +197,58 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo copyListMember(dest, src, write, &entryOffset, entryLength); // ENDPOINT_NO break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0032: // Diagnostic Logs Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0037: // Ethernet Network Diagnostics Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -161,6 +273,18 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo sizeof(entry->FailSafeExpiryLengthMs)); // INT32U break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -246,6 +370,138 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo copyListMember(dest, src, write, &entryOffset, entryLength); // ENUM8 break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0003: // Identify Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0008: // Level Control Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0031: // Network Commissioning Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0406: // Occupancy Sensing Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0006: // On/Off Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0007: // On/off Switch Configuration Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -320,6 +576,18 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo entryLength = static_cast(trustedRootCertificatesSpan->size()); break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -358,6 +626,18 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo &entryOffset, sizeof(entry->StackSize)); // INT32U break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -513,6 +793,38 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo copyListMember(dest, src, write, &entryOffset, entryLength); // NetworkFault break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0036: // WiFi Network Diagnostics Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -535,6 +847,33 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut uint16_t entryLength = 0; switch (clusterId) { + case 0x003C: // AdministratorCommissioning Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0028: // Basic Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0300: // Color Control Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; case 0x001D: // Descriptor Cluster switch (attributeId) { @@ -554,6 +893,28 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // chip::EndpointId entryLength = 2; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0032: // Diagnostic Logs Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0037: // Ethernet Network Diagnostics Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0030: // General Commissioning Cluster @@ -563,6 +924,10 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _BasicCommissioningInfoType entryLength = 4; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0033: // General Diagnostics Cluster @@ -584,6 +949,64 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // uint8_t entryLength = 1; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0003: // Identify Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0008: // Level Control Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0031: // Network Commissioning Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0406: // Occupancy Sensing Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0006: // On/Off Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0007: // On/off Switch Configuration Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x003E: // Operational Credentials Cluster @@ -597,6 +1020,10 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // chip::ByteSpan return GetByteSpanOffsetFromIndex(buffer, 402, entryCount); break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0034: // Software Diagnostics Cluster @@ -606,6 +1033,10 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _ThreadMetrics entryLength = 30; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0035: // Thread Network Diagnostics Cluster @@ -631,6 +1062,19 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // uint8_t entryLength = 1; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0036: // WiFi Network Diagnostics Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; } diff --git a/zzz_generated/lock-app/zap-generated/attribute-size.cpp b/zzz_generated/lock-app/zap-generated/attribute-size.cpp index 6e6e8f4466ee16..83fdfaf9810955 100644 --- a/zzz_generated/lock-app/zap-generated/attribute-size.cpp +++ b/zzz_generated/lock-app/zap-generated/attribute-size.cpp @@ -79,6 +79,46 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo uint16_t entryLength = 0; switch (clusterId) { + case 0x003C: // AdministratorCommissioning Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0028: // Basic Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } case 0x001D: // Descriptor Cluster { uint16_t entryOffset = kSizeLengthInBytes; @@ -137,6 +177,58 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo copyListMember(dest, src, write, &entryOffset, entryLength); // ENDPOINT_NO break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0032: // Diagnostic Logs Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0037: // Ethernet Network Diagnostics Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -161,6 +253,18 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo sizeof(entry->FailSafeExpiryLengthMs)); // INT32U break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -246,6 +350,58 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo copyListMember(dest, src, write, &entryOffset, entryLength); // ENUM8 break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0031: // Network Commissioning Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0006: // On/Off Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -320,6 +476,38 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo entryLength = static_cast(trustedRootCertificatesSpan->size()); break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x002F: // Power Source Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -340,6 +528,18 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo copyListMember(dest, src, write, &entryOffset, entryLength); // INT8U break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -378,6 +578,18 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo &entryOffset, sizeof(entry->StackSize)); // INT32U break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -533,6 +745,38 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo copyListMember(dest, src, write, &entryOffset, entryLength); // NetworkFault break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0036: // WiFi Network Diagnostics Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -555,6 +799,24 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut uint16_t entryLength = 0; switch (clusterId) { + case 0x003C: // AdministratorCommissioning Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0028: // Basic Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; case 0x001D: // Descriptor Cluster switch (attributeId) { @@ -574,6 +836,28 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // chip::EndpointId entryLength = 2; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0032: // Diagnostic Logs Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0037: // Ethernet Network Diagnostics Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0030: // General Commissioning Cluster @@ -583,6 +867,10 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _BasicCommissioningInfoType entryLength = 4; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0033: // General Diagnostics Cluster @@ -604,6 +892,28 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // uint8_t entryLength = 1; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0031: // Network Commissioning Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0006: // On/Off Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x003E: // Operational Credentials Cluster @@ -617,6 +927,19 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // chip::ByteSpan return GetByteSpanOffsetFromIndex(buffer, 402, entryCount); break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x002F: // Power Source Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x002E: // Power Source Configuration Cluster @@ -626,6 +949,10 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // uint8_t entryLength = 1; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0034: // Software Diagnostics Cluster @@ -635,6 +962,10 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _ThreadMetrics entryLength = 30; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0035: // Thread Network Diagnostics Cluster @@ -660,6 +991,19 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // uint8_t entryLength = 1; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0036: // WiFi Network Diagnostics Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; } diff --git a/zzz_generated/ota-provider-app/zap-generated/attribute-size.cpp b/zzz_generated/ota-provider-app/zap-generated/attribute-size.cpp index 11bb303cbdd145..11bafdf8e31213 100644 --- a/zzz_generated/ota-provider-app/zap-generated/attribute-size.cpp +++ b/zzz_generated/ota-provider-app/zap-generated/attribute-size.cpp @@ -100,6 +100,58 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo sizeof(entry->FailSafeExpiryLengthMs)); // INT32U break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0031: // Network Commissioning Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0029: // OTA Software Update Provider Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -174,6 +226,18 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo entryLength = static_cast(trustedRootCertificatesSpan->size()); break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -203,6 +267,28 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _BasicCommissioningInfoType entryLength = 4; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0031: // Network Commissioning Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0029: // OTA Software Update Provider Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x003E: // Operational Credentials Cluster @@ -216,6 +302,10 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // chip::ByteSpan return GetByteSpanOffsetFromIndex(buffer, 402, entryCount); break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; } diff --git a/zzz_generated/ota-requestor-app/zap-generated/CHIPClientCallbacks.cpp b/zzz_generated/ota-requestor-app/zap-generated/CHIPClientCallbacks.cpp index daeade20704895..631977f0c3f393 100644 --- a/zzz_generated/ota-requestor-app/zap-generated/CHIPClientCallbacks.cpp +++ b/zzz_generated/ota-requestor-app/zap-generated/CHIPClientCallbacks.cpp @@ -134,6 +134,28 @@ namespace { // Singleton instance of the callbacks manager app::CHIPDeviceCallbacksMgr & gCallbacks = app::CHIPDeviceCallbacksMgr::GetInstance(); +void OtaSoftwareUpdateProviderClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, + Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + bool emberAfOtaSoftwareUpdateProviderClusterApplyUpdateResponseCallback(EndpointId endpoint, app::CommandSender * commandObj, uint8_t action, uint32_t delayedActionTime) { diff --git a/zzz_generated/ota-requestor-app/zap-generated/CHIPClientCallbacks.h b/zzz_generated/ota-requestor-app/zap-generated/CHIPClientCallbacks.h index 499a1924413099..60bdfb79704da0 100644 --- a/zzz_generated/ota-requestor-app/zap-generated/CHIPClientCallbacks.h +++ b/zzz_generated/ota-requestor-app/zap-generated/CHIPClientCallbacks.h @@ -43,3 +43,8 @@ typedef void (*OtaSoftwareUpdateProviderClusterQueryImageResponseCallback)( chip::CharSpan softwareVersionString, chip::ByteSpan updateToken, bool userConsentNeeded, chip::ByteSpan metadataForRequestor); // List specific responses +void OtaSoftwareUpdateProviderClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*OtaSoftwareUpdateProviderAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); diff --git a/zzz_generated/ota-requestor-app/zap-generated/attribute-size.cpp b/zzz_generated/ota-requestor-app/zap-generated/attribute-size.cpp index 11bb303cbdd145..c9608dbc241c1e 100644 --- a/zzz_generated/ota-requestor-app/zap-generated/attribute-size.cpp +++ b/zzz_generated/ota-requestor-app/zap-generated/attribute-size.cpp @@ -100,6 +100,58 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo sizeof(entry->FailSafeExpiryLengthMs)); // INT32U break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0031: // Network Commissioning Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x002A: // OTA Software Update Requestor Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -174,6 +226,18 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo entryLength = static_cast(trustedRootCertificatesSpan->size()); break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -203,6 +267,28 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _BasicCommissioningInfoType entryLength = 4; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0031: // Network Commissioning Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x002A: // OTA Software Update Requestor Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x003E: // Operational Credentials Cluster @@ -216,6 +302,10 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // chip::ByteSpan return GetByteSpanOffsetFromIndex(buffer, 402, entryCount); break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; } diff --git a/zzz_generated/placeholder/app1/zap-generated/attribute-size.cpp b/zzz_generated/placeholder/app1/zap-generated/attribute-size.cpp index b9c158596694f8..f65dcda09f28bb 100644 --- a/zzz_generated/placeholder/app1/zap-generated/attribute-size.cpp +++ b/zzz_generated/placeholder/app1/zap-generated/attribute-size.cpp @@ -79,6 +79,46 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo uint16_t entryLength = 0; switch (clusterId) { + case 0x0028: // Basic Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0300: // Color Control Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } case 0x001D: // Descriptor Cluster { uint16_t entryOffset = kSizeLengthInBytes; @@ -137,6 +177,18 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo copyListMember(dest, src, write, &entryOffset, entryLength); // ENDPOINT_NO break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -161,6 +213,98 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo sizeof(entry->FailSafeExpiryLengthMs)); // INT32U break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0004: // Groups Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0003: // Identify Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0008: // Level Control Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0006: // On/Off Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -235,6 +379,38 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo entryLength = static_cast(trustedRootCertificatesSpan->size()); break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0005: // Scenes Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -257,6 +433,24 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut uint16_t entryLength = 0; switch (clusterId) { + case 0x0028: // Basic Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0300: // Color Control Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; case 0x001D: // Descriptor Cluster switch (attributeId) { @@ -276,6 +470,10 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // chip::EndpointId entryLength = 2; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0030: // General Commissioning Cluster @@ -285,6 +483,46 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _BasicCommissioningInfoType entryLength = 4; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0004: // Groups Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0003: // Identify Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0008: // Level Control Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0006: // On/Off Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x003E: // Operational Credentials Cluster @@ -298,6 +536,19 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // chip::ByteSpan return GetByteSpanOffsetFromIndex(buffer, 402, entryCount); break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0005: // Scenes Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; } diff --git a/zzz_generated/placeholder/app2/zap-generated/attribute-size.cpp b/zzz_generated/placeholder/app2/zap-generated/attribute-size.cpp index b9c158596694f8..39c01d10eec2fd 100644 --- a/zzz_generated/placeholder/app2/zap-generated/attribute-size.cpp +++ b/zzz_generated/placeholder/app2/zap-generated/attribute-size.cpp @@ -79,6 +79,26 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo uint16_t entryLength = 0; switch (clusterId) { + case 0x0028: // Basic Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } case 0x001D: // Descriptor Cluster { uint16_t entryOffset = kSizeLengthInBytes; @@ -137,6 +157,18 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo copyListMember(dest, src, write, &entryOffset, entryLength); // ENDPOINT_NO break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -161,6 +193,98 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo sizeof(entry->FailSafeExpiryLengthMs)); // INT32U break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0004: // Groups Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0003: // Identify Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0008: // Level Control Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0006: // On/Off Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -235,6 +359,38 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo entryLength = static_cast(trustedRootCertificatesSpan->size()); break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0005: // Scenes Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -257,6 +413,15 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut uint16_t entryLength = 0; switch (clusterId) { + case 0x0028: // Basic Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; case 0x001D: // Descriptor Cluster switch (attributeId) { @@ -276,6 +441,10 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // chip::EndpointId entryLength = 2; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0030: // General Commissioning Cluster @@ -285,6 +454,46 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _BasicCommissioningInfoType entryLength = 4; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0004: // Groups Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0003: // Identify Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0008: // Level Control Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0006: // On/Off Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x003E: // Operational Credentials Cluster @@ -298,6 +507,19 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // chip::ByteSpan return GetByteSpanOffsetFromIndex(buffer, 402, entryCount); break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0005: // Scenes Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; } diff --git a/zzz_generated/pump-app/zap-generated/CHIPClientCallbacks.cpp b/zzz_generated/pump-app/zap-generated/CHIPClientCallbacks.cpp index e28673418b09cd..18b8b76681ac9c 100644 --- a/zzz_generated/pump-app/zap-generated/CHIPClientCallbacks.cpp +++ b/zzz_generated/pump-app/zap-generated/CHIPClientCallbacks.cpp @@ -133,3 +133,67 @@ namespace { // Singleton instance of the callbacks manager app::CHIPDeviceCallbacksMgr & gCallbacks = app::CHIPDeviceCallbacksMgr::GetInstance(); + +void FlowMeasurementClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void PressureMeasurementClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void TemperatureMeasurementClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, + Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} diff --git a/zzz_generated/pump-app/zap-generated/CHIPClientCallbacks.h b/zzz_generated/pump-app/zap-generated/CHIPClientCallbacks.h index fc342f8e9f5788..c387bd916ba6b0 100644 --- a/zzz_generated/pump-app/zap-generated/CHIPClientCallbacks.h +++ b/zzz_generated/pump-app/zap-generated/CHIPClientCallbacks.h @@ -38,3 +38,18 @@ // Cluster Specific Response Callbacks // List specific responses +void FlowMeasurementClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*FlowMeasurementAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); +void PressureMeasurementClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*PressureMeasurementAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); +void TemperatureMeasurementClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*TemperatureMeasurementAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); diff --git a/zzz_generated/pump-app/zap-generated/attribute-size.cpp b/zzz_generated/pump-app/zap-generated/attribute-size.cpp index eefc399fb4e2f3..405a503521d32e 100644 --- a/zzz_generated/pump-app/zap-generated/attribute-size.cpp +++ b/zzz_generated/pump-app/zap-generated/attribute-size.cpp @@ -79,6 +79,46 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo uint16_t entryLength = 0; switch (clusterId) { + case 0x003C: // AdministratorCommissioning Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0028: // Basic Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } case 0x001D: // Descriptor Cluster { uint16_t entryOffset = kSizeLengthInBytes; @@ -137,6 +177,78 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo copyListMember(dest, src, write, &entryOffset, entryLength); // ENDPOINT_NO break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0032: // Diagnostic Logs Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0037: // Ethernet Network Diagnostics Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0404: // Flow Measurement Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -161,6 +273,18 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo sizeof(entry->FailSafeExpiryLengthMs)); // INT32U break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -246,6 +370,78 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo copyListMember(dest, src, write, &entryOffset, entryLength); // ENUM8 break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0008: // Level Control Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0031: // Network Commissioning Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0006: // On/Off Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -320,6 +516,58 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo entryLength = static_cast(trustedRootCertificatesSpan->size()); break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0403: // Pressure Measurement Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0200: // Pump Configuration and Control Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -358,6 +606,38 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo &entryOffset, sizeof(entry->StackSize)); // INT32U break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0402: // Temperature Measurement Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -513,6 +793,38 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo copyListMember(dest, src, write, &entryOffset, entryLength); // NetworkFault break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0036: // WiFi Network Diagnostics Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -535,6 +847,24 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut uint16_t entryLength = 0; switch (clusterId) { + case 0x003C: // AdministratorCommissioning Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0028: // Basic Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; case 0x001D: // Descriptor Cluster switch (attributeId) { @@ -554,6 +884,37 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // chip::EndpointId entryLength = 2; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0032: // Diagnostic Logs Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0037: // Ethernet Network Diagnostics Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0404: // Flow Measurement Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0030: // General Commissioning Cluster @@ -563,6 +924,10 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _BasicCommissioningInfoType entryLength = 4; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0033: // General Diagnostics Cluster @@ -584,6 +949,37 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // uint8_t entryLength = 1; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0008: // Level Control Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0031: // Network Commissioning Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0006: // On/Off Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x003E: // Operational Credentials Cluster @@ -597,6 +993,28 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // chip::ByteSpan return GetByteSpanOffsetFromIndex(buffer, 402, entryCount); break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0403: // Pressure Measurement Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0200: // Pump Configuration and Control Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0034: // Software Diagnostics Cluster @@ -606,6 +1024,19 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _ThreadMetrics entryLength = 30; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0402: // Temperature Measurement Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0035: // Thread Network Diagnostics Cluster @@ -631,6 +1062,19 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // uint8_t entryLength = 1; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0036: // WiFi Network Diagnostics Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; } diff --git a/zzz_generated/pump-controller-app/zap-generated/CHIPClientCallbacks.cpp b/zzz_generated/pump-controller-app/zap-generated/CHIPClientCallbacks.cpp index e28673418b09cd..1878088f759053 100644 --- a/zzz_generated/pump-controller-app/zap-generated/CHIPClientCallbacks.cpp +++ b/zzz_generated/pump-controller-app/zap-generated/CHIPClientCallbacks.cpp @@ -133,3 +133,131 @@ namespace { // Singleton instance of the callbacks manager app::CHIPDeviceCallbacksMgr & gCallbacks = app::CHIPDeviceCallbacksMgr::GetInstance(); + +void FlowMeasurementClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void LevelControlClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void OnOffClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void PressureMeasurementClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void PumpConfigurationAndControlClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, + Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void TemperatureMeasurementClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, + Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} diff --git a/zzz_generated/pump-controller-app/zap-generated/CHIPClientCallbacks.h b/zzz_generated/pump-controller-app/zap-generated/CHIPClientCallbacks.h index fc342f8e9f5788..6eb244e3c250f2 100644 --- a/zzz_generated/pump-controller-app/zap-generated/CHIPClientCallbacks.h +++ b/zzz_generated/pump-controller-app/zap-generated/CHIPClientCallbacks.h @@ -38,3 +38,32 @@ // Cluster Specific Response Callbacks // List specific responses +void FlowMeasurementClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*FlowMeasurementAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); +void LevelControlClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*LevelControlAttributeListListAttributeCallback)(void * context, + const chip::app::DataModel::DecodableList & data); +void OnOffClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*OnOffAttributeListListAttributeCallback)(void * context, + const chip::app::DataModel::DecodableList & data); +void PressureMeasurementClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*PressureMeasurementAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); +void PumpConfigurationAndControlClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*PumpConfigurationAndControlAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); +void TemperatureMeasurementClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*TemperatureMeasurementAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); diff --git a/zzz_generated/pump-controller-app/zap-generated/attribute-size.cpp b/zzz_generated/pump-controller-app/zap-generated/attribute-size.cpp index eefc399fb4e2f3..4fe7db15346264 100644 --- a/zzz_generated/pump-controller-app/zap-generated/attribute-size.cpp +++ b/zzz_generated/pump-controller-app/zap-generated/attribute-size.cpp @@ -79,6 +79,46 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo uint16_t entryLength = 0; switch (clusterId) { + case 0x003C: // AdministratorCommissioning Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0028: // Basic Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } case 0x001D: // Descriptor Cluster { uint16_t entryOffset = kSizeLengthInBytes; @@ -137,6 +177,58 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo copyListMember(dest, src, write, &entryOffset, entryLength); // ENDPOINT_NO break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0032: // Diagnostic Logs Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0037: // Ethernet Network Diagnostics Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -161,6 +253,18 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo sizeof(entry->FailSafeExpiryLengthMs)); // INT32U break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -246,6 +350,38 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo copyListMember(dest, src, write, &entryOffset, entryLength); // ENUM8 break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0031: // Network Commissioning Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -320,6 +456,18 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo entryLength = static_cast(trustedRootCertificatesSpan->size()); break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -358,6 +506,18 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo &entryOffset, sizeof(entry->StackSize)); // INT32U break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -513,6 +673,38 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo copyListMember(dest, src, write, &entryOffset, entryLength); // NetworkFault break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0036: // WiFi Network Diagnostics Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -535,6 +727,24 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut uint16_t entryLength = 0; switch (clusterId) { + case 0x003C: // AdministratorCommissioning Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0028: // Basic Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; case 0x001D: // Descriptor Cluster switch (attributeId) { @@ -554,6 +764,28 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // chip::EndpointId entryLength = 2; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0032: // Diagnostic Logs Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0037: // Ethernet Network Diagnostics Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0030: // General Commissioning Cluster @@ -563,6 +795,10 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _BasicCommissioningInfoType entryLength = 4; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0033: // General Diagnostics Cluster @@ -584,6 +820,19 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // uint8_t entryLength = 1; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0031: // Network Commissioning Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x003E: // Operational Credentials Cluster @@ -597,6 +846,10 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // chip::ByteSpan return GetByteSpanOffsetFromIndex(buffer, 402, entryCount); break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0034: // Software Diagnostics Cluster @@ -606,6 +859,10 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _ThreadMetrics entryLength = 30; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0035: // Thread Network Diagnostics Cluster @@ -631,6 +888,19 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // uint8_t entryLength = 1; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0036: // WiFi Network Diagnostics Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; } diff --git a/zzz_generated/temperature-measurement-app/zap-generated/attribute-size.cpp b/zzz_generated/temperature-measurement-app/zap-generated/attribute-size.cpp index 6fef2429d7f1df..44a72691111cab 100644 --- a/zzz_generated/temperature-measurement-app/zap-generated/attribute-size.cpp +++ b/zzz_generated/temperature-measurement-app/zap-generated/attribute-size.cpp @@ -79,6 +79,46 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo uint16_t entryLength = 0; switch (clusterId) { + case 0x003C: // AdministratorCommissioning Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0028: // Basic Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } case 0x001D: // Descriptor Cluster { uint16_t entryOffset = kSizeLengthInBytes; @@ -137,6 +177,58 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo copyListMember(dest, src, write, &entryOffset, entryLength); // ENDPOINT_NO break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0032: // Diagnostic Logs Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0037: // Ethernet Network Diagnostics Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -161,6 +253,18 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo sizeof(entry->FailSafeExpiryLengthMs)); // INT32U break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -246,6 +350,38 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo copyListMember(dest, src, write, &entryOffset, entryLength); // ENUM8 break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0031: // Network Commissioning Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -320,6 +456,78 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo entryLength = static_cast(trustedRootCertificatesSpan->size()); break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0034: // Software Diagnostics Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0402: // Temperature Measurement Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0036: // WiFi Network Diagnostics Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -342,6 +550,24 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut uint16_t entryLength = 0; switch (clusterId) { + case 0x003C: // AdministratorCommissioning Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0028: // Basic Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; case 0x001D: // Descriptor Cluster switch (attributeId) { @@ -361,6 +587,28 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // chip::EndpointId entryLength = 2; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0032: // Diagnostic Logs Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0037: // Ethernet Network Diagnostics Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0030: // General Commissioning Cluster @@ -370,6 +618,10 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _BasicCommissioningInfoType entryLength = 4; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0033: // General Diagnostics Cluster @@ -391,6 +643,19 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // uint8_t entryLength = 1; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0031: // Network Commissioning Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x003E: // Operational Credentials Cluster @@ -404,6 +669,37 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // chip::ByteSpan return GetByteSpanOffsetFromIndex(buffer, 402, entryCount); break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0034: // Software Diagnostics Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0402: // Temperature Measurement Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0036: // WiFi Network Diagnostics Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; } diff --git a/zzz_generated/thermostat/zap-generated/CHIPClientCallbacks.cpp b/zzz_generated/thermostat/zap-generated/CHIPClientCallbacks.cpp index b913d71dee199a..9072f20ed1d932 100644 --- a/zzz_generated/thermostat/zap-generated/CHIPClientCallbacks.cpp +++ b/zzz_generated/thermostat/zap-generated/CHIPClientCallbacks.cpp @@ -134,6 +134,27 @@ namespace { // Singleton instance of the callbacks manager app::CHIPDeviceCallbacksMgr & gCallbacks = app::CHIPDeviceCallbacksMgr::GetInstance(); +void IdentifyClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + bool emberAfIdentifyClusterIdentifyQueryResponseCallback(EndpointId endpoint, app::CommandSender * commandObj, uint16_t timeout) { ChipLogProgress(Zcl, "IdentifyQueryResponse:"); diff --git a/zzz_generated/thermostat/zap-generated/CHIPClientCallbacks.h b/zzz_generated/thermostat/zap-generated/CHIPClientCallbacks.h index 53b3d4568ab56e..57babe53f150cb 100644 --- a/zzz_generated/thermostat/zap-generated/CHIPClientCallbacks.h +++ b/zzz_generated/thermostat/zap-generated/CHIPClientCallbacks.h @@ -39,3 +39,7 @@ typedef void (*IdentifyClusterIdentifyQueryResponseCallback)(void * context, uint16_t timeout); // List specific responses +void IdentifyClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*IdentifyAttributeListListAttributeCallback)(void * context, + const chip::app::DataModel::DecodableList & data); diff --git a/zzz_generated/thermostat/zap-generated/attribute-size.cpp b/zzz_generated/thermostat/zap-generated/attribute-size.cpp index db03dd8b31f28a..f773d3341eb7e2 100644 --- a/zzz_generated/thermostat/zap-generated/attribute-size.cpp +++ b/zzz_generated/thermostat/zap-generated/attribute-size.cpp @@ -79,6 +79,66 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo uint16_t entryLength = 0; switch (clusterId) { + case 0x003C: // AdministratorCommissioning Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0028: // Basic Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x001E: // Binding Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } case 0x001D: // Descriptor Cluster { uint16_t entryOffset = kSizeLengthInBytes; @@ -137,6 +197,58 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo copyListMember(dest, src, write, &entryOffset, entryLength); // ENDPOINT_NO break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0032: // Diagnostic Logs Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0037: // Ethernet Network Diagnostics Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -161,6 +273,18 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo sizeof(entry->FailSafeExpiryLengthMs)); // INT32U break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -246,6 +370,18 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo copyListMember(dest, src, write, &entryOffset, entryLength); // ENUM8 break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -305,6 +441,98 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo sizeof(entry->GroupKeySecurityPolicy)); // GroupKeySecurityPolicy break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0004: // Groups Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0003: // Identify Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0031: // Network Commissioning Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0029: // OTA Software Update Provider Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -379,6 +607,38 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo entryLength = static_cast(trustedRootCertificatesSpan->size()); break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0005: // Scenes Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -417,6 +677,38 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo &entryOffset, sizeof(entry->StackSize)); // INT32U break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0201: // Thermostat Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -572,6 +864,38 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo copyListMember(dest, src, write, &entryOffset, entryLength); // NetworkFault break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0036: // WiFi Network Diagnostics Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -594,6 +918,33 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut uint16_t entryLength = 0; switch (clusterId) { + case 0x003C: // AdministratorCommissioning Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0028: // Basic Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x001E: // Binding Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; case 0x001D: // Descriptor Cluster switch (attributeId) { @@ -613,6 +964,28 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // chip::EndpointId entryLength = 2; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0032: // Diagnostic Logs Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0037: // Ethernet Network Diagnostics Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0030: // General Commissioning Cluster @@ -622,6 +995,10 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _BasicCommissioningInfoType entryLength = 4; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0033: // General Diagnostics Cluster @@ -643,6 +1020,10 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // uint8_t entryLength = 1; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x003F: // Group Key Management Cluster @@ -656,6 +1037,46 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _GroupKey entryLength = 31; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0004: // Groups Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0003: // Identify Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0031: // Network Commissioning Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0029: // OTA Software Update Provider Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x003E: // Operational Credentials Cluster @@ -669,6 +1090,19 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // chip::ByteSpan return GetByteSpanOffsetFromIndex(buffer, 402, entryCount); break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0005: // Scenes Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0034: // Software Diagnostics Cluster @@ -678,6 +1112,19 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _ThreadMetrics entryLength = 30; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0201: // Thermostat Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0035: // Thread Network Diagnostics Cluster @@ -703,6 +1150,19 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // uint8_t entryLength = 1; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0036: // WiFi Network Diagnostics Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; } diff --git a/zzz_generated/tv-app/zap-generated/CHIPClientCallbacks.cpp b/zzz_generated/tv-app/zap-generated/CHIPClientCallbacks.cpp index 949122cedd4a42..dda1dafbf615ee 100644 --- a/zzz_generated/tv-app/zap-generated/CHIPClientCallbacks.cpp +++ b/zzz_generated/tv-app/zap-generated/CHIPClientCallbacks.cpp @@ -158,6 +158,48 @@ void GeneralCommissioningClusterBasicCommissioningInfoListListAttributeFilter(TL cb->mCall(cb->mContext, list); } +void GeneralCommissioningClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + +void NetworkCommissioningClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + void OperationalCredentialsClusterFabricsListListAttributeFilter(TLV::TLVReader * tlvData, Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback) { @@ -201,6 +243,28 @@ void OperationalCredentialsClusterTrustedRootCertificatesListAttributeFilter(TLV cb->mCall(cb->mContext, list); } +void OperationalCredentialsClusterAttributeListListAttributeFilter(TLV::TLVReader * tlvData, + Callback::Cancelable * onSuccessCallback, + Callback::Cancelable * onFailureCallback) +{ + chip::app::DataModel::DecodableList list; + CHIP_ERROR err = Decode(*tlvData, list); + if (err != CHIP_NO_ERROR) + { + if (onFailureCallback != nullptr) + { + Callback::Callback * cb = + Callback::Callback::FromCancelable(onFailureCallback); + cb->mCall(cb->mContext, EMBER_ZCL_STATUS_INVALID_VALUE); + } + return; + } + + Callback::Callback * cb = + Callback::Callback::FromCancelable(onSuccessCallback); + cb->mCall(cb->mContext, list); +} + bool emberAfGeneralCommissioningClusterArmFailSafeResponseCallback(EndpointId endpoint, app::CommandSender * commandObj, uint8_t errorCode, chip::CharSpan debugText) { diff --git a/zzz_generated/tv-app/zap-generated/CHIPClientCallbacks.h b/zzz_generated/tv-app/zap-generated/CHIPClientCallbacks.h index 8f342fd8e7c87f..fc805a74b7c02a 100644 --- a/zzz_generated/tv-app/zap-generated/CHIPClientCallbacks.h +++ b/zzz_generated/tv-app/zap-generated/CHIPClientCallbacks.h @@ -75,6 +75,16 @@ typedef void (*GeneralCommissioningBasicCommissioningInfoListListAttributeCallba void * context, const chip::app::DataModel::DecodableList< chip::app::Clusters::GeneralCommissioning::Structs::BasicCommissioningInfoType::DecodableType> & data); +void GeneralCommissioningClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*GeneralCommissioningAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); +void NetworkCommissioningClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*NetworkCommissioningAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); void OperationalCredentialsClusterFabricsListListAttributeFilter(chip::TLV::TLVReader * data, chip::Callback::Cancelable * onSuccessCallback, chip::Callback::Cancelable * onFailureCallback); @@ -87,3 +97,8 @@ void OperationalCredentialsClusterTrustedRootCertificatesListAttributeFilter(chi chip::Callback::Cancelable * onFailureCallback); typedef void (*OperationalCredentialsTrustedRootCertificatesListAttributeCallback)( void * context, const chip::app::DataModel::DecodableList & data); +void OperationalCredentialsClusterAttributeListListAttributeFilter(chip::TLV::TLVReader * data, + chip::Callback::Cancelable * onSuccessCallback, + chip::Callback::Cancelable * onFailureCallback); +typedef void (*OperationalCredentialsAttributeListListAttributeCallback)( + void * context, const chip::app::DataModel::DecodableList & data); diff --git a/zzz_generated/tv-app/zap-generated/attribute-size.cpp b/zzz_generated/tv-app/zap-generated/attribute-size.cpp index 8e4ed725f9d200..0c08aa82c3b4cc 100644 --- a/zzz_generated/tv-app/zap-generated/attribute-size.cpp +++ b/zzz_generated/tv-app/zap-generated/attribute-size.cpp @@ -79,6 +79,66 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo uint16_t entryLength = 0; switch (clusterId) { + case 0x050E: // Account Login Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x003C: // AdministratorCommissioning Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x050D: // Application Basic Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } case 0x050C: // Application Launcher Cluster { uint16_t entryOffset = kSizeLengthInBytes; @@ -96,6 +156,18 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo copyListMember(dest, src, write, &entryOffset, entryLength); // INT16U break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -130,6 +202,58 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo entryOffset = static_cast(entryOffset + 34); break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0028: // Basic Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x001E: // Binding Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -177,6 +301,18 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo copyListMember(dest, src, write, &entryOffset, entryLength); // ContentLaunchStreamingType break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -238,6 +374,58 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo copyListMember(dest, src, write, &entryOffset, entryLength); // ENDPOINT_NO break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0032: // Diagnostic Logs Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0037: // Ethernet Network Diagnostics Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -262,6 +450,18 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo sizeof(entry->FailSafeExpiryLengthMs)); // INT32U break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -347,6 +547,18 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo copyListMember(dest, src, write, &entryOffset, entryLength); // ENUM8 break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -406,6 +618,78 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo sizeof(entry->GroupKeySecurityPolicy)); // GroupKeySecurityPolicy break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0509: // Keypad Input Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0008: // Level Control Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0508: // Low Power Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -434,21 +718,113 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo if (CHIP_NO_ERROR != (write ? WriteByteSpan(dest + entryOffset, 34, nameSpan) : ReadByteSpan(src + entryOffset, 34, nameSpan))) { - ChipLogError(Zcl, "Index %" PRId32 " is invalid. Not enough remaining space", index); + ChipLogError(Zcl, "Index %" PRId32 " is invalid. Not enough remaining space", index); + return 0; + } + entryOffset = static_cast(entryOffset + 34); + ByteSpan descriptionSpanStorage(Uint8::from_const_char(entry->description.data()), + entry->description.size()); // CHAR_STRING + ByteSpan * descriptionSpan = &descriptionSpanStorage; + if (CHIP_NO_ERROR != + (write ? WriteByteSpan(dest + entryOffset, 34, descriptionSpan) + : ReadByteSpan(src + entryOffset, 34, descriptionSpan))) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid. Not enough remaining space", index); + return 0; + } + entryOffset = static_cast(entryOffset + 34); + break; + } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0506: // Media Playback Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0031: // Network Commissioning Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0029: // OTA Software Update Provider Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); return 0; } - entryOffset = static_cast(entryOffset + 34); - ByteSpan descriptionSpanStorage(Uint8::from_const_char(entry->description.data()), - entry->description.size()); // CHAR_STRING - ByteSpan * descriptionSpan = &descriptionSpanStorage; - if (CHIP_NO_ERROR != - (write ? WriteByteSpan(dest + entryOffset, 34, descriptionSpan) - : ReadByteSpan(src + entryOffset, 34, descriptionSpan))) + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0006: // On/Off Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) { - ChipLogError(Zcl, "Index %" PRId32 " is invalid. Not enough remaining space", index); + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); return 0; } - entryOffset = static_cast(entryOffset + 34); + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id break; } } @@ -525,6 +901,38 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo entryLength = static_cast(trustedRootCertificatesSpan->size()); break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0405: // Relative Humidity Measurement Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -563,6 +971,18 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo &entryOffset, sizeof(entry->StackSize)); // INT32U break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -617,6 +1037,18 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo entryOffset = static_cast(entryOffset + 34); break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -649,6 +1081,18 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo entryOffset = static_cast(entryOffset + 34); break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -804,6 +1248,58 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo copyListMember(dest, src, write, &entryOffset, entryLength); // NetworkFault break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0503: // Wake on LAN Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0036: // WiFi Network Diagnostics Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -826,6 +1322,33 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut uint16_t entryLength = 0; switch (clusterId) { + case 0x050E: // Account Login Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x003C: // AdministratorCommissioning Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x050D: // Application Basic Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; case 0x050C: // Application Launcher Cluster switch (attributeId) { @@ -833,6 +1356,10 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // uint16_t entryLength = 2; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x050B: // Audio Output Cluster @@ -842,6 +1369,28 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _AudioOutputInfo entryLength = 36; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0028: // Basic Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x001E: // Binding Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x050A: // Content Launcher Cluster @@ -855,6 +1404,10 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // uint8_t entryLength = 1; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x001D: // Descriptor Cluster @@ -876,6 +1429,28 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // chip::EndpointId entryLength = 2; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0032: // Diagnostic Logs Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0037: // Ethernet Network Diagnostics Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0030: // General Commissioning Cluster @@ -885,6 +1460,10 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _BasicCommissioningInfoType entryLength = 4; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0033: // General Diagnostics Cluster @@ -906,6 +1485,10 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // uint8_t entryLength = 1; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x003F: // Group Key Management Cluster @@ -919,6 +1502,37 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _GroupKey entryLength = 31; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0509: // Keypad Input Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0008: // Level Control Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0508: // Low Power Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0507: // Media Input Cluster @@ -928,6 +1542,46 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _MediaInputInfo entryLength = 70; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0506: // Media Playback Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0031: // Network Commissioning Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0029: // OTA Software Update Provider Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0006: // On/Off Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x003E: // Operational Credentials Cluster @@ -941,6 +1595,19 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // chip::ByteSpan return GetByteSpanOffsetFromIndex(buffer, 402, entryCount); break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0405: // Relative Humidity Measurement Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0034: // Software Diagnostics Cluster @@ -950,6 +1617,10 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _ThreadMetrics entryLength = 30; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0504: // TV Channel Cluster @@ -959,6 +1630,10 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _TvChannelInfo entryLength = 106; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0505: // Target Navigator Cluster @@ -968,6 +1643,10 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _NavigateTargetTargetInfo entryLength = 35; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0035: // Thread Network Diagnostics Cluster @@ -993,6 +1672,28 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // uint8_t entryLength = 1; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0503: // Wake on LAN Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0036: // WiFi Network Diagnostics Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; } diff --git a/zzz_generated/tv-casting-app/zap-generated/attribute-size.cpp b/zzz_generated/tv-casting-app/zap-generated/attribute-size.cpp index 42cd3bf183506c..e4740f907ba6a9 100644 --- a/zzz_generated/tv-casting-app/zap-generated/attribute-size.cpp +++ b/zzz_generated/tv-casting-app/zap-generated/attribute-size.cpp @@ -79,6 +79,66 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo uint16_t entryLength = 0; switch (clusterId) { + case 0x050E: // Account Login Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x003C: // AdministratorCommissioning Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x050D: // Application Basic Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } case 0x050C: // Application Launcher Cluster { uint16_t entryOffset = kSizeLengthInBytes; @@ -96,6 +156,18 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo copyListMember(dest, src, write, &entryOffset, entryLength); // INT16U break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -130,6 +202,138 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo entryOffset = static_cast(entryOffset + 34); break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0103: // Barrier Control Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0028: // Basic Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x000F: // Binary Input (Basic) Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x001E: // Binding Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0039: // Bridged Device Basic Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0300: // Color Control Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -177,6 +381,18 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo copyListMember(dest, src, write, &entryOffset, entryLength); // ContentLaunchStreamingType break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -238,54 +454,67 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo copyListMember(dest, src, write, &entryOffset, entryLength); // ENDPOINT_NO break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } - case 0x0040: // Fixed Label Cluster + case 0x0032: // Diagnostic Logs Cluster { uint16_t entryOffset = kSizeLengthInBytes; switch (am->attributeId) { - case 0x0000: // label list + case 0xFFFB: // AttributeList { - entryLength = 36; + entryLength = 4; if (((index - 1) * entryLength) > (am->size - entryLength)) { ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); return 0; } entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); - // Struct _LabelStruct - _LabelStruct * entry = reinterpret_cast<_LabelStruct *>(write ? src : dest); - ByteSpan labelSpanStorage(Uint8::from_const_char(entry->label.data()), entry->label.size()); // CHAR_STRING - ByteSpan * labelSpan = &labelSpanStorage; - if (CHIP_NO_ERROR != - (write ? WriteByteSpan(dest + entryOffset, 18, labelSpan) : ReadByteSpan(src + entryOffset, 18, labelSpan))) - { - ChipLogError(Zcl, "Index %" PRId32 " is invalid. Not enough remaining space", index); - return 0; - } - entryOffset = static_cast(entryOffset + 18); - ByteSpan valueSpanStorage(Uint8::from_const_char(entry->value.data()), entry->value.size()); // CHAR_STRING - ByteSpan * valueSpan = &valueSpanStorage; - if (CHIP_NO_ERROR != - (write ? WriteByteSpan(dest + entryOffset, 18, valueSpan) : ReadByteSpan(src + entryOffset, 18, valueSpan))) + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0101: // Door Lock Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) { - ChipLogError(Zcl, "Index %" PRId32 " is invalid. Not enough remaining space", index); + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); return 0; } - entryOffset = static_cast(entryOffset + 18); + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id break; } } break; } - case 0x0030: // General Commissioning Cluster + case 0x0037: // Ethernet Network Diagnostics Cluster { uint16_t entryOffset = kSizeLengthInBytes; switch (am->attributeId) { - case 0x0001: // BasicCommissioningInfoList + case 0xFFFB: // AttributeList { entryLength = 4; if (((index - 1) * entryLength) > (am->size - entryLength)) @@ -294,45 +523,148 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo return 0; } entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); - // Struct _BasicCommissioningInfoType - _BasicCommissioningInfoType * entry = reinterpret_cast<_BasicCommissioningInfoType *>(write ? src : dest); - copyListMember(write ? dest : (uint8_t *) &entry->FailSafeExpiryLengthMs, - write ? (uint8_t *) &entry->FailSafeExpiryLengthMs : src, write, &entryOffset, - sizeof(entry->FailSafeExpiryLengthMs)); // INT32U + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id break; } } break; } - case 0x0033: // General Diagnostics Cluster + case 0x0040: // Fixed Label Cluster { uint16_t entryOffset = kSizeLengthInBytes; switch (am->attributeId) { - case 0x0000: // NetworkInterfaces + case 0x0000: // label list { - entryLength = 48; + entryLength = 36; if (((index - 1) * entryLength) > (am->size - entryLength)) { ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); return 0; } entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); - // Struct _NetworkInterfaceType - _NetworkInterfaceType * entry = reinterpret_cast<_NetworkInterfaceType *>(write ? src : dest); - ByteSpan NameSpanStorage(Uint8::from_const_char(entry->Name.data()), entry->Name.size()); // CHAR_STRING - ByteSpan * NameSpan = &NameSpanStorage; + // Struct _LabelStruct + _LabelStruct * entry = reinterpret_cast<_LabelStruct *>(write ? src : dest); + ByteSpan labelSpanStorage(Uint8::from_const_char(entry->label.data()), entry->label.size()); // CHAR_STRING + ByteSpan * labelSpan = &labelSpanStorage; if (CHIP_NO_ERROR != - (write ? WriteByteSpan(dest + entryOffset, 34, NameSpan) : ReadByteSpan(src + entryOffset, 34, NameSpan))) + (write ? WriteByteSpan(dest + entryOffset, 18, labelSpan) : ReadByteSpan(src + entryOffset, 18, labelSpan))) { ChipLogError(Zcl, "Index %" PRId32 " is invalid. Not enough remaining space", index); return 0; } - entryOffset = static_cast(entryOffset + 34); - copyListMember(write ? dest : (uint8_t *) &entry->FabricConnected, write ? (uint8_t *) &entry->FabricConnected : src, - write, &entryOffset, sizeof(entry->FabricConnected)); // BOOLEAN - copyListMember(write ? dest : (uint8_t *) &entry->OffPremiseServicesReachableIPv4, - write ? (uint8_t *) &entry->OffPremiseServicesReachableIPv4 : src, write, &entryOffset, + entryOffset = static_cast(entryOffset + 18); + ByteSpan valueSpanStorage(Uint8::from_const_char(entry->value.data()), entry->value.size()); // CHAR_STRING + ByteSpan * valueSpan = &valueSpanStorage; + if (CHIP_NO_ERROR != + (write ? WriteByteSpan(dest + entryOffset, 18, valueSpan) : ReadByteSpan(src + entryOffset, 18, valueSpan))) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid. Not enough remaining space", index); + return 0; + } + entryOffset = static_cast(entryOffset + 18); + break; + } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0404: // Flow Measurement Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0030: // General Commissioning Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0x0001: // BasicCommissioningInfoList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + // Struct _BasicCommissioningInfoType + _BasicCommissioningInfoType * entry = reinterpret_cast<_BasicCommissioningInfoType *>(write ? src : dest); + copyListMember(write ? dest : (uint8_t *) &entry->FailSafeExpiryLengthMs, + write ? (uint8_t *) &entry->FailSafeExpiryLengthMs : src, write, &entryOffset, + sizeof(entry->FailSafeExpiryLengthMs)); // INT32U + break; + } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0033: // General Diagnostics Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0x0000: // NetworkInterfaces + { + entryLength = 48; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + // Struct _NetworkInterfaceType + _NetworkInterfaceType * entry = reinterpret_cast<_NetworkInterfaceType *>(write ? src : dest); + ByteSpan NameSpanStorage(Uint8::from_const_char(entry->Name.data()), entry->Name.size()); // CHAR_STRING + ByteSpan * NameSpan = &NameSpanStorage; + if (CHIP_NO_ERROR != + (write ? WriteByteSpan(dest + entryOffset, 34, NameSpan) : ReadByteSpan(src + entryOffset, 34, NameSpan))) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid. Not enough remaining space", index); + return 0; + } + entryOffset = static_cast(entryOffset + 34); + copyListMember(write ? dest : (uint8_t *) &entry->FabricConnected, write ? (uint8_t *) &entry->FabricConnected : src, + write, &entryOffset, sizeof(entry->FabricConnected)); // BOOLEAN + copyListMember(write ? dest : (uint8_t *) &entry->OffPremiseServicesReachableIPv4, + write ? (uint8_t *) &entry->OffPremiseServicesReachableIPv4 : src, write, &entryOffset, sizeof(entry->OffPremiseServicesReachableIPv4)); // BOOLEAN copyListMember(write ? dest : (uint8_t *) &entry->OffPremiseServicesReachableIPv6, write ? (uint8_t *) &entry->OffPremiseServicesReachableIPv6 : src, write, &entryOffset, @@ -386,6 +718,18 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo copyListMember(dest, src, write, &entryOffset, entryLength); // ENUM8 break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -396,98 +740,322 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo { case 0x0000: // groups { - entryLength = 6; + entryLength = 6; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + // Struct _GroupState + _GroupState * entry = reinterpret_cast<_GroupState *>(write ? src : dest); + copyListMember(write ? dest : (uint8_t *) &entry->VendorId, write ? (uint8_t *) &entry->VendorId : src, write, + &entryOffset, sizeof(entry->VendorId)); // INT16U + copyListMember(write ? dest : (uint8_t *) &entry->VendorGroupId, write ? (uint8_t *) &entry->VendorGroupId : src, write, + &entryOffset, sizeof(entry->VendorGroupId)); // INT16U + copyListMember(write ? dest : (uint8_t *) &entry->GroupKeySetIndex, write ? (uint8_t *) &entry->GroupKeySetIndex : src, + write, &entryOffset, sizeof(entry->GroupKeySetIndex)); // INT16U + break; + } + case 0x0001: // group keys + { + entryLength = 31; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + // Struct _GroupKey + _GroupKey * entry = reinterpret_cast<_GroupKey *>(write ? src : dest); + copyListMember(write ? dest : (uint8_t *) &entry->VendorId, write ? (uint8_t *) &entry->VendorId : src, write, + &entryOffset, sizeof(entry->VendorId)); // INT16U + copyListMember(write ? dest : (uint8_t *) &entry->GroupKeyIndex, write ? (uint8_t *) &entry->GroupKeyIndex : src, write, + &entryOffset, sizeof(entry->GroupKeyIndex)); // INT16U + ByteSpan * GroupKeyRootSpan = &entry->GroupKeyRoot; // OCTET_STRING + if (CHIP_NO_ERROR != + (write ? WriteByteSpan(dest + entryOffset, 18, GroupKeyRootSpan) + : ReadByteSpan(src + entryOffset, 18, GroupKeyRootSpan))) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid. Not enough remaining space", index); + return 0; + } + entryOffset = static_cast(entryOffset + 18); + copyListMember(write ? dest : (uint8_t *) &entry->GroupKeyEpochStartTime, + write ? (uint8_t *) &entry->GroupKeyEpochStartTime : src, write, &entryOffset, + sizeof(entry->GroupKeyEpochStartTime)); // INT64U + copyListMember(write ? dest : (uint8_t *) &entry->GroupKeySecurityPolicy, + write ? (uint8_t *) &entry->GroupKeySecurityPolicy : src, write, &entryOffset, + sizeof(entry->GroupKeySecurityPolicy)); // GroupKeySecurityPolicy + break; + } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0004: // Groups Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0500: // IAS Zone Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0003: // Identify Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0509: // Keypad Input Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0008: // Level Control Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0507: // Media Input Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0x0000: // media input list + { + entryLength = 70; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + // Struct _MediaInputInfo + _MediaInputInfo * entry = reinterpret_cast<_MediaInputInfo *>(write ? src : dest); + copyListMember(write ? dest : (uint8_t *) &entry->index, write ? (uint8_t *) &entry->index : src, write, &entryOffset, + sizeof(entry->index)); // INT8U + copyListMember(write ? dest : (uint8_t *) &entry->inputType, write ? (uint8_t *) &entry->inputType : src, write, + &entryOffset, sizeof(entry->inputType)); // MediaInputType + ByteSpan nameSpanStorage(Uint8::from_const_char(entry->name.data()), entry->name.size()); // CHAR_STRING + ByteSpan * nameSpan = &nameSpanStorage; + if (CHIP_NO_ERROR != + (write ? WriteByteSpan(dest + entryOffset, 34, nameSpan) : ReadByteSpan(src + entryOffset, 34, nameSpan))) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid. Not enough remaining space", index); + return 0; + } + entryOffset = static_cast(entryOffset + 34); + ByteSpan descriptionSpanStorage(Uint8::from_const_char(entry->description.data()), + entry->description.size()); // CHAR_STRING + ByteSpan * descriptionSpan = &descriptionSpanStorage; + if (CHIP_NO_ERROR != + (write ? WriteByteSpan(dest + entryOffset, 34, descriptionSpan) + : ReadByteSpan(src + entryOffset, 34, descriptionSpan))) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid. Not enough remaining space", index); + return 0; + } + entryOffset = static_cast(entryOffset + 34); + break; + } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0506: // Media Playback Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0031: // Network Commissioning Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0029: // OTA Software Update Provider Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; if (((index - 1) * entryLength) > (am->size - entryLength)) { ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); return 0; } entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); - // Struct _GroupState - _GroupState * entry = reinterpret_cast<_GroupState *>(write ? src : dest); - copyListMember(write ? dest : (uint8_t *) &entry->VendorId, write ? (uint8_t *) &entry->VendorId : src, write, - &entryOffset, sizeof(entry->VendorId)); // INT16U - copyListMember(write ? dest : (uint8_t *) &entry->VendorGroupId, write ? (uint8_t *) &entry->VendorGroupId : src, write, - &entryOffset, sizeof(entry->VendorGroupId)); // INT16U - copyListMember(write ? dest : (uint8_t *) &entry->GroupKeySetIndex, write ? (uint8_t *) &entry->GroupKeySetIndex : src, - write, &entryOffset, sizeof(entry->GroupKeySetIndex)); // INT16U + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id break; } - case 0x0001: // group keys + } + break; + } + case 0x0406: // Occupancy Sensing Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) { - entryLength = 31; + case 0xFFFB: // AttributeList + { + entryLength = 4; if (((index - 1) * entryLength) > (am->size - entryLength)) { ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); return 0; } entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); - // Struct _GroupKey - _GroupKey * entry = reinterpret_cast<_GroupKey *>(write ? src : dest); - copyListMember(write ? dest : (uint8_t *) &entry->VendorId, write ? (uint8_t *) &entry->VendorId : src, write, - &entryOffset, sizeof(entry->VendorId)); // INT16U - copyListMember(write ? dest : (uint8_t *) &entry->GroupKeyIndex, write ? (uint8_t *) &entry->GroupKeyIndex : src, write, - &entryOffset, sizeof(entry->GroupKeyIndex)); // INT16U - ByteSpan * GroupKeyRootSpan = &entry->GroupKeyRoot; // OCTET_STRING - if (CHIP_NO_ERROR != - (write ? WriteByteSpan(dest + entryOffset, 18, GroupKeyRootSpan) - : ReadByteSpan(src + entryOffset, 18, GroupKeyRootSpan))) - { - ChipLogError(Zcl, "Index %" PRId32 " is invalid. Not enough remaining space", index); - return 0; - } - entryOffset = static_cast(entryOffset + 18); - copyListMember(write ? dest : (uint8_t *) &entry->GroupKeyEpochStartTime, - write ? (uint8_t *) &entry->GroupKeyEpochStartTime : src, write, &entryOffset, - sizeof(entry->GroupKeyEpochStartTime)); // INT64U - copyListMember(write ? dest : (uint8_t *) &entry->GroupKeySecurityPolicy, - write ? (uint8_t *) &entry->GroupKeySecurityPolicy : src, write, &entryOffset, - sizeof(entry->GroupKeySecurityPolicy)); // GroupKeySecurityPolicy + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id break; } } break; } - case 0x0507: // Media Input Cluster + case 0x0006: // On/Off Cluster { uint16_t entryOffset = kSizeLengthInBytes; switch (am->attributeId) { - case 0x0000: // media input list + case 0xFFFB: // AttributeList { - entryLength = 70; + entryLength = 4; if (((index - 1) * entryLength) > (am->size - entryLength)) { ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); return 0; } entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); - // Struct _MediaInputInfo - _MediaInputInfo * entry = reinterpret_cast<_MediaInputInfo *>(write ? src : dest); - copyListMember(write ? dest : (uint8_t *) &entry->index, write ? (uint8_t *) &entry->index : src, write, &entryOffset, - sizeof(entry->index)); // INT8U - copyListMember(write ? dest : (uint8_t *) &entry->inputType, write ? (uint8_t *) &entry->inputType : src, write, - &entryOffset, sizeof(entry->inputType)); // MediaInputType - ByteSpan nameSpanStorage(Uint8::from_const_char(entry->name.data()), entry->name.size()); // CHAR_STRING - ByteSpan * nameSpan = &nameSpanStorage; - if (CHIP_NO_ERROR != - (write ? WriteByteSpan(dest + entryOffset, 34, nameSpan) : ReadByteSpan(src + entryOffset, 34, nameSpan))) - { - ChipLogError(Zcl, "Index %" PRId32 " is invalid. Not enough remaining space", index); - return 0; - } - entryOffset = static_cast(entryOffset + 34); - ByteSpan descriptionSpanStorage(Uint8::from_const_char(entry->description.data()), - entry->description.size()); // CHAR_STRING - ByteSpan * descriptionSpan = &descriptionSpanStorage; - if (CHIP_NO_ERROR != - (write ? WriteByteSpan(dest + entryOffset, 34, descriptionSpan) - : ReadByteSpan(src + entryOffset, 34, descriptionSpan))) - { - ChipLogError(Zcl, "Index %" PRId32 " is invalid. Not enough remaining space", index); - return 0; - } - entryOffset = static_cast(entryOffset + 34); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id break; } } @@ -564,6 +1132,78 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo entryLength = static_cast(trustedRootCertificatesSpan->size()); break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0403: // Pressure Measurement Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0405: // Relative Humidity Measurement Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0005: // Scenes Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -602,6 +1242,38 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo &entryOffset, sizeof(entry->StackSize)); // INT32U break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x003B: // Switch Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -656,6 +1328,18 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo entryOffset = static_cast(entryOffset + 34); break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -688,6 +1372,38 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo entryOffset = static_cast(entryOffset + 34); break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0402: // Temperature Measurement Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -759,6 +1475,38 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo entryOffset = static_cast(entryOffset + 34); break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0201: // Thermostat Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -902,16 +1650,88 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo sizeof(entry->ChannelMaskPresent)); // BOOLEAN break; } - case 0x003E: // ActiveNetworkFaultsList + case 0x003E: // ActiveNetworkFaultsList + { + entryLength = 1; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // NetworkFault + break; + } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0503: // Wake on LAN Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0036: // WiFi Network Diagnostics Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) { - entryLength = 1; + case 0xFFFB: // AttributeList + { + entryLength = 4; if (((index - 1) * entryLength) > (am->size - entryLength)) { ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); return 0; } entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); - copyListMember(dest, src, write, &entryOffset, entryLength); // NetworkFault + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0102: // Window Covering Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id break; } } @@ -936,6 +1756,33 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut uint16_t entryLength = 0; switch (clusterId) { + case 0x050E: // Account Login Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x003C: // AdministratorCommissioning Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x050D: // Application Basic Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; case 0x050C: // Application Launcher Cluster switch (attributeId) { @@ -943,6 +1790,10 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // uint16_t entryLength = 2; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x050B: // Audio Output Cluster @@ -952,6 +1803,64 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _AudioOutputInfo entryLength = 36; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0103: // Barrier Control Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0028: // Basic Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x000F: // Binary Input (Basic) Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x001E: // Binding Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0039: // Bridged Device Basic Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0300: // Color Control Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x050A: // Content Launcher Cluster @@ -965,6 +1874,10 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // uint8_t entryLength = 1; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x001D: // Descriptor Cluster @@ -986,6 +1899,37 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // chip::EndpointId entryLength = 2; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0032: // Diagnostic Logs Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0101: // Door Lock Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0037: // Ethernet Network Diagnostics Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0040: // Fixed Label Cluster @@ -995,6 +1939,19 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _LabelStruct entryLength = 36; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0404: // Flow Measurement Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0030: // General Commissioning Cluster @@ -1004,6 +1961,10 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _BasicCommissioningInfoType entryLength = 4; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0033: // General Diagnostics Cluster @@ -1025,6 +1986,10 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // uint8_t entryLength = 1; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x003F: // Group Key Management Cluster @@ -1038,6 +2003,55 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _GroupKey entryLength = 31; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0004: // Groups Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0500: // IAS Zone Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0003: // Identify Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0509: // Keypad Input Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0008: // Level Control Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0507: // Media Input Cluster @@ -1047,6 +2061,55 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _MediaInputInfo entryLength = 70; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0506: // Media Playback Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0031: // Network Commissioning Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0029: // OTA Software Update Provider Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0406: // Occupancy Sensing Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0006: // On/Off Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x003E: // Operational Credentials Cluster @@ -1060,6 +2123,37 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // chip::ByteSpan return GetByteSpanOffsetFromIndex(buffer, 402, entryCount); break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0403: // Pressure Measurement Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0405: // Relative Humidity Measurement Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0005: // Scenes Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0034: // Software Diagnostics Cluster @@ -1069,6 +2163,19 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _ThreadMetrics entryLength = 30; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x003B: // Switch Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0504: // TV Channel Cluster @@ -1078,6 +2185,10 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _TvChannelInfo entryLength = 106; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0505: // Target Navigator Cluster @@ -1087,6 +2198,19 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _NavigateTargetTargetInfo entryLength = 35; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0402: // Temperature Measurement Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x050F: // Test Cluster Cluster @@ -1104,6 +2228,19 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _TestListStructOctet entryLength = 42; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0201: // Thermostat Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0035: // Thread Network Diagnostics Cluster @@ -1129,6 +2266,37 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // uint8_t entryLength = 1; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0503: // Wake on LAN Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0036: // WiFi Network Diagnostics Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0102: // Window Covering Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; } diff --git a/zzz_generated/window-app/zap-generated/attribute-size.cpp b/zzz_generated/window-app/zap-generated/attribute-size.cpp index af7699ec273df2..0283dff18aba3d 100644 --- a/zzz_generated/window-app/zap-generated/attribute-size.cpp +++ b/zzz_generated/window-app/zap-generated/attribute-size.cpp @@ -79,6 +79,46 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo uint16_t entryLength = 0; switch (clusterId) { + case 0x003C: // AdministratorCommissioning Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0028: // Basic Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } case 0x001D: // Descriptor Cluster { uint16_t entryOffset = kSizeLengthInBytes; @@ -137,6 +177,38 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo copyListMember(dest, src, write, &entryOffset, entryLength); // ENDPOINT_NO break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0037: // Ethernet Network Diagnostics Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -161,6 +233,18 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo sizeof(entry->FailSafeExpiryLengthMs)); // INT32U break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -246,6 +330,58 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo copyListMember(dest, src, write, &entryOffset, entryLength); // ENUM8 break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0003: // Identify Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0031: // Network Commissioning Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -320,6 +456,18 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo entryLength = static_cast(trustedRootCertificatesSpan->size()); break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -340,6 +488,18 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo copyListMember(dest, src, write, &entryOffset, entryLength); // ENUM8 break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -378,6 +538,18 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo &entryOffset, sizeof(entry->StackSize)); // INT32U break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -533,6 +705,58 @@ uint16_t emberAfCopyList(ClusterId clusterId, EmberAfAttributeMetadata * am, boo copyListMember(dest, src, write, &entryOffset, entryLength); // NetworkFault break; } + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0036: // WiFi Network Diagnostics Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } + } + break; + } + case 0x0102: // Window Covering Cluster + { + uint16_t entryOffset = kSizeLengthInBytes; + switch (am->attributeId) + { + case 0xFFFB: // AttributeList + { + entryLength = 4; + if (((index - 1) * entryLength) > (am->size - entryLength)) + { + ChipLogError(Zcl, "Index %" PRId32 " is invalid.", index); + return 0; + } + entryOffset = static_cast(entryOffset + ((index - 1) * entryLength)); + copyListMember(dest, src, write, &entryOffset, entryLength); // attrib_id + break; + } } break; } @@ -555,6 +779,24 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut uint16_t entryLength = 0; switch (clusterId) { + case 0x003C: // AdministratorCommissioning Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0028: // Basic Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; case 0x001D: // Descriptor Cluster switch (attributeId) { @@ -574,6 +816,19 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // chip::EndpointId entryLength = 2; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0037: // Ethernet Network Diagnostics Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0030: // General Commissioning Cluster @@ -583,6 +838,10 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _BasicCommissioningInfoType entryLength = 4; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0033: // General Diagnostics Cluster @@ -604,6 +863,28 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // uint8_t entryLength = 1; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0003: // Identify Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0031: // Network Commissioning Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x003E: // Operational Credentials Cluster @@ -617,6 +898,10 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // chip::ByteSpan return GetByteSpanOffsetFromIndex(buffer, 402, entryCount); break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x002F: // Power Source Cluster @@ -626,6 +911,10 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // uint8_t entryLength = 1; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0034: // Software Diagnostics Cluster @@ -635,6 +924,10 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // Struct _ThreadMetrics entryLength = 30; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; case 0x0035: // Thread Network Diagnostics Cluster @@ -660,6 +953,28 @@ uint16_t emberAfAttributeValueListSize(ClusterId clusterId, AttributeId attribut // uint8_t entryLength = 1; break; + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0036: // WiFi Network Diagnostics Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; + } + break; + case 0x0102: // Window Covering Cluster + switch (attributeId) + { + case 0xFFFB: // AttributeList + // chip::AttributeId + entryLength = 4; + break; } break; }