From bfc7f2604079644bb7e94003124c425434fbbd3b Mon Sep 17 00:00:00 2001 From: Andrei Litvin Date: Mon, 27 Mar 2023 12:30:17 -0400 Subject: [PATCH 1/8] Generate all client-side commands and structures. This requires zap updates after https://github.com/project-chip/zap/pull/981 --- .../zap-templates/templates/app/MatterIDL.zapt | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/app/zap-templates/templates/app/MatterIDL.zapt b/src/app/zap-templates/templates/app/MatterIDL.zapt index 6dffbb4c64e4c4..a17503cfbe4cfa 100644 --- a/src/app/zap-templates/templates/app/MatterIDL.zapt +++ b/src/app/zap-templates/templates/app/MatterIDL.zapt @@ -75,17 +75,16 @@ {{~!--Close:Generating command request structs for all incoming commands into server side--~}} {{~!--Open:Generating command request structs for all outgoing commands from client side--~}} {{#if (is_client side)}} - {{#all_outgoing_commands_for_cluster name side}} + {{#zcl_commands}} + {{#if (isStrEqual source "client")}} {{~>idl_command_request_struct}} - {{/all_outgoing_commands_for_cluster}} + {{else}} + {{~>idl_command_response_struct}} + {{/if}} + {{/zcl_commands}} {{/if}} {{~!--Close:Generating command request structs for all outgoing commands from client side--~}} {{~!--Open:Generating command response structs for all incoming commands into client side--~}} - {{#if (is_client side)}} - {{#all_incoming_commands_for_cluster name side}} - {{~>idl_command_response_struct}} - {{/all_incoming_commands_for_cluster}} - {{/if}} {{~!--Close:Generating command response structs for all incoming commands into client side--~}} {{~!--Open:Generating command response structs for all outgoing commands from server side--~}} {{#if (is_server side)}} @@ -100,9 +99,9 @@ {{/all_incoming_commands_for_cluster}} {{/if}} {{#if (is_client side)}} - {{#all_outgoing_commands_for_cluster name side}} + {{#zcl_commands_source_client}} {{~>idl_command_request_response}}{{~new_line 1~}} - {{/all_outgoing_commands_for_cluster}} + {{/zcl_commands_source_client}} {{/if}} } From 125b9fc47515ad8b4857e9cf908042c21d4981d3 Mon Sep 17 00:00:00 2001 From: Andrei Litvin Date: Mon, 27 Mar 2023 12:31:50 -0400 Subject: [PATCH 2/8] ZAP regen all --- .../all-clusters-app.matter | 35 +- .../all-clusters-minimal-app.matter | 21 +- ...p_rootnode_dimmablelight_bCwGYSDpoe.matter | 20 +- ...de_colortemperaturelight_hbUnzYVeyn.matter | 20 +- .../rootnode_contactsensor_lFAGG1bfRO.matter | 20 +- .../rootnode_dimmablelight_bCwGYSDpoe.matter | 20 +- .../rootnode_doorlock_aNKYAreMXE.matter | 20 +- ...tnode_extendedcolorlight_8lcaaYJVAa.matter | 20 +- .../devices/rootnode_fan_7N2TobIlOX.matter | 20 +- .../rootnode_flowsensor_1zVxHedlaV.matter | 70 ++- ...tnode_heatingcoolingunit_ncdGai1E5a.matter | 49 +- .../rootnode_humiditysensor_Xyj4gda6Hb.matter | 70 ++- .../rootnode_lightsensor_lZQycTFcJK.matter | 70 ++- ...rootnode_occupancysensor_iHyVgifZuo.matter | 70 ++- .../rootnode_onofflight_bbs1b7IaOV.matter | 20 +- ...ootnode_onofflightswitch_FsPlMr090Q.matter | 34 +- ...rootnode_onoffpluginunit_Wtf8ss5EBY.matter | 20 +- .../rootnode_pressuresensor_s0qC9wLH4k.matter | 70 ++- .../rootnode_speaker_RpzeXdimqA.matter | 20 +- ...otnode_temperaturesensor_Qy1zkNW7c3.matter | 70 ++- .../rootnode_thermostat_bm3fb8dhYi.matter | 20 +- .../rootnode_windowcovering_RLCxaGi9Yx.matter | 20 +- .../contact-sensor-app.matter | 20 +- .../light-switch-app.matter | 158 ++++- .../lighting-common/lighting-app.matter | 20 +- .../nxp/zap/lighting-on-off.matter | 20 +- examples/lighting-app/qpg/zap/light.matter | 20 +- .../data_model/lighting-wifi-app.matter | 20 +- .../data_model/lighting-thread-app.matter | 20 +- .../efr32/data_model/lighting-wifi-app.matter | 20 +- examples/lock-app/lock-common/lock-app.matter | 20 +- examples/lock-app/qpg/zap/lock.matter | 20 +- .../log-source-common/log-source-app.matter | 15 + .../ota-requestor-app.matter | 20 +- .../placeholder/linux/apps/app1/config.matter | 35 ++ .../placeholder/linux/apps/app2/config.matter | 35 ++ examples/pump-app/pump-common/pump-app.matter | 20 +- .../pump-controller-app.matter | 34 +- .../thermostat-common/thermostat.matter | 26 +- examples/tv-app/tv-common/tv-app.matter | 92 +-- .../tv-casting-common/tv-casting-app.matter | 52 ++ examples/window-app/common/window-app.matter | 20 +- .../data_model/controller-clusters.matter | 554 +++++++++++------- 43 files changed, 1421 insertions(+), 619 deletions(-) diff --git a/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter b/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter index 99acb67bc867a9..15952f97027fef 100644 --- a/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter +++ b/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter @@ -273,9 +273,23 @@ client cluster OnOff = 6 { readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; + request struct OffWithEffectRequest { + OnOffEffectIdentifier effectIdentifier = 0; + int8u effectVariant = 1; + } + + request struct OnWithTimedOffRequest { + OnOffControl onOffControl = 0; + int16u onTime = 1; + int16u offWaitTime = 2; + } + command Off(): DefaultSuccess = 0; command On(): DefaultSuccess = 1; command Toggle(): DefaultSuccess = 2; + command OffWithEffect(OffWithEffectRequest): DefaultSuccess = 64; + command OnWithRecallGlobalScene(): DefaultSuccess = 65; + command OnWithTimedOff(OnWithTimedOffRequest): DefaultSuccess = 66; } server cluster OnOff = 6 { @@ -746,14 +760,20 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForProvider = 7; } - request struct ApplyUpdateRequestRequest { - OCTET_STRING<32> updateToken = 0; - INT32U newVersion = 1; + response struct QueryImageResponse = 1 { + OTAQueryStatus status = 0; + optional INT32U delayedActionTime = 1; + optional CHAR_STRING<256> imageURI = 2; + optional INT32U softwareVersion = 3; + optional CHAR_STRING<64> softwareVersionString = 4; + optional OCTET_STRING<32> updateToken = 5; + optional BOOLEAN userConsentNeeded = 6; + optional OCTET_STRING<512> metadataForRequestor = 7; } - request struct NotifyUpdateAppliedRequest { + request struct ApplyUpdateRequestRequest { OCTET_STRING<32> updateToken = 0; - INT32U softwareVersion = 1; + INT32U newVersion = 1; } response struct ApplyUpdateResponse = 3 { @@ -761,6 +781,11 @@ client cluster OtaSoftwareUpdateProvider = 41 { INT32U delayedActionTime = 1; } + request struct NotifyUpdateAppliedRequest { + OCTET_STRING<32> updateToken = 0; + INT32U softwareVersion = 1; + } + command QueryImage(QueryImageRequest): QueryImageResponse = 0; command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2; command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4; diff --git a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter index 6a8b066ef5148a..1239b9e94b7be8 100644 --- a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter +++ b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter @@ -631,14 +631,20 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForProvider = 7; } - request struct ApplyUpdateRequestRequest { - OCTET_STRING<32> updateToken = 0; - INT32U newVersion = 1; + response struct QueryImageResponse = 1 { + OTAQueryStatus status = 0; + optional INT32U delayedActionTime = 1; + optional CHAR_STRING<256> imageURI = 2; + optional INT32U softwareVersion = 3; + optional CHAR_STRING<64> softwareVersionString = 4; + optional OCTET_STRING<32> updateToken = 5; + optional BOOLEAN userConsentNeeded = 6; + optional OCTET_STRING<512> metadataForRequestor = 7; } - request struct NotifyUpdateAppliedRequest { + request struct ApplyUpdateRequestRequest { OCTET_STRING<32> updateToken = 0; - INT32U softwareVersion = 1; + INT32U newVersion = 1; } response struct ApplyUpdateResponse = 3 { @@ -646,6 +652,11 @@ client cluster OtaSoftwareUpdateProvider = 41 { INT32U delayedActionTime = 1; } + request struct NotifyUpdateAppliedRequest { + OCTET_STRING<32> updateToken = 0; + INT32U softwareVersion = 1; + } + command QueryImage(QueryImageRequest): QueryImageResponse = 0; command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2; command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4; diff --git a/examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.matter b/examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.matter index 0138aa3207b6b2..445c03d26ec6f9 100644 --- a/examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.matter +++ b/examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.matter @@ -435,16 +435,6 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForProvider = 7; } - request struct ApplyUpdateRequestRequest { - OCTET_STRING<32> updateToken = 0; - INT32U newVersion = 1; - } - - request struct NotifyUpdateAppliedRequest { - OCTET_STRING<32> updateToken = 0; - INT32U softwareVersion = 1; - } - response struct QueryImageResponse = 1 { OTAQueryStatus status = 0; optional INT32U delayedActionTime = 1; @@ -456,11 +446,21 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForRequestor = 7; } + request struct ApplyUpdateRequestRequest { + OCTET_STRING<32> updateToken = 0; + INT32U newVersion = 1; + } + response struct ApplyUpdateResponse = 3 { OTAApplyUpdateAction action = 0; INT32U delayedActionTime = 1; } + request struct NotifyUpdateAppliedRequest { + OCTET_STRING<32> updateToken = 0; + INT32U softwareVersion = 1; + } + command QueryImage(QueryImageRequest): QueryImageResponse = 0; command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2; command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4; diff --git a/examples/chef/devices/rootnode_colortemperaturelight_hbUnzYVeyn.matter b/examples/chef/devices/rootnode_colortemperaturelight_hbUnzYVeyn.matter index 73f0fad8aa24b5..7e502f5b82b5f9 100644 --- a/examples/chef/devices/rootnode_colortemperaturelight_hbUnzYVeyn.matter +++ b/examples/chef/devices/rootnode_colortemperaturelight_hbUnzYVeyn.matter @@ -444,16 +444,6 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForProvider = 7; } - request struct ApplyUpdateRequestRequest { - OCTET_STRING<32> updateToken = 0; - INT32U newVersion = 1; - } - - request struct NotifyUpdateAppliedRequest { - OCTET_STRING<32> updateToken = 0; - INT32U softwareVersion = 1; - } - response struct QueryImageResponse = 1 { OTAQueryStatus status = 0; optional INT32U delayedActionTime = 1; @@ -465,11 +455,21 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForRequestor = 7; } + request struct ApplyUpdateRequestRequest { + OCTET_STRING<32> updateToken = 0; + INT32U newVersion = 1; + } + response struct ApplyUpdateResponse = 3 { OTAApplyUpdateAction action = 0; INT32U delayedActionTime = 1; } + request struct NotifyUpdateAppliedRequest { + OCTET_STRING<32> updateToken = 0; + INT32U softwareVersion = 1; + } + command QueryImage(QueryImageRequest): QueryImageResponse = 0; command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2; command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4; diff --git a/examples/chef/devices/rootnode_contactsensor_lFAGG1bfRO.matter b/examples/chef/devices/rootnode_contactsensor_lFAGG1bfRO.matter index d69ad8d02016c8..a8e012b68e2b8a 100644 --- a/examples/chef/devices/rootnode_contactsensor_lFAGG1bfRO.matter +++ b/examples/chef/devices/rootnode_contactsensor_lFAGG1bfRO.matter @@ -288,16 +288,6 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForProvider = 7; } - request struct ApplyUpdateRequestRequest { - OCTET_STRING<32> updateToken = 0; - INT32U newVersion = 1; - } - - request struct NotifyUpdateAppliedRequest { - OCTET_STRING<32> updateToken = 0; - INT32U softwareVersion = 1; - } - response struct QueryImageResponse = 1 { OTAQueryStatus status = 0; optional INT32U delayedActionTime = 1; @@ -309,11 +299,21 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForRequestor = 7; } + request struct ApplyUpdateRequestRequest { + OCTET_STRING<32> updateToken = 0; + INT32U newVersion = 1; + } + response struct ApplyUpdateResponse = 3 { OTAApplyUpdateAction action = 0; INT32U delayedActionTime = 1; } + request struct NotifyUpdateAppliedRequest { + OCTET_STRING<32> updateToken = 0; + INT32U softwareVersion = 1; + } + command QueryImage(QueryImageRequest): QueryImageResponse = 0; command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2; command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4; diff --git a/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.matter b/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.matter index fa8f85729e31a4..8ebc417d54a189 100644 --- a/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.matter +++ b/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.matter @@ -435,16 +435,6 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForProvider = 7; } - request struct ApplyUpdateRequestRequest { - OCTET_STRING<32> updateToken = 0; - INT32U newVersion = 1; - } - - request struct NotifyUpdateAppliedRequest { - OCTET_STRING<32> updateToken = 0; - INT32U softwareVersion = 1; - } - response struct QueryImageResponse = 1 { OTAQueryStatus status = 0; optional INT32U delayedActionTime = 1; @@ -456,11 +446,21 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForRequestor = 7; } + request struct ApplyUpdateRequestRequest { + OCTET_STRING<32> updateToken = 0; + INT32U newVersion = 1; + } + response struct ApplyUpdateResponse = 3 { OTAApplyUpdateAction action = 0; INT32U delayedActionTime = 1; } + request struct NotifyUpdateAppliedRequest { + OCTET_STRING<32> updateToken = 0; + INT32U softwareVersion = 1; + } + command QueryImage(QueryImageRequest): QueryImageResponse = 0; command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2; command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4; diff --git a/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter b/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter index 0dda840f15e723..e0605669e54629 100644 --- a/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter +++ b/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter @@ -288,16 +288,6 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForProvider = 7; } - request struct ApplyUpdateRequestRequest { - OCTET_STRING<32> updateToken = 0; - INT32U newVersion = 1; - } - - request struct NotifyUpdateAppliedRequest { - OCTET_STRING<32> updateToken = 0; - INT32U softwareVersion = 1; - } - response struct QueryImageResponse = 1 { OTAQueryStatus status = 0; optional INT32U delayedActionTime = 1; @@ -309,11 +299,21 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForRequestor = 7; } + request struct ApplyUpdateRequestRequest { + OCTET_STRING<32> updateToken = 0; + INT32U newVersion = 1; + } + response struct ApplyUpdateResponse = 3 { OTAApplyUpdateAction action = 0; INT32U delayedActionTime = 1; } + request struct NotifyUpdateAppliedRequest { + OCTET_STRING<32> updateToken = 0; + INT32U softwareVersion = 1; + } + command QueryImage(QueryImageRequest): QueryImageResponse = 0; command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2; command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4; diff --git a/examples/chef/devices/rootnode_extendedcolorlight_8lcaaYJVAa.matter b/examples/chef/devices/rootnode_extendedcolorlight_8lcaaYJVAa.matter index 8e42c417cef86f..1f87452815d8d8 100644 --- a/examples/chef/devices/rootnode_extendedcolorlight_8lcaaYJVAa.matter +++ b/examples/chef/devices/rootnode_extendedcolorlight_8lcaaYJVAa.matter @@ -435,16 +435,6 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForProvider = 7; } - request struct ApplyUpdateRequestRequest { - OCTET_STRING<32> updateToken = 0; - INT32U newVersion = 1; - } - - request struct NotifyUpdateAppliedRequest { - OCTET_STRING<32> updateToken = 0; - INT32U softwareVersion = 1; - } - response struct QueryImageResponse = 1 { OTAQueryStatus status = 0; optional INT32U delayedActionTime = 1; @@ -456,11 +446,21 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForRequestor = 7; } + request struct ApplyUpdateRequestRequest { + OCTET_STRING<32> updateToken = 0; + INT32U newVersion = 1; + } + response struct ApplyUpdateResponse = 3 { OTAApplyUpdateAction action = 0; INT32U delayedActionTime = 1; } + request struct NotifyUpdateAppliedRequest { + OCTET_STRING<32> updateToken = 0; + INT32U softwareVersion = 1; + } + command QueryImage(QueryImageRequest): QueryImageResponse = 0; command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2; command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4; diff --git a/examples/chef/devices/rootnode_fan_7N2TobIlOX.matter b/examples/chef/devices/rootnode_fan_7N2TobIlOX.matter index af6104234a63ff..c3ec45249a26a4 100644 --- a/examples/chef/devices/rootnode_fan_7N2TobIlOX.matter +++ b/examples/chef/devices/rootnode_fan_7N2TobIlOX.matter @@ -285,16 +285,6 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForProvider = 7; } - request struct ApplyUpdateRequestRequest { - OCTET_STRING<32> updateToken = 0; - INT32U newVersion = 1; - } - - request struct NotifyUpdateAppliedRequest { - OCTET_STRING<32> updateToken = 0; - INT32U softwareVersion = 1; - } - response struct QueryImageResponse = 1 { OTAQueryStatus status = 0; optional INT32U delayedActionTime = 1; @@ -306,11 +296,21 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForRequestor = 7; } + request struct ApplyUpdateRequestRequest { + OCTET_STRING<32> updateToken = 0; + INT32U newVersion = 1; + } + response struct ApplyUpdateResponse = 3 { OTAApplyUpdateAction action = 0; INT32U delayedActionTime = 1; } + request struct NotifyUpdateAppliedRequest { + OCTET_STRING<32> updateToken = 0; + INT32U softwareVersion = 1; + } + command QueryImage(QueryImageRequest): QueryImageResponse = 0; command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2; command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4; diff --git a/examples/chef/devices/rootnode_flowsensor_1zVxHedlaV.matter b/examples/chef/devices/rootnode_flowsensor_1zVxHedlaV.matter index 004787645dcf69..2d15955cae04fd 100644 --- a/examples/chef/devices/rootnode_flowsensor_1zVxHedlaV.matter +++ b/examples/chef/devices/rootnode_flowsensor_1zVxHedlaV.matter @@ -52,6 +52,56 @@ client cluster Groups = 4 { readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; + + request struct AddGroupRequest { + group_id groupID = 0; + CHAR_STRING groupName = 1; + } + + response struct AddGroupResponse = 0 { + ENUM8 status = 0; + group_id groupID = 1; + } + + request struct ViewGroupRequest { + group_id groupID = 0; + } + + response struct ViewGroupResponse = 1 { + ENUM8 status = 0; + group_id groupID = 1; + CHAR_STRING groupName = 2; + } + + request struct GetGroupMembershipRequest { + group_id groupList[] = 0; + } + + response struct GetGroupMembershipResponse = 2 { + nullable INT8U capacity = 0; + group_id groupList[] = 1; + } + + request struct RemoveGroupRequest { + group_id groupID = 0; + } + + response struct RemoveGroupResponse = 3 { + ENUM8 status = 0; + group_id groupID = 1; + } + + request struct AddGroupIfIdentifyingRequest { + group_id groupID = 0; + CHAR_STRING groupName = 1; + } + + fabric command access(invoke: manage) AddGroup(AddGroupRequest): AddGroupResponse = 0; + fabric command ViewGroup(ViewGroupRequest): ViewGroupResponse = 1; + fabric command GetGroupMembership(GetGroupMembershipRequest): GetGroupMembershipResponse = 2; + fabric command access(invoke: manage) RemoveGroup(RemoveGroupRequest): RemoveGroupResponse = 3; + fabric command access(invoke: manage) RemoveAllGroups(): DefaultSuccess = 4; + fabric command access(invoke: manage) AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5; } server cluster Groups = 4 { @@ -302,16 +352,6 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForProvider = 7; } - request struct ApplyUpdateRequestRequest { - OCTET_STRING<32> updateToken = 0; - INT32U newVersion = 1; - } - - request struct NotifyUpdateAppliedRequest { - OCTET_STRING<32> updateToken = 0; - INT32U softwareVersion = 1; - } - response struct QueryImageResponse = 1 { OTAQueryStatus status = 0; optional INT32U delayedActionTime = 1; @@ -323,11 +363,21 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForRequestor = 7; } + request struct ApplyUpdateRequestRequest { + OCTET_STRING<32> updateToken = 0; + INT32U newVersion = 1; + } + response struct ApplyUpdateResponse = 3 { OTAApplyUpdateAction action = 0; INT32U delayedActionTime = 1; } + request struct NotifyUpdateAppliedRequest { + OCTET_STRING<32> updateToken = 0; + INT32U softwareVersion = 1; + } + command QueryImage(QueryImageRequest): QueryImageResponse = 0; command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2; command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4; diff --git a/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter b/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter index 9d30700dab65f1..4e7f6302e883b4 100644 --- a/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter +++ b/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter @@ -428,16 +428,6 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForProvider = 7; } - request struct ApplyUpdateRequestRequest { - OCTET_STRING<32> updateToken = 0; - INT32U newVersion = 1; - } - - request struct NotifyUpdateAppliedRequest { - OCTET_STRING<32> updateToken = 0; - INT32U softwareVersion = 1; - } - response struct QueryImageResponse = 1 { OTAQueryStatus status = 0; optional INT32U delayedActionTime = 1; @@ -449,11 +439,21 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForRequestor = 7; } + request struct ApplyUpdateRequestRequest { + OCTET_STRING<32> updateToken = 0; + INT32U newVersion = 1; + } + response struct ApplyUpdateResponse = 3 { OTAApplyUpdateAction action = 0; INT32U delayedActionTime = 1; } + request struct NotifyUpdateAppliedRequest { + OCTET_STRING<32> updateToken = 0; + INT32U softwareVersion = 1; + } + command QueryImage(QueryImageRequest): QueryImageResponse = 0; command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2; command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4; @@ -1350,6 +1350,35 @@ client cluster Thermostat = 513 { readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; + + request struct SetpointRaiseLowerRequest { + SetpointAdjustMode mode = 0; + INT8S amount = 1; + } + + response struct GetWeeklyScheduleResponse = 0 { + INT8U numberOfTransitionsForSequence = 0; + DayOfWeek dayOfWeekForSequence = 1; + ModeForSequence modeForSequence = 2; + ThermostatScheduleTransition transitions[] = 3; + } + + request struct SetWeeklyScheduleRequest { + INT8U numberOfTransitionsForSequence = 0; + DayOfWeek dayOfWeekForSequence = 1; + ModeForSequence modeForSequence = 2; + ThermostatScheduleTransition transitions[] = 3; + } + + request struct GetWeeklyScheduleRequest { + DayOfWeek daysToReturn = 0; + ModeForSequence modeToReturn = 1; + } + + command SetpointRaiseLower(SetpointRaiseLowerRequest): DefaultSuccess = 0; + command access(invoke: manage) SetWeeklySchedule(SetWeeklyScheduleRequest): DefaultSuccess = 1; + command GetWeeklySchedule(GetWeeklyScheduleRequest): GetWeeklyScheduleResponse = 2; + command access(invoke: manage) ClearWeeklySchedule(): DefaultSuccess = 3; } server cluster FanControl = 514 { diff --git a/examples/chef/devices/rootnode_humiditysensor_Xyj4gda6Hb.matter b/examples/chef/devices/rootnode_humiditysensor_Xyj4gda6Hb.matter index 7a45ce19377ed4..590522e2fc585a 100644 --- a/examples/chef/devices/rootnode_humiditysensor_Xyj4gda6Hb.matter +++ b/examples/chef/devices/rootnode_humiditysensor_Xyj4gda6Hb.matter @@ -52,6 +52,56 @@ client cluster Groups = 4 { readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; + + request struct AddGroupRequest { + group_id groupID = 0; + CHAR_STRING groupName = 1; + } + + response struct AddGroupResponse = 0 { + ENUM8 status = 0; + group_id groupID = 1; + } + + request struct ViewGroupRequest { + group_id groupID = 0; + } + + response struct ViewGroupResponse = 1 { + ENUM8 status = 0; + group_id groupID = 1; + CHAR_STRING groupName = 2; + } + + request struct GetGroupMembershipRequest { + group_id groupList[] = 0; + } + + response struct GetGroupMembershipResponse = 2 { + nullable INT8U capacity = 0; + group_id groupList[] = 1; + } + + request struct RemoveGroupRequest { + group_id groupID = 0; + } + + response struct RemoveGroupResponse = 3 { + ENUM8 status = 0; + group_id groupID = 1; + } + + request struct AddGroupIfIdentifyingRequest { + group_id groupID = 0; + CHAR_STRING groupName = 1; + } + + fabric command access(invoke: manage) AddGroup(AddGroupRequest): AddGroupResponse = 0; + fabric command ViewGroup(ViewGroupRequest): ViewGroupResponse = 1; + fabric command GetGroupMembership(GetGroupMembershipRequest): GetGroupMembershipResponse = 2; + fabric command access(invoke: manage) RemoveGroup(RemoveGroupRequest): RemoveGroupResponse = 3; + fabric command access(invoke: manage) RemoveAllGroups(): DefaultSuccess = 4; + fabric command access(invoke: manage) AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5; } server cluster Groups = 4 { @@ -302,16 +352,6 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForProvider = 7; } - request struct ApplyUpdateRequestRequest { - OCTET_STRING<32> updateToken = 0; - INT32U newVersion = 1; - } - - request struct NotifyUpdateAppliedRequest { - OCTET_STRING<32> updateToken = 0; - INT32U softwareVersion = 1; - } - response struct QueryImageResponse = 1 { OTAQueryStatus status = 0; optional INT32U delayedActionTime = 1; @@ -323,11 +363,21 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForRequestor = 7; } + request struct ApplyUpdateRequestRequest { + OCTET_STRING<32> updateToken = 0; + INT32U newVersion = 1; + } + response struct ApplyUpdateResponse = 3 { OTAApplyUpdateAction action = 0; INT32U delayedActionTime = 1; } + request struct NotifyUpdateAppliedRequest { + OCTET_STRING<32> updateToken = 0; + INT32U softwareVersion = 1; + } + command QueryImage(QueryImageRequest): QueryImageResponse = 0; command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2; command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4; diff --git a/examples/chef/devices/rootnode_lightsensor_lZQycTFcJK.matter b/examples/chef/devices/rootnode_lightsensor_lZQycTFcJK.matter index b49f38eb025857..3dcf17d48c7ff0 100644 --- a/examples/chef/devices/rootnode_lightsensor_lZQycTFcJK.matter +++ b/examples/chef/devices/rootnode_lightsensor_lZQycTFcJK.matter @@ -52,6 +52,56 @@ client cluster Groups = 4 { readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; + + request struct AddGroupRequest { + group_id groupID = 0; + CHAR_STRING groupName = 1; + } + + response struct AddGroupResponse = 0 { + ENUM8 status = 0; + group_id groupID = 1; + } + + request struct ViewGroupRequest { + group_id groupID = 0; + } + + response struct ViewGroupResponse = 1 { + ENUM8 status = 0; + group_id groupID = 1; + CHAR_STRING groupName = 2; + } + + request struct GetGroupMembershipRequest { + group_id groupList[] = 0; + } + + response struct GetGroupMembershipResponse = 2 { + nullable INT8U capacity = 0; + group_id groupList[] = 1; + } + + request struct RemoveGroupRequest { + group_id groupID = 0; + } + + response struct RemoveGroupResponse = 3 { + ENUM8 status = 0; + group_id groupID = 1; + } + + request struct AddGroupIfIdentifyingRequest { + group_id groupID = 0; + CHAR_STRING groupName = 1; + } + + fabric command access(invoke: manage) AddGroup(AddGroupRequest): AddGroupResponse = 0; + fabric command ViewGroup(ViewGroupRequest): ViewGroupResponse = 1; + fabric command GetGroupMembership(GetGroupMembershipRequest): GetGroupMembershipResponse = 2; + fabric command access(invoke: manage) RemoveGroup(RemoveGroupRequest): RemoveGroupResponse = 3; + fabric command access(invoke: manage) RemoveAllGroups(): DefaultSuccess = 4; + fabric command access(invoke: manage) AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5; } server cluster Groups = 4 { @@ -302,16 +352,6 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForProvider = 7; } - request struct ApplyUpdateRequestRequest { - OCTET_STRING<32> updateToken = 0; - INT32U newVersion = 1; - } - - request struct NotifyUpdateAppliedRequest { - OCTET_STRING<32> updateToken = 0; - INT32U softwareVersion = 1; - } - response struct QueryImageResponse = 1 { OTAQueryStatus status = 0; optional INT32U delayedActionTime = 1; @@ -323,11 +363,21 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForRequestor = 7; } + request struct ApplyUpdateRequestRequest { + OCTET_STRING<32> updateToken = 0; + INT32U newVersion = 1; + } + response struct ApplyUpdateResponse = 3 { OTAApplyUpdateAction action = 0; INT32U delayedActionTime = 1; } + request struct NotifyUpdateAppliedRequest { + OCTET_STRING<32> updateToken = 0; + INT32U softwareVersion = 1; + } + command QueryImage(QueryImageRequest): QueryImageResponse = 0; command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2; command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4; diff --git a/examples/chef/devices/rootnode_occupancysensor_iHyVgifZuo.matter b/examples/chef/devices/rootnode_occupancysensor_iHyVgifZuo.matter index 4e218927f80eee..065f90ec06ecb0 100644 --- a/examples/chef/devices/rootnode_occupancysensor_iHyVgifZuo.matter +++ b/examples/chef/devices/rootnode_occupancysensor_iHyVgifZuo.matter @@ -52,6 +52,56 @@ client cluster Groups = 4 { readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; + + request struct AddGroupRequest { + group_id groupID = 0; + CHAR_STRING groupName = 1; + } + + response struct AddGroupResponse = 0 { + ENUM8 status = 0; + group_id groupID = 1; + } + + request struct ViewGroupRequest { + group_id groupID = 0; + } + + response struct ViewGroupResponse = 1 { + ENUM8 status = 0; + group_id groupID = 1; + CHAR_STRING groupName = 2; + } + + request struct GetGroupMembershipRequest { + group_id groupList[] = 0; + } + + response struct GetGroupMembershipResponse = 2 { + nullable INT8U capacity = 0; + group_id groupList[] = 1; + } + + request struct RemoveGroupRequest { + group_id groupID = 0; + } + + response struct RemoveGroupResponse = 3 { + ENUM8 status = 0; + group_id groupID = 1; + } + + request struct AddGroupIfIdentifyingRequest { + group_id groupID = 0; + CHAR_STRING groupName = 1; + } + + fabric command access(invoke: manage) AddGroup(AddGroupRequest): AddGroupResponse = 0; + fabric command ViewGroup(ViewGroupRequest): ViewGroupResponse = 1; + fabric command GetGroupMembership(GetGroupMembershipRequest): GetGroupMembershipResponse = 2; + fabric command access(invoke: manage) RemoveGroup(RemoveGroupRequest): RemoveGroupResponse = 3; + fabric command access(invoke: manage) RemoveAllGroups(): DefaultSuccess = 4; + fabric command access(invoke: manage) AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5; } server cluster Groups = 4 { @@ -302,16 +352,6 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForProvider = 7; } - request struct ApplyUpdateRequestRequest { - OCTET_STRING<32> updateToken = 0; - INT32U newVersion = 1; - } - - request struct NotifyUpdateAppliedRequest { - OCTET_STRING<32> updateToken = 0; - INT32U softwareVersion = 1; - } - response struct QueryImageResponse = 1 { OTAQueryStatus status = 0; optional INT32U delayedActionTime = 1; @@ -323,11 +363,21 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForRequestor = 7; } + request struct ApplyUpdateRequestRequest { + OCTET_STRING<32> updateToken = 0; + INT32U newVersion = 1; + } + response struct ApplyUpdateResponse = 3 { OTAApplyUpdateAction action = 0; INT32U delayedActionTime = 1; } + request struct NotifyUpdateAppliedRequest { + OCTET_STRING<32> updateToken = 0; + INT32U softwareVersion = 1; + } + command QueryImage(QueryImageRequest): QueryImageResponse = 0; command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2; command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4; diff --git a/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.matter b/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.matter index 5c079a5eafd9e2..6d18c741e0aad5 100644 --- a/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.matter +++ b/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.matter @@ -435,16 +435,6 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForProvider = 7; } - request struct ApplyUpdateRequestRequest { - OCTET_STRING<32> updateToken = 0; - INT32U newVersion = 1; - } - - request struct NotifyUpdateAppliedRequest { - OCTET_STRING<32> updateToken = 0; - INT32U softwareVersion = 1; - } - response struct QueryImageResponse = 1 { OTAQueryStatus status = 0; optional INT32U delayedActionTime = 1; @@ -456,11 +446,21 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForRequestor = 7; } + request struct ApplyUpdateRequestRequest { + OCTET_STRING<32> updateToken = 0; + INT32U newVersion = 1; + } + response struct ApplyUpdateResponse = 3 { OTAApplyUpdateAction action = 0; INT32U delayedActionTime = 1; } + request struct NotifyUpdateAppliedRequest { + OCTET_STRING<32> updateToken = 0; + INT32U softwareVersion = 1; + } + command QueryImage(QueryImageRequest): QueryImageResponse = 0; command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2; command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4; diff --git a/examples/chef/devices/rootnode_onofflightswitch_FsPlMr090Q.matter b/examples/chef/devices/rootnode_onofflightswitch_FsPlMr090Q.matter index e4ad689f018f34..3c9508c676353e 100644 --- a/examples/chef/devices/rootnode_onofflightswitch_FsPlMr090Q.matter +++ b/examples/chef/devices/rootnode_onofflightswitch_FsPlMr090Q.matter @@ -146,9 +146,23 @@ client cluster OnOff = 6 { readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; + request struct OffWithEffectRequest { + OnOffEffectIdentifier effectIdentifier = 0; + int8u effectVariant = 1; + } + + request struct OnWithTimedOffRequest { + OnOffControl onOffControl = 0; + int16u onTime = 1; + int16u offWaitTime = 2; + } + command Off(): DefaultSuccess = 0; command On(): DefaultSuccess = 1; command Toggle(): DefaultSuccess = 2; + command OffWithEffect(OffWithEffectRequest): DefaultSuccess = 64; + command OnWithRecallGlobalScene(): DefaultSuccess = 65; + command OnWithTimedOff(OnWithTimedOffRequest): DefaultSuccess = 66; } server cluster OnOff = 6 { @@ -378,16 +392,6 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForProvider = 7; } - request struct ApplyUpdateRequestRequest { - OCTET_STRING<32> updateToken = 0; - INT32U newVersion = 1; - } - - request struct NotifyUpdateAppliedRequest { - OCTET_STRING<32> updateToken = 0; - INT32U softwareVersion = 1; - } - response struct QueryImageResponse = 1 { OTAQueryStatus status = 0; optional INT32U delayedActionTime = 1; @@ -399,11 +403,21 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForRequestor = 7; } + request struct ApplyUpdateRequestRequest { + OCTET_STRING<32> updateToken = 0; + INT32U newVersion = 1; + } + response struct ApplyUpdateResponse = 3 { OTAApplyUpdateAction action = 0; INT32U delayedActionTime = 1; } + request struct NotifyUpdateAppliedRequest { + OCTET_STRING<32> updateToken = 0; + INT32U softwareVersion = 1; + } + command QueryImage(QueryImageRequest): QueryImageResponse = 0; command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2; command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4; diff --git a/examples/chef/devices/rootnode_onoffpluginunit_Wtf8ss5EBY.matter b/examples/chef/devices/rootnode_onoffpluginunit_Wtf8ss5EBY.matter index 2c7d1b9e16bab8..0276bf5ae756a8 100644 --- a/examples/chef/devices/rootnode_onoffpluginunit_Wtf8ss5EBY.matter +++ b/examples/chef/devices/rootnode_onoffpluginunit_Wtf8ss5EBY.matter @@ -335,16 +335,6 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForProvider = 7; } - request struct ApplyUpdateRequestRequest { - OCTET_STRING<32> updateToken = 0; - INT32U newVersion = 1; - } - - request struct NotifyUpdateAppliedRequest { - OCTET_STRING<32> updateToken = 0; - INT32U softwareVersion = 1; - } - response struct QueryImageResponse = 1 { OTAQueryStatus status = 0; optional INT32U delayedActionTime = 1; @@ -356,11 +346,21 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForRequestor = 7; } + request struct ApplyUpdateRequestRequest { + OCTET_STRING<32> updateToken = 0; + INT32U newVersion = 1; + } + response struct ApplyUpdateResponse = 3 { OTAApplyUpdateAction action = 0; INT32U delayedActionTime = 1; } + request struct NotifyUpdateAppliedRequest { + OCTET_STRING<32> updateToken = 0; + INT32U softwareVersion = 1; + } + command QueryImage(QueryImageRequest): QueryImageResponse = 0; command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2; command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4; diff --git a/examples/chef/devices/rootnode_pressuresensor_s0qC9wLH4k.matter b/examples/chef/devices/rootnode_pressuresensor_s0qC9wLH4k.matter index 146e6d58ad75f3..5ed77f2bbce450 100644 --- a/examples/chef/devices/rootnode_pressuresensor_s0qC9wLH4k.matter +++ b/examples/chef/devices/rootnode_pressuresensor_s0qC9wLH4k.matter @@ -57,6 +57,56 @@ client cluster Groups = 4 { readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; + + request struct AddGroupRequest { + group_id groupID = 0; + CHAR_STRING groupName = 1; + } + + response struct AddGroupResponse = 0 { + ENUM8 status = 0; + group_id groupID = 1; + } + + request struct ViewGroupRequest { + group_id groupID = 0; + } + + response struct ViewGroupResponse = 1 { + ENUM8 status = 0; + group_id groupID = 1; + CHAR_STRING groupName = 2; + } + + request struct GetGroupMembershipRequest { + group_id groupList[] = 0; + } + + response struct GetGroupMembershipResponse = 2 { + nullable INT8U capacity = 0; + group_id groupList[] = 1; + } + + request struct RemoveGroupRequest { + group_id groupID = 0; + } + + response struct RemoveGroupResponse = 3 { + ENUM8 status = 0; + group_id groupID = 1; + } + + request struct AddGroupIfIdentifyingRequest { + group_id groupID = 0; + CHAR_STRING groupName = 1; + } + + fabric command access(invoke: manage) AddGroup(AddGroupRequest): AddGroupResponse = 0; + fabric command ViewGroup(ViewGroupRequest): ViewGroupResponse = 1; + fabric command GetGroupMembership(GetGroupMembershipRequest): GetGroupMembershipResponse = 2; + fabric command access(invoke: manage) RemoveGroup(RemoveGroupRequest): RemoveGroupResponse = 3; + fabric command access(invoke: manage) RemoveAllGroups(): DefaultSuccess = 4; + fabric command access(invoke: manage) AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5; } server cluster Groups = 4 { @@ -307,16 +357,6 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForProvider = 7; } - request struct ApplyUpdateRequestRequest { - OCTET_STRING<32> updateToken = 0; - INT32U newVersion = 1; - } - - request struct NotifyUpdateAppliedRequest { - OCTET_STRING<32> updateToken = 0; - INT32U softwareVersion = 1; - } - response struct QueryImageResponse = 1 { OTAQueryStatus status = 0; optional INT32U delayedActionTime = 1; @@ -328,11 +368,21 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForRequestor = 7; } + request struct ApplyUpdateRequestRequest { + OCTET_STRING<32> updateToken = 0; + INT32U newVersion = 1; + } + response struct ApplyUpdateResponse = 3 { OTAApplyUpdateAction action = 0; INT32U delayedActionTime = 1; } + request struct NotifyUpdateAppliedRequest { + OCTET_STRING<32> updateToken = 0; + INT32U softwareVersion = 1; + } + command QueryImage(QueryImageRequest): QueryImageResponse = 0; command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2; command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4; diff --git a/examples/chef/devices/rootnode_speaker_RpzeXdimqA.matter b/examples/chef/devices/rootnode_speaker_RpzeXdimqA.matter index 0c1041f3c77441..743bd76be3c33f 100644 --- a/examples/chef/devices/rootnode_speaker_RpzeXdimqA.matter +++ b/examples/chef/devices/rootnode_speaker_RpzeXdimqA.matter @@ -429,16 +429,6 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForProvider = 7; } - request struct ApplyUpdateRequestRequest { - OCTET_STRING<32> updateToken = 0; - INT32U newVersion = 1; - } - - request struct NotifyUpdateAppliedRequest { - OCTET_STRING<32> updateToken = 0; - INT32U softwareVersion = 1; - } - response struct QueryImageResponse = 1 { OTAQueryStatus status = 0; optional INT32U delayedActionTime = 1; @@ -450,11 +440,21 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForRequestor = 7; } + request struct ApplyUpdateRequestRequest { + OCTET_STRING<32> updateToken = 0; + INT32U newVersion = 1; + } + response struct ApplyUpdateResponse = 3 { OTAApplyUpdateAction action = 0; INT32U delayedActionTime = 1; } + request struct NotifyUpdateAppliedRequest { + OCTET_STRING<32> updateToken = 0; + INT32U softwareVersion = 1; + } + command QueryImage(QueryImageRequest): QueryImageResponse = 0; command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2; command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4; diff --git a/examples/chef/devices/rootnode_temperaturesensor_Qy1zkNW7c3.matter b/examples/chef/devices/rootnode_temperaturesensor_Qy1zkNW7c3.matter index 951abb3781f2b6..457122418c3c17 100644 --- a/examples/chef/devices/rootnode_temperaturesensor_Qy1zkNW7c3.matter +++ b/examples/chef/devices/rootnode_temperaturesensor_Qy1zkNW7c3.matter @@ -52,6 +52,56 @@ client cluster Groups = 4 { readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; + + request struct AddGroupRequest { + group_id groupID = 0; + CHAR_STRING groupName = 1; + } + + response struct AddGroupResponse = 0 { + ENUM8 status = 0; + group_id groupID = 1; + } + + request struct ViewGroupRequest { + group_id groupID = 0; + } + + response struct ViewGroupResponse = 1 { + ENUM8 status = 0; + group_id groupID = 1; + CHAR_STRING groupName = 2; + } + + request struct GetGroupMembershipRequest { + group_id groupList[] = 0; + } + + response struct GetGroupMembershipResponse = 2 { + nullable INT8U capacity = 0; + group_id groupList[] = 1; + } + + request struct RemoveGroupRequest { + group_id groupID = 0; + } + + response struct RemoveGroupResponse = 3 { + ENUM8 status = 0; + group_id groupID = 1; + } + + request struct AddGroupIfIdentifyingRequest { + group_id groupID = 0; + CHAR_STRING groupName = 1; + } + + fabric command access(invoke: manage) AddGroup(AddGroupRequest): AddGroupResponse = 0; + fabric command ViewGroup(ViewGroupRequest): ViewGroupResponse = 1; + fabric command GetGroupMembership(GetGroupMembershipRequest): GetGroupMembershipResponse = 2; + fabric command access(invoke: manage) RemoveGroup(RemoveGroupRequest): RemoveGroupResponse = 3; + fabric command access(invoke: manage) RemoveAllGroups(): DefaultSuccess = 4; + fabric command access(invoke: manage) AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5; } server cluster Groups = 4 { @@ -302,16 +352,6 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForProvider = 7; } - request struct ApplyUpdateRequestRequest { - OCTET_STRING<32> updateToken = 0; - INT32U newVersion = 1; - } - - request struct NotifyUpdateAppliedRequest { - OCTET_STRING<32> updateToken = 0; - INT32U softwareVersion = 1; - } - response struct QueryImageResponse = 1 { OTAQueryStatus status = 0; optional INT32U delayedActionTime = 1; @@ -323,11 +363,21 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForRequestor = 7; } + request struct ApplyUpdateRequestRequest { + OCTET_STRING<32> updateToken = 0; + INT32U newVersion = 1; + } + response struct ApplyUpdateResponse = 3 { OTAApplyUpdateAction action = 0; INT32U delayedActionTime = 1; } + request struct NotifyUpdateAppliedRequest { + OCTET_STRING<32> updateToken = 0; + INT32U softwareVersion = 1; + } + command QueryImage(QueryImageRequest): QueryImageResponse = 0; command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2; command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4; diff --git a/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter b/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter index 03bc1853fbd387..19e12b4c59cd30 100644 --- a/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter +++ b/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter @@ -288,16 +288,6 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForProvider = 7; } - request struct ApplyUpdateRequestRequest { - OCTET_STRING<32> updateToken = 0; - INT32U newVersion = 1; - } - - request struct NotifyUpdateAppliedRequest { - OCTET_STRING<32> updateToken = 0; - INT32U softwareVersion = 1; - } - response struct QueryImageResponse = 1 { OTAQueryStatus status = 0; optional INT32U delayedActionTime = 1; @@ -309,11 +299,21 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForRequestor = 7; } + request struct ApplyUpdateRequestRequest { + OCTET_STRING<32> updateToken = 0; + INT32U newVersion = 1; + } + response struct ApplyUpdateResponse = 3 { OTAApplyUpdateAction action = 0; INT32U delayedActionTime = 1; } + request struct NotifyUpdateAppliedRequest { + OCTET_STRING<32> updateToken = 0; + INT32U softwareVersion = 1; + } + command QueryImage(QueryImageRequest): QueryImageResponse = 0; command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2; command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4; diff --git a/examples/chef/devices/rootnode_windowcovering_RLCxaGi9Yx.matter b/examples/chef/devices/rootnode_windowcovering_RLCxaGi9Yx.matter index 7eb2860ebe40b4..0964ab1c480122 100644 --- a/examples/chef/devices/rootnode_windowcovering_RLCxaGi9Yx.matter +++ b/examples/chef/devices/rootnode_windowcovering_RLCxaGi9Yx.matter @@ -288,16 +288,6 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForProvider = 7; } - request struct ApplyUpdateRequestRequest { - OCTET_STRING<32> updateToken = 0; - INT32U newVersion = 1; - } - - request struct NotifyUpdateAppliedRequest { - OCTET_STRING<32> updateToken = 0; - INT32U softwareVersion = 1; - } - response struct QueryImageResponse = 1 { OTAQueryStatus status = 0; optional INT32U delayedActionTime = 1; @@ -309,11 +299,21 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForRequestor = 7; } + request struct ApplyUpdateRequestRequest { + OCTET_STRING<32> updateToken = 0; + INT32U newVersion = 1; + } + response struct ApplyUpdateResponse = 3 { OTAApplyUpdateAction action = 0; INT32U delayedActionTime = 1; } + request struct NotifyUpdateAppliedRequest { + OCTET_STRING<32> updateToken = 0; + INT32U softwareVersion = 1; + } + command QueryImage(QueryImageRequest): QueryImageResponse = 0; command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2; command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4; diff --git a/examples/contact-sensor-app/contact-sensor-common/contact-sensor-app.matter b/examples/contact-sensor-app/contact-sensor-common/contact-sensor-app.matter index 7b59e70d22e86c..8d5733d7027a5f 100644 --- a/examples/contact-sensor-app/contact-sensor-common/contact-sensor-app.matter +++ b/examples/contact-sensor-app/contact-sensor-common/contact-sensor-app.matter @@ -290,16 +290,6 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForProvider = 7; } - request struct ApplyUpdateRequestRequest { - OCTET_STRING<32> updateToken = 0; - INT32U newVersion = 1; - } - - request struct NotifyUpdateAppliedRequest { - OCTET_STRING<32> updateToken = 0; - INT32U softwareVersion = 1; - } - response struct QueryImageResponse = 1 { OTAQueryStatus status = 0; optional INT32U delayedActionTime = 1; @@ -311,11 +301,21 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForRequestor = 7; } + request struct ApplyUpdateRequestRequest { + OCTET_STRING<32> updateToken = 0; + INT32U newVersion = 1; + } + response struct ApplyUpdateResponse = 3 { OTAApplyUpdateAction action = 0; INT32U delayedActionTime = 1; } + request struct NotifyUpdateAppliedRequest { + OCTET_STRING<32> updateToken = 0; + INT32U softwareVersion = 1; + } + command QueryImage(QueryImageRequest): QueryImageResponse = 0; command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2; command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4; diff --git a/examples/light-switch-app/light-switch-common/light-switch-app.matter b/examples/light-switch-app/light-switch-common/light-switch-app.matter index 81d3c89077291d..12a208f57d5581 100644 --- a/examples/light-switch-app/light-switch-common/light-switch-app.matter +++ b/examples/light-switch-app/light-switch-common/light-switch-app.matter @@ -37,6 +37,18 @@ client cluster Identify = 3 { readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; + + request struct IdentifyRequest { + INT16U identifyTime = 0; + } + + request struct TriggerEffectRequest { + IdentifyEffectIdentifier effectIdentifier = 0; + IdentifyEffectVariant effectVariant = 1; + } + + command access(invoke: manage) Identify(IdentifyRequest): DefaultSuccess = 0; + command access(invoke: manage) TriggerEffect(TriggerEffectRequest): DefaultSuccess = 64; } server cluster Identify = 3 { @@ -188,25 +200,57 @@ client cluster Scenes = 5 { ExtensionFieldSet extensionFieldSets[] = 4; } + response struct AddSceneResponse = 0 { + ENUM8 status = 0; + group_id groupID = 1; + INT8U sceneID = 2; + } + request struct ViewSceneRequest { group_id groupID = 0; INT8U sceneID = 1; } + response struct ViewSceneResponse = 1 { + ENUM8 status = 0; + group_id groupID = 1; + INT8U sceneID = 2; + optional INT16U transitionTime = 3; + optional CHAR_STRING sceneName = 4; + optional ExtensionFieldSet extensionFieldSets[] = 5; + } + request struct RemoveSceneRequest { group_id groupID = 0; INT8U sceneID = 1; } + response struct RemoveSceneResponse = 2 { + ENUM8 status = 0; + group_id groupID = 1; + INT8U sceneID = 2; + } + request struct RemoveAllScenesRequest { group_id groupID = 0; } + response struct RemoveAllScenesResponse = 3 { + ENUM8 status = 0; + group_id groupID = 1; + } + request struct StoreSceneRequest { group_id groupID = 0; INT8U sceneID = 1; } + response struct StoreSceneResponse = 4 { + ENUM8 status = 0; + group_id groupID = 1; + INT8U sceneID = 2; + } + request struct RecallSceneRequest { group_id groupID = 0; INT8U sceneID = 1; @@ -217,43 +261,53 @@ client cluster Scenes = 5 { group_id groupID = 0; } - response struct AddSceneResponse = 0 { + response struct GetSceneMembershipResponse = 6 { ENUM8 status = 0; - group_id groupID = 1; - INT8U sceneID = 2; + nullable INT8U capacity = 1; + group_id groupID = 2; + optional INT8U sceneList[] = 3; } - response struct ViewSceneResponse = 1 { - ENUM8 status = 0; - group_id groupID = 1; - INT8U sceneID = 2; - optional INT16U transitionTime = 3; - optional CHAR_STRING sceneName = 4; - optional ExtensionFieldSet extensionFieldSets[] = 5; + request struct EnhancedAddSceneRequest { + group_id groupID = 0; + INT8U sceneID = 1; + INT16U transitionTime = 2; + CHAR_STRING sceneName = 3; + ExtensionFieldSet extensionFieldSets[] = 4; } - response struct RemoveSceneResponse = 2 { + response struct EnhancedAddSceneResponse = 64 { ENUM8 status = 0; group_id groupID = 1; INT8U sceneID = 2; } - response struct RemoveAllScenesResponse = 3 { - ENUM8 status = 0; - group_id groupID = 1; + request struct EnhancedViewSceneRequest { + group_id groupID = 0; + INT8U sceneID = 1; } - response struct StoreSceneResponse = 4 { + response struct EnhancedViewSceneResponse = 65 { ENUM8 status = 0; - group_id groupID = 1; + group_Id groupID = 1; INT8U sceneID = 2; + optional INT16U transitionTime = 3; + optional CHAR_STRING sceneName = 4; + optional ExtensionFieldSet extensionFieldSets[] = 5; } - response struct GetSceneMembershipResponse = 6 { + request struct CopySceneRequest { + ScenesCopyMode mode = 0; + group_id groupIdentifierFrom = 1; + INT8U sceneIdentifierFrom = 2; + group_id groupIdentifierTo = 3; + INT8U sceneIdentifierTo = 4; + } + + response struct CopySceneResponse = 66 { ENUM8 status = 0; - nullable INT8U capacity = 1; - group_id groupID = 2; - optional INT8U sceneList[] = 3; + group_Id groupIdentifierFrom = 1; + INT8U sceneIdentifierFrom = 2; } fabric command access(invoke: manage) AddScene(AddSceneRequest): AddSceneResponse = 0; @@ -263,6 +317,9 @@ client cluster Scenes = 5 { fabric command access(invoke: manage) StoreScene(StoreSceneRequest): StoreSceneResponse = 4; fabric command RecallScene(RecallSceneRequest): DefaultSuccess = 5; fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6; + fabric command EnhancedAddScene(EnhancedAddSceneRequest): EnhancedAddSceneResponse = 64; + fabric command EnhancedViewScene(EnhancedViewSceneRequest): EnhancedViewSceneResponse = 65; + fabric command CopyScene(CopySceneRequest): CopySceneResponse = 66; } client cluster OnOff = 6 { @@ -307,9 +364,23 @@ client cluster OnOff = 6 { readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; + request struct OffWithEffectRequest { + OnOffEffectIdentifier effectIdentifier = 0; + int8u effectVariant = 1; + } + + request struct OnWithTimedOffRequest { + OnOffControl onOffControl = 0; + int16u onTime = 1; + int16u offWaitTime = 2; + } + command Off(): DefaultSuccess = 0; command On(): DefaultSuccess = 1; command Toggle(): DefaultSuccess = 2; + command OffWithEffect(OffWithEffectRequest): DefaultSuccess = 64; + command OnWithRecallGlobalScene(): DefaultSuccess = 65; + command OnWithTimedOff(OnWithTimedOffRequest): DefaultSuccess = 66; } server cluster Descriptor = 29 { @@ -505,16 +576,6 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForProvider = 7; } - request struct ApplyUpdateRequestRequest { - OCTET_STRING<32> updateToken = 0; - INT32U newVersion = 1; - } - - request struct NotifyUpdateAppliedRequest { - OCTET_STRING<32> updateToken = 0; - INT32U softwareVersion = 1; - } - response struct QueryImageResponse = 1 { OTAQueryStatus status = 0; optional INT32U delayedActionTime = 1; @@ -526,11 +587,21 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForRequestor = 7; } + request struct ApplyUpdateRequestRequest { + OCTET_STRING<32> updateToken = 0; + INT32U newVersion = 1; + } + response struct ApplyUpdateResponse = 3 { OTAApplyUpdateAction action = 0; INT32U delayedActionTime = 1; } + request struct NotifyUpdateAppliedRequest { + OCTET_STRING<32> updateToken = 0; + INT32U softwareVersion = 1; + } + command QueryImage(QueryImageRequest): QueryImageResponse = 0; command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2; command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4; @@ -1847,6 +1918,30 @@ client cluster ColorControl = 768 { BITMAP8 optionsOverride = 6; } + request struct StopMoveStepRequest { + BITMAP8 optionsMask = 0; + BITMAP8 optionsOverride = 1; + } + + request struct MoveColorTemperatureRequest { + HueMoveMode moveMode = 0; + INT16U rate = 1; + INT16U colorTemperatureMinimumMireds = 2; + INT16U colorTemperatureMaximumMireds = 3; + BITMAP8 optionsMask = 4; + BITMAP8 optionsOverride = 5; + } + + request struct StepColorTemperatureRequest { + HueStepMode stepMode = 0; + INT16U stepSize = 1; + INT16U transitionTime = 2; + INT16U colorTemperatureMinimumMireds = 3; + INT16U colorTemperatureMaximumMireds = 4; + BITMAP8 optionsMask = 5; + BITMAP8 optionsOverride = 6; + } + command MoveToHue(MoveToHueRequest): DefaultSuccess = 0; command MoveHue(MoveHueRequest): DefaultSuccess = 1; command StepHue(StepHueRequest): DefaultSuccess = 2; @@ -1863,6 +1958,9 @@ client cluster ColorControl = 768 { command EnhancedStepHue(EnhancedStepHueRequest): DefaultSuccess = 66; command EnhancedMoveToHueAndSaturation(EnhancedMoveToHueAndSaturationRequest): DefaultSuccess = 67; command ColorLoopSet(ColorLoopSetRequest): DefaultSuccess = 68; + command StopMoveStep(StopMoveStepRequest): DefaultSuccess = 71; + command MoveColorTemperature(MoveColorTemperatureRequest): DefaultSuccess = 75; + command StepColorTemperature(StepColorTemperatureRequest): DefaultSuccess = 76; } endpoint 0 { diff --git a/examples/lighting-app/lighting-common/lighting-app.matter b/examples/lighting-app/lighting-common/lighting-app.matter index 73f3b486a12dbd..1e161ac23a4dd4 100644 --- a/examples/lighting-app/lighting-common/lighting-app.matter +++ b/examples/lighting-app/lighting-common/lighting-app.matter @@ -458,16 +458,6 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForProvider = 7; } - request struct ApplyUpdateRequestRequest { - OCTET_STRING<32> updateToken = 0; - INT32U newVersion = 1; - } - - request struct NotifyUpdateAppliedRequest { - OCTET_STRING<32> updateToken = 0; - INT32U softwareVersion = 1; - } - response struct QueryImageResponse = 1 { OTAQueryStatus status = 0; optional INT32U delayedActionTime = 1; @@ -479,11 +469,21 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForRequestor = 7; } + request struct ApplyUpdateRequestRequest { + OCTET_STRING<32> updateToken = 0; + INT32U newVersion = 1; + } + response struct ApplyUpdateResponse = 3 { OTAApplyUpdateAction action = 0; INT32U delayedActionTime = 1; } + request struct NotifyUpdateAppliedRequest { + OCTET_STRING<32> updateToken = 0; + INT32U softwareVersion = 1; + } + command QueryImage(QueryImageRequest): QueryImageResponse = 0; command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2; command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4; diff --git a/examples/lighting-app/nxp/zap/lighting-on-off.matter b/examples/lighting-app/nxp/zap/lighting-on-off.matter index 0dba423775462d..3500e8495eeea3 100644 --- a/examples/lighting-app/nxp/zap/lighting-on-off.matter +++ b/examples/lighting-app/nxp/zap/lighting-on-off.matter @@ -432,16 +432,6 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForProvider = 7; } - request struct ApplyUpdateRequestRequest { - OCTET_STRING<32> updateToken = 0; - INT32U newVersion = 1; - } - - request struct NotifyUpdateAppliedRequest { - OCTET_STRING<32> updateToken = 0; - INT32U softwareVersion = 1; - } - response struct QueryImageResponse = 1 { OTAQueryStatus status = 0; optional INT32U delayedActionTime = 1; @@ -453,11 +443,21 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForRequestor = 7; } + request struct ApplyUpdateRequestRequest { + OCTET_STRING<32> updateToken = 0; + INT32U newVersion = 1; + } + response struct ApplyUpdateResponse = 3 { OTAApplyUpdateAction action = 0; INT32U delayedActionTime = 1; } + request struct NotifyUpdateAppliedRequest { + OCTET_STRING<32> updateToken = 0; + INT32U softwareVersion = 1; + } + command QueryImage(QueryImageRequest): QueryImageResponse = 0; command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2; command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4; diff --git a/examples/lighting-app/qpg/zap/light.matter b/examples/lighting-app/qpg/zap/light.matter index 27e8f79439d858..9d834376448eef 100644 --- a/examples/lighting-app/qpg/zap/light.matter +++ b/examples/lighting-app/qpg/zap/light.matter @@ -448,16 +448,6 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForProvider = 7; } - request struct ApplyUpdateRequestRequest { - OCTET_STRING<32> updateToken = 0; - INT32U newVersion = 1; - } - - request struct NotifyUpdateAppliedRequest { - OCTET_STRING<32> updateToken = 0; - INT32U softwareVersion = 1; - } - response struct QueryImageResponse = 1 { OTAQueryStatus status = 0; optional INT32U delayedActionTime = 1; @@ -469,11 +459,21 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForRequestor = 7; } + request struct ApplyUpdateRequestRequest { + OCTET_STRING<32> updateToken = 0; + INT32U newVersion = 1; + } + response struct ApplyUpdateResponse = 3 { OTAApplyUpdateAction action = 0; INT32U delayedActionTime = 1; } + request struct NotifyUpdateAppliedRequest { + OCTET_STRING<32> updateToken = 0; + INT32U softwareVersion = 1; + } + command QueryImage(QueryImageRequest): QueryImageResponse = 0; command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2; command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4; diff --git a/examples/lighting-app/silabs/SiWx917/data_model/lighting-wifi-app.matter b/examples/lighting-app/silabs/SiWx917/data_model/lighting-wifi-app.matter index 0ca16845849b6a..6a42b154aac475 100644 --- a/examples/lighting-app/silabs/SiWx917/data_model/lighting-wifi-app.matter +++ b/examples/lighting-app/silabs/SiWx917/data_model/lighting-wifi-app.matter @@ -458,16 +458,6 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForProvider = 7; } - request struct ApplyUpdateRequestRequest { - OCTET_STRING<32> updateToken = 0; - INT32U newVersion = 1; - } - - request struct NotifyUpdateAppliedRequest { - OCTET_STRING<32> updateToken = 0; - INT32U softwareVersion = 1; - } - response struct QueryImageResponse = 1 { OTAQueryStatus status = 0; optional INT32U delayedActionTime = 1; @@ -479,11 +469,21 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForRequestor = 7; } + request struct ApplyUpdateRequestRequest { + OCTET_STRING<32> updateToken = 0; + INT32U newVersion = 1; + } + response struct ApplyUpdateResponse = 3 { OTAApplyUpdateAction action = 0; INT32U delayedActionTime = 1; } + request struct NotifyUpdateAppliedRequest { + OCTET_STRING<32> updateToken = 0; + INT32U softwareVersion = 1; + } + command QueryImage(QueryImageRequest): QueryImageResponse = 0; command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2; command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4; diff --git a/examples/lighting-app/silabs/efr32/data_model/lighting-thread-app.matter b/examples/lighting-app/silabs/efr32/data_model/lighting-thread-app.matter index 34ecc1a58681f0..4d385620740e39 100644 --- a/examples/lighting-app/silabs/efr32/data_model/lighting-thread-app.matter +++ b/examples/lighting-app/silabs/efr32/data_model/lighting-thread-app.matter @@ -458,16 +458,6 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForProvider = 7; } - request struct ApplyUpdateRequestRequest { - OCTET_STRING<32> updateToken = 0; - INT32U newVersion = 1; - } - - request struct NotifyUpdateAppliedRequest { - OCTET_STRING<32> updateToken = 0; - INT32U softwareVersion = 1; - } - response struct QueryImageResponse = 1 { OTAQueryStatus status = 0; optional INT32U delayedActionTime = 1; @@ -479,11 +469,21 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForRequestor = 7; } + request struct ApplyUpdateRequestRequest { + OCTET_STRING<32> updateToken = 0; + INT32U newVersion = 1; + } + response struct ApplyUpdateResponse = 3 { OTAApplyUpdateAction action = 0; INT32U delayedActionTime = 1; } + request struct NotifyUpdateAppliedRequest { + OCTET_STRING<32> updateToken = 0; + INT32U softwareVersion = 1; + } + command QueryImage(QueryImageRequest): QueryImageResponse = 0; command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2; command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4; diff --git a/examples/lighting-app/silabs/efr32/data_model/lighting-wifi-app.matter b/examples/lighting-app/silabs/efr32/data_model/lighting-wifi-app.matter index 0ca16845849b6a..6a42b154aac475 100644 --- a/examples/lighting-app/silabs/efr32/data_model/lighting-wifi-app.matter +++ b/examples/lighting-app/silabs/efr32/data_model/lighting-wifi-app.matter @@ -458,16 +458,6 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForProvider = 7; } - request struct ApplyUpdateRequestRequest { - OCTET_STRING<32> updateToken = 0; - INT32U newVersion = 1; - } - - request struct NotifyUpdateAppliedRequest { - OCTET_STRING<32> updateToken = 0; - INT32U softwareVersion = 1; - } - response struct QueryImageResponse = 1 { OTAQueryStatus status = 0; optional INT32U delayedActionTime = 1; @@ -479,11 +469,21 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForRequestor = 7; } + request struct ApplyUpdateRequestRequest { + OCTET_STRING<32> updateToken = 0; + INT32U newVersion = 1; + } + response struct ApplyUpdateResponse = 3 { OTAApplyUpdateAction action = 0; INT32U delayedActionTime = 1; } + request struct NotifyUpdateAppliedRequest { + OCTET_STRING<32> updateToken = 0; + INT32U softwareVersion = 1; + } + command QueryImage(QueryImageRequest): QueryImageResponse = 0; command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2; command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4; diff --git a/examples/lock-app/lock-common/lock-app.matter b/examples/lock-app/lock-common/lock-app.matter index 3f175fc88bea6a..3eda18cb740025 100644 --- a/examples/lock-app/lock-common/lock-app.matter +++ b/examples/lock-app/lock-common/lock-app.matter @@ -267,16 +267,6 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForProvider = 7; } - request struct ApplyUpdateRequestRequest { - OCTET_STRING<32> updateToken = 0; - INT32U newVersion = 1; - } - - request struct NotifyUpdateAppliedRequest { - OCTET_STRING<32> updateToken = 0; - INT32U softwareVersion = 1; - } - response struct QueryImageResponse = 1 { OTAQueryStatus status = 0; optional INT32U delayedActionTime = 1; @@ -288,11 +278,21 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForRequestor = 7; } + request struct ApplyUpdateRequestRequest { + OCTET_STRING<32> updateToken = 0; + INT32U newVersion = 1; + } + response struct ApplyUpdateResponse = 3 { OTAApplyUpdateAction action = 0; INT32U delayedActionTime = 1; } + request struct NotifyUpdateAppliedRequest { + OCTET_STRING<32> updateToken = 0; + INT32U softwareVersion = 1; + } + command QueryImage(QueryImageRequest): QueryImageResponse = 0; command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2; command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4; diff --git a/examples/lock-app/qpg/zap/lock.matter b/examples/lock-app/qpg/zap/lock.matter index 163de91d88ab64..4ddc5031fcbd35 100644 --- a/examples/lock-app/qpg/zap/lock.matter +++ b/examples/lock-app/qpg/zap/lock.matter @@ -284,16 +284,6 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForProvider = 7; } - request struct ApplyUpdateRequestRequest { - OCTET_STRING<32> updateToken = 0; - INT32U newVersion = 1; - } - - request struct NotifyUpdateAppliedRequest { - OCTET_STRING<32> updateToken = 0; - INT32U softwareVersion = 1; - } - response struct QueryImageResponse = 1 { OTAQueryStatus status = 0; optional INT32U delayedActionTime = 1; @@ -305,11 +295,21 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForRequestor = 7; } + request struct ApplyUpdateRequestRequest { + OCTET_STRING<32> updateToken = 0; + INT32U newVersion = 1; + } + response struct ApplyUpdateResponse = 3 { OTAApplyUpdateAction action = 0; INT32U delayedActionTime = 1; } + request struct NotifyUpdateAppliedRequest { + OCTET_STRING<32> updateToken = 0; + INT32U softwareVersion = 1; + } + command QueryImage(QueryImageRequest): QueryImageResponse = 0; command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2; command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4; diff --git a/examples/log-source-app/log-source-common/log-source-app.matter b/examples/log-source-app/log-source-common/log-source-app.matter index 70fa6cfcede0ac..78d2373c901fff 100644 --- a/examples/log-source-app/log-source-common/log-source-app.matter +++ b/examples/log-source-app/log-source-common/log-source-app.matter @@ -282,6 +282,21 @@ client cluster DiagnosticLogs = 50 { readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; + + request struct RetrieveLogsRequestRequest { + IntentEnum intent = 0; + TransferProtocolEnum requestedProtocol = 1; + optional CHAR_STRING<32> transferFileDesignator = 2; + } + + response struct RetrieveLogsResponse = 1 { + StatusEnum status = 0; + LONG_OCTET_STRING logContent = 1; + optional epoch_us UTCTimeStamp = 2; + optional systime_us timeSinceBoot = 3; + } + + command RetrieveLogsRequest(RetrieveLogsRequestRequest): RetrieveLogsResponse = 0; } server cluster DiagnosticLogs = 50 { diff --git a/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.matter b/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.matter index aa541eeaf95d44..7703e5868d8de9 100644 --- a/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.matter +++ b/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.matter @@ -351,16 +351,6 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForProvider = 7; } - request struct ApplyUpdateRequestRequest { - OCTET_STRING<32> updateToken = 0; - INT32U newVersion = 1; - } - - request struct NotifyUpdateAppliedRequest { - OCTET_STRING<32> updateToken = 0; - INT32U softwareVersion = 1; - } - response struct QueryImageResponse = 1 { OTAQueryStatus status = 0; optional INT32U delayedActionTime = 1; @@ -372,11 +362,21 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForRequestor = 7; } + request struct ApplyUpdateRequestRequest { + OCTET_STRING<32> updateToken = 0; + INT32U newVersion = 1; + } + response struct ApplyUpdateResponse = 3 { OTAApplyUpdateAction action = 0; INT32U delayedActionTime = 1; } + request struct NotifyUpdateAppliedRequest { + OCTET_STRING<32> updateToken = 0; + INT32U softwareVersion = 1; + } + command QueryImage(QueryImageRequest): QueryImageResponse = 0; command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2; command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4; diff --git a/examples/placeholder/linux/apps/app1/config.matter b/examples/placeholder/linux/apps/app1/config.matter index 57b7d1cc115cfc..abc16e1b650363 100644 --- a/examples/placeholder/linux/apps/app1/config.matter +++ b/examples/placeholder/linux/apps/app1/config.matter @@ -1046,12 +1046,27 @@ client cluster GeneralCommissioning = 48 { INT64U breadcrumb = 1; } + response struct ArmFailSafeResponse = 1 { + CommissioningError errorCode = 0; + CHAR_STRING debugText = 1; + } + request struct SetRegulatoryConfigRequest { RegulatoryLocationType newRegulatoryConfig = 0; CHAR_STRING countryCode = 1; INT64U breadcrumb = 2; } + response struct SetRegulatoryConfigResponse = 3 { + CommissioningError errorCode = 0; + CHAR_STRING debugText = 1; + } + + response struct CommissioningCompleteResponse = 5 { + CommissioningError errorCode = 0; + CHAR_STRING debugText = 1; + } + command access(invoke: administer) ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; command access(invoke: administer) SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; fabric command access(invoke: administer) CommissioningComplete(): CommissioningCompleteResponse = 4; @@ -1690,15 +1705,29 @@ client cluster OperationalCredentials = 62 { OCTET_STRING attestationNonce = 0; } + response struct AttestationResponse = 1 { + OCTET_STRING attestationElements = 0; + OCTET_STRING attestationSignature = 1; + } + request struct CertificateChainRequestRequest { CertificateChainTypeEnum certificateType = 0; } + response struct CertificateChainResponse = 3 { + OCTET_STRING certificate = 0; + } + request struct CSRRequestRequest { OCTET_STRING CSRNonce = 0; optional boolean isForUpdateNOC = 1; } + response struct CSRResponse = 5 { + OCTET_STRING NOCSRElements = 0; + OCTET_STRING attestationSignature = 1; + } + request struct AddNOCRequest { OCTET_STRING NOCValue = 0; optional OCTET_STRING ICACValue = 1; @@ -1712,6 +1741,12 @@ client cluster OperationalCredentials = 62 { optional OCTET_STRING ICACValue = 1; } + response struct NOCResponse = 8 { + NodeOperationalCertStatusEnum statusCode = 0; + optional fabric_idx fabricIndex = 1; + optional CHAR_STRING debugText = 2; + } + request struct UpdateFabricLabelRequest { CHAR_STRING<32> label = 0; } diff --git a/examples/placeholder/linux/apps/app2/config.matter b/examples/placeholder/linux/apps/app2/config.matter index 24cf414ac711f7..5762d7aade5d56 100644 --- a/examples/placeholder/linux/apps/app2/config.matter +++ b/examples/placeholder/linux/apps/app2/config.matter @@ -1015,12 +1015,27 @@ client cluster GeneralCommissioning = 48 { INT64U breadcrumb = 1; } + response struct ArmFailSafeResponse = 1 { + CommissioningError errorCode = 0; + CHAR_STRING debugText = 1; + } + request struct SetRegulatoryConfigRequest { RegulatoryLocationType newRegulatoryConfig = 0; CHAR_STRING countryCode = 1; INT64U breadcrumb = 2; } + response struct SetRegulatoryConfigResponse = 3 { + CommissioningError errorCode = 0; + CHAR_STRING debugText = 1; + } + + response struct CommissioningCompleteResponse = 5 { + CommissioningError errorCode = 0; + CHAR_STRING debugText = 1; + } + command access(invoke: administer) ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; command access(invoke: administer) SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; fabric command access(invoke: administer) CommissioningComplete(): CommissioningCompleteResponse = 4; @@ -1659,15 +1674,29 @@ client cluster OperationalCredentials = 62 { OCTET_STRING attestationNonce = 0; } + response struct AttestationResponse = 1 { + OCTET_STRING attestationElements = 0; + OCTET_STRING attestationSignature = 1; + } + request struct CertificateChainRequestRequest { CertificateChainTypeEnum certificateType = 0; } + response struct CertificateChainResponse = 3 { + OCTET_STRING certificate = 0; + } + request struct CSRRequestRequest { OCTET_STRING CSRNonce = 0; optional boolean isForUpdateNOC = 1; } + response struct CSRResponse = 5 { + OCTET_STRING NOCSRElements = 0; + OCTET_STRING attestationSignature = 1; + } + request struct AddNOCRequest { OCTET_STRING NOCValue = 0; optional OCTET_STRING ICACValue = 1; @@ -1681,6 +1710,12 @@ client cluster OperationalCredentials = 62 { optional OCTET_STRING ICACValue = 1; } + response struct NOCResponse = 8 { + NodeOperationalCertStatusEnum statusCode = 0; + optional fabric_idx fabricIndex = 1; + optional CHAR_STRING debugText = 2; + } + request struct UpdateFabricLabelRequest { CHAR_STRING<32> label = 0; } diff --git a/examples/pump-app/pump-common/pump-app.matter b/examples/pump-app/pump-common/pump-app.matter index 00ebcb517d0681..373f97b9009088 100644 --- a/examples/pump-app/pump-common/pump-app.matter +++ b/examples/pump-app/pump-common/pump-app.matter @@ -371,16 +371,6 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForProvider = 7; } - request struct ApplyUpdateRequestRequest { - OCTET_STRING<32> updateToken = 0; - INT32U newVersion = 1; - } - - request struct NotifyUpdateAppliedRequest { - OCTET_STRING<32> updateToken = 0; - INT32U softwareVersion = 1; - } - response struct QueryImageResponse = 1 { OTAQueryStatus status = 0; optional INT32U delayedActionTime = 1; @@ -392,11 +382,21 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForRequestor = 7; } + request struct ApplyUpdateRequestRequest { + OCTET_STRING<32> updateToken = 0; + INT32U newVersion = 1; + } + response struct ApplyUpdateResponse = 3 { OTAApplyUpdateAction action = 0; INT32U delayedActionTime = 1; } + request struct NotifyUpdateAppliedRequest { + OCTET_STRING<32> updateToken = 0; + INT32U softwareVersion = 1; + } + command QueryImage(QueryImageRequest): QueryImageResponse = 0; command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2; command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4; diff --git a/examples/pump-controller-app/pump-controller-common/pump-controller-app.matter b/examples/pump-controller-app/pump-controller-common/pump-controller-app.matter index 28c489b5177d1c..b946e34e98496c 100644 --- a/examples/pump-controller-app/pump-controller-common/pump-controller-app.matter +++ b/examples/pump-controller-app/pump-controller-common/pump-controller-app.matter @@ -82,9 +82,23 @@ client cluster OnOff = 6 { readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; + request struct OffWithEffectRequest { + OnOffEffectIdentifier effectIdentifier = 0; + int8u effectVariant = 1; + } + + request struct OnWithTimedOffRequest { + OnOffControl onOffControl = 0; + int16u onTime = 1; + int16u offWaitTime = 2; + } + command Off(): DefaultSuccess = 0; command On(): DefaultSuccess = 1; command Toggle(): DefaultSuccess = 2; + command OffWithEffect(OffWithEffectRequest): DefaultSuccess = 64; + command OnWithRecallGlobalScene(): DefaultSuccess = 65; + command OnWithTimedOff(OnWithTimedOffRequest): DefaultSuccess = 66; } server cluster Descriptor = 29 { @@ -277,16 +291,6 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForProvider = 7; } - request struct ApplyUpdateRequestRequest { - OCTET_STRING<32> updateToken = 0; - INT32U newVersion = 1; - } - - request struct NotifyUpdateAppliedRequest { - OCTET_STRING<32> updateToken = 0; - INT32U softwareVersion = 1; - } - response struct QueryImageResponse = 1 { OTAQueryStatus status = 0; optional INT32U delayedActionTime = 1; @@ -298,11 +302,21 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForRequestor = 7; } + request struct ApplyUpdateRequestRequest { + OCTET_STRING<32> updateToken = 0; + INT32U newVersion = 1; + } + response struct ApplyUpdateResponse = 3 { OTAApplyUpdateAction action = 0; INT32U delayedActionTime = 1; } + request struct NotifyUpdateAppliedRequest { + OCTET_STRING<32> updateToken = 0; + INT32U softwareVersion = 1; + } + command QueryImage(QueryImageRequest): QueryImageResponse = 0; command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2; command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4; diff --git a/examples/thermostat/thermostat-common/thermostat.matter b/examples/thermostat/thermostat-common/thermostat.matter index 14a7a104b6c205..22f2349c5bbab4 100644 --- a/examples/thermostat/thermostat-common/thermostat.matter +++ b/examples/thermostat/thermostat-common/thermostat.matter @@ -42,7 +42,13 @@ client cluster Identify = 3 { INT16U identifyTime = 0; } + request struct TriggerEffectRequest { + IdentifyEffectIdentifier effectIdentifier = 0; + IdentifyEffectVariant effectVariant = 1; + } + command access(invoke: manage) Identify(IdentifyRequest): DefaultSuccess = 0; + command access(invoke: manage) TriggerEffect(TriggerEffectRequest): DefaultSuccess = 64; } server cluster Identify = 3 { @@ -463,16 +469,6 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForProvider = 7; } - request struct ApplyUpdateRequestRequest { - OCTET_STRING<32> updateToken = 0; - INT32U newVersion = 1; - } - - request struct NotifyUpdateAppliedRequest { - OCTET_STRING<32> updateToken = 0; - INT32U softwareVersion = 1; - } - response struct QueryImageResponse = 1 { OTAQueryStatus status = 0; optional INT32U delayedActionTime = 1; @@ -484,11 +480,21 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForRequestor = 7; } + request struct ApplyUpdateRequestRequest { + OCTET_STRING<32> updateToken = 0; + INT32U newVersion = 1; + } + response struct ApplyUpdateResponse = 3 { OTAApplyUpdateAction action = 0; INT32U delayedActionTime = 1; } + request struct NotifyUpdateAppliedRequest { + OCTET_STRING<32> updateToken = 0; + INT32U softwareVersion = 1; + } + command QueryImage(QueryImageRequest): QueryImageResponse = 0; command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2; command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4; diff --git a/examples/tv-app/tv-common/tv-app.matter b/examples/tv-app/tv-common/tv-app.matter index ad38b6dca1023b..c0a9fbbf6f3c7a 100644 --- a/examples/tv-app/tv-common/tv-app.matter +++ b/examples/tv-app/tv-common/tv-app.matter @@ -503,17 +503,17 @@ client cluster GeneralCommissioning = 48 { INT64U breadcrumb = 1; } + response struct ArmFailSafeResponse = 1 { + CommissioningError errorCode = 0; + CHAR_STRING debugText = 1; + } + request struct SetRegulatoryConfigRequest { RegulatoryLocationType newRegulatoryConfig = 0; CHAR_STRING countryCode = 1; INT64U breadcrumb = 2; } - response struct ArmFailSafeResponse = 1 { - CommissioningError errorCode = 0; - CHAR_STRING debugText = 1; - } - response struct SetRegulatoryConfigResponse = 3 { CommissioningError errorCode = 0; CHAR_STRING debugText = 1; @@ -676,6 +676,13 @@ client cluster NetworkCommissioning = 49 { optional INT64U breadcrumb = 1; } + response struct ScanNetworksResponse = 1 { + NetworkCommissioningStatus networkingStatus = 0; + optional CHAR_STRING debugText = 1; + optional WiFiInterfaceScanResult wiFiScanResults[] = 2; + optional ThreadInterfaceScanResult threadScanResults[] = 3; + } + request struct AddOrUpdateWiFiNetworkRequest { OCTET_STRING<32> ssid = 0; OCTET_STRING<64> credentials = 1; @@ -692,36 +699,29 @@ client cluster NetworkCommissioning = 49 { optional INT64U breadcrumb = 1; } - request struct ConnectNetworkRequest { - OCTET_STRING<32> networkID = 0; - optional INT64U breadcrumb = 1; - } - - request struct ReorderNetworkRequest { - OCTET_STRING<32> networkID = 0; - INT8U networkIndex = 1; - optional INT64U breadcrumb = 2; - } - - response struct ScanNetworksResponse = 1 { - NetworkCommissioningStatus networkingStatus = 0; - optional CHAR_STRING debugText = 1; - optional WiFiInterfaceScanResult wiFiScanResults[] = 2; - optional ThreadInterfaceScanResult threadScanResults[] = 3; - } - response struct NetworkConfigResponse = 5 { NetworkCommissioningStatus networkingStatus = 0; optional CHAR_STRING<512> debugText = 1; optional INT8U networkIndex = 2; } + request struct ConnectNetworkRequest { + OCTET_STRING<32> networkID = 0; + optional INT64U breadcrumb = 1; + } + response struct ConnectNetworkResponse = 7 { NetworkCommissioningStatus networkingStatus = 0; optional CHAR_STRING debugText = 1; nullable INT32S errorValue = 2; } + request struct ReorderNetworkRequest { + OCTET_STRING<32> networkID = 0; + INT8U networkIndex = 1; + optional INT64U breadcrumb = 2; + } + command access(invoke: administer) ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; command access(invoke: administer) AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; command access(invoke: administer) AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; @@ -1398,15 +1398,29 @@ client cluster OperationalCredentials = 62 { OCTET_STRING attestationNonce = 0; } + response struct AttestationResponse = 1 { + OCTET_STRING attestationElements = 0; + OCTET_STRING attestationSignature = 1; + } + request struct CertificateChainRequestRequest { CertificateChainTypeEnum certificateType = 0; } + response struct CertificateChainResponse = 3 { + OCTET_STRING certificate = 0; + } + request struct CSRRequestRequest { OCTET_STRING CSRNonce = 0; optional boolean isForUpdateNOC = 1; } + response struct CSRResponse = 5 { + OCTET_STRING NOCSRElements = 0; + OCTET_STRING attestationSignature = 1; + } + request struct AddNOCRequest { OCTET_STRING NOCValue = 0; optional OCTET_STRING ICACValue = 1; @@ -1415,6 +1429,17 @@ client cluster OperationalCredentials = 62 { VENDOR_ID adminVendorId = 4; } + request struct UpdateNOCRequest { + OCTET_STRING NOCValue = 0; + optional OCTET_STRING ICACValue = 1; + } + + response struct NOCResponse = 8 { + NodeOperationalCertStatusEnum statusCode = 0; + optional fabric_idx fabricIndex = 1; + optional CHAR_STRING debugText = 2; + } + request struct UpdateFabricLabelRequest { CHAR_STRING<32> label = 0; } @@ -1427,30 +1452,11 @@ client cluster OperationalCredentials = 62 { OCTET_STRING rootCACertificate = 0; } - response struct AttestationResponse = 1 { - OCTET_STRING attestationElements = 0; - OCTET_STRING attestationSignature = 1; - } - - response struct CertificateChainResponse = 3 { - OCTET_STRING certificate = 0; - } - - response struct CSRResponse = 5 { - OCTET_STRING NOCSRElements = 0; - OCTET_STRING attestationSignature = 1; - } - - response struct NOCResponse = 8 { - NodeOperationalCertStatusEnum statusCode = 0; - optional fabric_idx fabricIndex = 1; - optional CHAR_STRING debugText = 2; - } - command access(invoke: administer) AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; command access(invoke: administer) CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; command access(invoke: administer) CSRRequest(CSRRequestRequest): CSRResponse = 4; command access(invoke: administer) AddNOC(AddNOCRequest): NOCResponse = 6; + fabric command access(invoke: administer) UpdateNOC(UpdateNOCRequest): NOCResponse = 7; fabric command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; diff --git a/examples/tv-casting-app/tv-casting-common/tv-casting-app.matter b/examples/tv-casting-app/tv-casting-common/tv-casting-app.matter index 7404eab8dddd41..7fbbc2231d56bb 100644 --- a/examples/tv-casting-app/tv-casting-common/tv-casting-app.matter +++ b/examples/tv-casting-app/tv-casting-common/tv-casting-app.matter @@ -267,9 +267,23 @@ client cluster OnOff = 6 { readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; + request struct OffWithEffectRequest { + OnOffEffectIdentifier effectIdentifier = 0; + int8u effectVariant = 1; + } + + request struct OnWithTimedOffRequest { + OnOffControl onOffControl = 0; + int16u onTime = 1; + int16u offWaitTime = 2; + } + command Off(): DefaultSuccess = 0; command On(): DefaultSuccess = 1; command Toggle(): DefaultSuccess = 2; + command OffWithEffect(OffWithEffectRequest): DefaultSuccess = 64; + command OnWithRecallGlobalScene(): DefaultSuccess = 65; + command OnWithTimedOff(OnWithTimedOffRequest): DefaultSuccess = 66; } server cluster OnOff = 6 { @@ -416,6 +430,10 @@ client cluster LevelControl = 8 { LevelControlOptions optionsOverride = 1; } + request struct MoveToClosestFrequencyRequest { + INT16U frequency = 0; + } + command MoveToLevel(MoveToLevelRequest): DefaultSuccess = 0; command Move(MoveRequest): DefaultSuccess = 1; command Step(StepRequest): DefaultSuccess = 2; @@ -424,6 +442,7 @@ client cluster LevelControl = 8 { command MoveWithOnOff(MoveWithOnOffRequest): DefaultSuccess = 5; command StepWithOnOff(StepWithOnOffRequest): DefaultSuccess = 6; command StopWithOnOff(StopWithOnOffRequest): DefaultSuccess = 7; + command MoveToClosestFrequency(MoveToClosestFrequencyRequest): DefaultSuccess = 8; } server cluster LevelControl = 8 { @@ -1852,6 +1871,11 @@ client cluster Channel = 1284 { CHAR_STRING match = 0; } + response struct ChangeChannelResponse = 1 { + ChannelStatusEnum status = 0; + optional CHAR_STRING data = 1; + } + request struct ChangeChannelByNumberRequest { INT16U majorNumber = 0; INT16U minorNumber = 1; @@ -1892,6 +1916,11 @@ client cluster TargetNavigator = 1285 { optional CHAR_STRING data = 1; } + response struct NavigateTargetResponse = 1 { + TargetNavigatorStatusEnum status = 0; + optional CHAR_STRING data = 1; + } + command NavigateTarget(NavigateTargetRequest): NavigateTargetResponse = 0; } @@ -1939,6 +1968,11 @@ client cluster MediaPlayback = 1286 { INT64U deltaPositionMilliseconds = 0; } + response struct PlaybackResponse = 10 { + MediaPlaybackStatusEnum status = 0; + optional CHAR_STRING data = 1; + } + request struct SeekRequest { INT64U position = 0; } @@ -2120,6 +2154,10 @@ client cluster KeypadInput = 1289 { CecKeyCode keyCode = 0; } + response struct SendKeyResponse = 1 { + KeypadInputStatusEnum status = 0; + } + command SendKey(SendKeyRequest): SendKeyResponse = 0; } @@ -2219,6 +2257,11 @@ client cluster ContentLauncher = 1290 { optional BrandingInformationStruct brandingInformation = 2; } + response struct LauncherResponse = 2 { + ContentLaunchStatusEnum status = 0; + optional CHAR_STRING data = 1; + } + command LaunchContent(LaunchContentRequest): LauncherResponse = 0; command LaunchURL(LaunchURLRequest): LauncherResponse = 1; } @@ -2303,6 +2346,11 @@ client cluster ApplicationLauncher = 1292 { optional ApplicationStruct application = 0; } + response struct LauncherResponse = 3 { + ApplicationLauncherStatusEnum status = 0; + optional OCTET_STRING data = 1; + } + command LaunchApp(LaunchAppRequest): LauncherResponse = 0; command StopApp(StopAppRequest): LauncherResponse = 1; command HideApp(HideAppRequest): LauncherResponse = 2; @@ -2344,6 +2392,10 @@ client cluster AccountLogin = 1294 { CHAR_STRING<100> tempAccountIdentifier = 0; } + response struct GetSetupPINResponse = 1 { + CHAR_STRING setupPIN = 0; + } + request struct LoginRequest { CHAR_STRING<100> tempAccountIdentifier = 0; CHAR_STRING setupPIN = 1; diff --git a/examples/window-app/common/window-app.matter b/examples/window-app/common/window-app.matter index 76f47712d12acc..533148aa5ea7f2 100644 --- a/examples/window-app/common/window-app.matter +++ b/examples/window-app/common/window-app.matter @@ -406,16 +406,6 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForProvider = 7; } - request struct ApplyUpdateRequestRequest { - OCTET_STRING<32> updateToken = 0; - INT32U newVersion = 1; - } - - request struct NotifyUpdateAppliedRequest { - OCTET_STRING<32> updateToken = 0; - INT32U softwareVersion = 1; - } - response struct QueryImageResponse = 1 { OTAQueryStatus status = 0; optional INT32U delayedActionTime = 1; @@ -427,11 +417,21 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForRequestor = 7; } + request struct ApplyUpdateRequestRequest { + OCTET_STRING<32> updateToken = 0; + INT32U newVersion = 1; + } + response struct ApplyUpdateResponse = 3 { OTAApplyUpdateAction action = 0; INT32U delayedActionTime = 1; } + request struct NotifyUpdateAppliedRequest { + OCTET_STRING<32> updateToken = 0; + INT32U softwareVersion = 1; + } + command QueryImage(QueryImageRequest): QueryImageResponse = 0; command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2; command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4; diff --git a/src/controller/data_model/controller-clusters.matter b/src/controller/data_model/controller-clusters.matter index e482a876d9f7c9..cb1812c8d8cfe9 100644 --- a/src/controller/data_model/controller-clusters.matter +++ b/src/controller/data_model/controller-clusters.matter @@ -74,44 +74,44 @@ client cluster Groups = 4 { CHAR_STRING groupName = 1; } - request struct ViewGroupRequest { - group_id groupID = 0; - } - - request struct GetGroupMembershipRequest { - group_id groupList[] = 0; - } - - request struct RemoveGroupRequest { - group_id groupID = 0; - } - - request struct AddGroupIfIdentifyingRequest { - group_id groupID = 0; - CHAR_STRING groupName = 1; - } - response struct AddGroupResponse = 0 { ENUM8 status = 0; group_id groupID = 1; } + request struct ViewGroupRequest { + group_id groupID = 0; + } + response struct ViewGroupResponse = 1 { ENUM8 status = 0; group_id groupID = 1; CHAR_STRING groupName = 2; } + request struct GetGroupMembershipRequest { + group_id groupList[] = 0; + } + response struct GetGroupMembershipResponse = 2 { nullable INT8U capacity = 0; group_id groupList[] = 1; } + request struct RemoveGroupRequest { + group_id groupID = 0; + } + response struct RemoveGroupResponse = 3 { ENUM8 status = 0; group_id groupID = 1; } + request struct AddGroupIfIdentifyingRequest { + group_id groupID = 0; + CHAR_STRING groupName = 1; + } + fabric command access(invoke: manage) AddGroup(AddGroupRequest): AddGroupResponse = 0; fabric command ViewGroup(ViewGroupRequest): ViewGroupResponse = 1; fabric command GetGroupMembership(GetGroupMembershipRequest): GetGroupMembershipResponse = 2; @@ -160,25 +160,57 @@ client cluster Scenes = 5 { ExtensionFieldSet extensionFieldSets[] = 4; } + response struct AddSceneResponse = 0 { + ENUM8 status = 0; + group_id groupID = 1; + INT8U sceneID = 2; + } + request struct ViewSceneRequest { group_id groupID = 0; INT8U sceneID = 1; } + response struct ViewSceneResponse = 1 { + ENUM8 status = 0; + group_id groupID = 1; + INT8U sceneID = 2; + optional INT16U transitionTime = 3; + optional CHAR_STRING sceneName = 4; + optional ExtensionFieldSet extensionFieldSets[] = 5; + } + request struct RemoveSceneRequest { group_id groupID = 0; INT8U sceneID = 1; } + response struct RemoveSceneResponse = 2 { + ENUM8 status = 0; + group_id groupID = 1; + INT8U sceneID = 2; + } + request struct RemoveAllScenesRequest { group_id groupID = 0; } + response struct RemoveAllScenesResponse = 3 { + ENUM8 status = 0; + group_id groupID = 1; + } + request struct StoreSceneRequest { group_id groupID = 0; INT8U sceneID = 1; } + response struct StoreSceneResponse = 4 { + ENUM8 status = 0; + group_id groupID = 1; + INT8U sceneID = 2; + } + request struct RecallSceneRequest { group_id groupID = 0; INT8U sceneID = 1; @@ -189,43 +221,53 @@ client cluster Scenes = 5 { group_id groupID = 0; } - response struct AddSceneResponse = 0 { + response struct GetSceneMembershipResponse = 6 { ENUM8 status = 0; - group_id groupID = 1; - INT8U sceneID = 2; + nullable INT8U capacity = 1; + group_id groupID = 2; + optional INT8U sceneList[] = 3; } - response struct ViewSceneResponse = 1 { - ENUM8 status = 0; - group_id groupID = 1; - INT8U sceneID = 2; - optional INT16U transitionTime = 3; - optional CHAR_STRING sceneName = 4; - optional ExtensionFieldSet extensionFieldSets[] = 5; + request struct EnhancedAddSceneRequest { + group_id groupID = 0; + INT8U sceneID = 1; + INT16U transitionTime = 2; + CHAR_STRING sceneName = 3; + ExtensionFieldSet extensionFieldSets[] = 4; } - response struct RemoveSceneResponse = 2 { + response struct EnhancedAddSceneResponse = 64 { ENUM8 status = 0; group_id groupID = 1; INT8U sceneID = 2; } - response struct RemoveAllScenesResponse = 3 { - ENUM8 status = 0; - group_id groupID = 1; + request struct EnhancedViewSceneRequest { + group_id groupID = 0; + INT8U sceneID = 1; } - response struct StoreSceneResponse = 4 { + response struct EnhancedViewSceneResponse = 65 { ENUM8 status = 0; - group_id groupID = 1; + group_Id groupID = 1; INT8U sceneID = 2; + optional INT16U transitionTime = 3; + optional CHAR_STRING sceneName = 4; + optional ExtensionFieldSet extensionFieldSets[] = 5; } - response struct GetSceneMembershipResponse = 6 { + request struct CopySceneRequest { + ScenesCopyMode mode = 0; + group_id groupIdentifierFrom = 1; + INT8U sceneIdentifierFrom = 2; + group_id groupIdentifierTo = 3; + INT8U sceneIdentifierTo = 4; + } + + response struct CopySceneResponse = 66 { ENUM8 status = 0; - nullable INT8U capacity = 1; - group_id groupID = 2; - optional INT8U sceneList[] = 3; + group_Id groupIdentifierFrom = 1; + INT8U sceneIdentifierFrom = 2; } fabric command access(invoke: manage) AddScene(AddSceneRequest): AddSceneResponse = 0; @@ -235,6 +277,9 @@ client cluster Scenes = 5 { fabric command access(invoke: manage) StoreScene(StoreSceneRequest): StoreSceneResponse = 4; fabric command RecallScene(RecallSceneRequest): DefaultSuccess = 5; fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6; + fabric command EnhancedAddScene(EnhancedAddSceneRequest): EnhancedAddSceneResponse = 64; + fabric command EnhancedViewScene(EnhancedViewSceneRequest): EnhancedViewSceneResponse = 65; + fabric command CopyScene(CopySceneRequest): CopySceneResponse = 66; } client cluster OnOff = 6 { @@ -406,6 +451,10 @@ client cluster LevelControl = 8 { LevelControlOptions optionsOverride = 1; } + request struct MoveToClosestFrequencyRequest { + INT16U frequency = 0; + } + command MoveToLevel(MoveToLevelRequest): DefaultSuccess = 0; command Move(MoveRequest): DefaultSuccess = 1; command Step(StepRequest): DefaultSuccess = 2; @@ -414,6 +463,7 @@ client cluster LevelControl = 8 { command MoveWithOnOff(MoveWithOnOffRequest): DefaultSuccess = 5; command StepWithOnOff(StepWithOnOffRequest): DefaultSuccess = 6; command StopWithOnOff(StopWithOnOffRequest): DefaultSuccess = 7; + command MoveToClosestFrequency(MoveToClosestFrequencyRequest): DefaultSuccess = 8; } client cluster BinaryInputBasic = 15 { @@ -748,6 +798,8 @@ client cluster BasicInformation = 40 { readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; + + command MfgSpecificPing(): DefaultSuccess = 0; } client cluster OtaSoftwareUpdateProvider = 41 { @@ -789,16 +841,6 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForProvider = 7; } - request struct ApplyUpdateRequestRequest { - OCTET_STRING<32> updateToken = 0; - INT32U newVersion = 1; - } - - request struct NotifyUpdateAppliedRequest { - OCTET_STRING<32> updateToken = 0; - INT32U softwareVersion = 1; - } - response struct QueryImageResponse = 1 { OTAQueryStatus status = 0; optional INT32U delayedActionTime = 1; @@ -810,11 +852,21 @@ client cluster OtaSoftwareUpdateProvider = 41 { optional OCTET_STRING<512> metadataForRequestor = 7; } + request struct ApplyUpdateRequestRequest { + OCTET_STRING<32> updateToken = 0; + INT32U newVersion = 1; + } + response struct ApplyUpdateResponse = 3 { OTAApplyUpdateAction action = 0; INT32U delayedActionTime = 1; } + request struct NotifyUpdateAppliedRequest { + OCTET_STRING<32> updateToken = 0; + INT32U softwareVersion = 1; + } + command QueryImage(QueryImageRequest): QueryImageResponse = 0; command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2; command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4; @@ -1244,17 +1296,17 @@ client cluster GeneralCommissioning = 48 { INT64U breadcrumb = 1; } + response struct ArmFailSafeResponse = 1 { + CommissioningError errorCode = 0; + CHAR_STRING debugText = 1; + } + request struct SetRegulatoryConfigRequest { RegulatoryLocationType newRegulatoryConfig = 0; CHAR_STRING countryCode = 1; INT64U breadcrumb = 2; } - response struct ArmFailSafeResponse = 1 { - CommissioningError errorCode = 0; - CHAR_STRING debugText = 1; - } - response struct SetRegulatoryConfigResponse = 3 { CommissioningError errorCode = 0; CHAR_STRING debugText = 1; @@ -1354,6 +1406,13 @@ client cluster NetworkCommissioning = 49 { optional INT64U breadcrumb = 1; } + response struct ScanNetworksResponse = 1 { + NetworkCommissioningStatus networkingStatus = 0; + optional CHAR_STRING debugText = 1; + optional WiFiInterfaceScanResult wiFiScanResults[] = 2; + optional ThreadInterfaceScanResult threadScanResults[] = 3; + } + request struct AddOrUpdateWiFiNetworkRequest { OCTET_STRING<32> ssid = 0; OCTET_STRING<64> credentials = 1; @@ -1370,36 +1429,29 @@ client cluster NetworkCommissioning = 49 { optional INT64U breadcrumb = 1; } - request struct ConnectNetworkRequest { - OCTET_STRING<32> networkID = 0; - optional INT64U breadcrumb = 1; - } - - request struct ReorderNetworkRequest { - OCTET_STRING<32> networkID = 0; - INT8U networkIndex = 1; - optional INT64U breadcrumb = 2; - } - - response struct ScanNetworksResponse = 1 { - NetworkCommissioningStatus networkingStatus = 0; - optional CHAR_STRING debugText = 1; - optional WiFiInterfaceScanResult wiFiScanResults[] = 2; - optional ThreadInterfaceScanResult threadScanResults[] = 3; - } - response struct NetworkConfigResponse = 5 { NetworkCommissioningStatus networkingStatus = 0; optional CHAR_STRING<512> debugText = 1; optional INT8U networkIndex = 2; } + request struct ConnectNetworkRequest { + OCTET_STRING<32> networkID = 0; + optional INT64U breadcrumb = 1; + } + response struct ConnectNetworkResponse = 7 { NetworkCommissioningStatus networkingStatus = 0; optional CHAR_STRING debugText = 1; nullable INT32S errorValue = 2; } + request struct ReorderNetworkRequest { + OCTET_STRING<32> networkID = 0; + INT8U networkIndex = 1; + optional INT64U breadcrumb = 2; + } + command access(invoke: administer) ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; command access(invoke: administer) AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; command access(invoke: administer) AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; @@ -2039,15 +2091,29 @@ client cluster OperationalCredentials = 62 { OCTET_STRING attestationNonce = 0; } + response struct AttestationResponse = 1 { + OCTET_STRING attestationElements = 0; + OCTET_STRING attestationSignature = 1; + } + request struct CertificateChainRequestRequest { CertificateChainTypeEnum certificateType = 0; } + response struct CertificateChainResponse = 3 { + OCTET_STRING certificate = 0; + } + request struct CSRRequestRequest { OCTET_STRING CSRNonce = 0; optional boolean isForUpdateNOC = 1; } + response struct CSRResponse = 5 { + OCTET_STRING NOCSRElements = 0; + OCTET_STRING attestationSignature = 1; + } + request struct AddNOCRequest { OCTET_STRING NOCValue = 0; optional OCTET_STRING ICACValue = 1; @@ -2061,6 +2127,12 @@ client cluster OperationalCredentials = 62 { optional OCTET_STRING ICACValue = 1; } + response struct NOCResponse = 8 { + NodeOperationalCertStatusEnum statusCode = 0; + optional fabric_idx fabricIndex = 1; + optional CHAR_STRING debugText = 2; + } + request struct UpdateFabricLabelRequest { CHAR_STRING<32> label = 0; } @@ -2073,26 +2145,6 @@ client cluster OperationalCredentials = 62 { OCTET_STRING rootCACertificate = 0; } - response struct AttestationResponse = 1 { - OCTET_STRING attestationElements = 0; - OCTET_STRING attestationSignature = 1; - } - - response struct CertificateChainResponse = 3 { - OCTET_STRING certificate = 0; - } - - response struct CSRResponse = 5 { - OCTET_STRING NOCSRElements = 0; - OCTET_STRING attestationSignature = 1; - } - - response struct NOCResponse = 8 { - NodeOperationalCertStatusEnum statusCode = 0; - optional fabric_idx fabricIndex = 1; - optional CHAR_STRING debugText = 2; - } - command access(invoke: administer) AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; command access(invoke: administer) CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; command access(invoke: administer) CSRRequest(CSRRequestRequest): CSRResponse = 4; @@ -2152,6 +2204,10 @@ client cluster GroupKeyManagement = 63 { INT16U groupKeySetID = 0; } + response struct KeySetReadResponse = 2 { + GroupKeySetStruct groupKeySet = 0; + } + request struct KeySetRemoveRequest { INT16U groupKeySetID = 0; } @@ -2160,10 +2216,6 @@ client cluster GroupKeyManagement = 63 { INT16U groupKeySetIDs[] = 0; } - response struct KeySetReadResponse = 2 { - GroupKeySetStruct groupKeySet = 0; - } - response struct KeySetReadAllIndicesResponse = 5 { INT16U groupKeySetIDs[] = 0; } @@ -2689,6 +2741,17 @@ client cluster DoorLock = 257 { INT16U userIndex = 1; } + response struct GetWeekDayScheduleResponse = 12 { + INT8U weekDayIndex = 0; + INT16U userIndex = 1; + DlStatus status = 2; + optional DaysMaskMap daysMask = 3; + optional INT8U startHour = 4; + optional INT8U startMinute = 5; + optional INT8U endHour = 6; + optional INT8U endMinute = 7; + } + request struct ClearWeekDayScheduleRequest { INT8U weekDayIndex = 0; INT16U userIndex = 1; @@ -2706,6 +2769,14 @@ client cluster DoorLock = 257 { INT16U userIndex = 1; } + response struct GetYearDayScheduleResponse = 15 { + INT8U yearDayIndex = 0; + INT16U userIndex = 1; + DlStatus status = 2; + optional epoch_s localStartTime = 3; + optional epoch_s localEndTime = 4; + } + request struct ClearYearDayScheduleRequest { INT8U yearDayIndex = 0; INT16U userIndex = 1; @@ -2722,6 +2793,14 @@ client cluster DoorLock = 257 { INT8U holidayIndex = 0; } + response struct GetHolidayScheduleResponse = 18 { + INT8U holidayIndex = 0; + DlStatus status = 1; + optional epoch_s localStartTime = 2; + optional epoch_s localEndTime = 3; + optional OperatingModeEnum operatingMode = 4; + } + request struct ClearHolidayScheduleRequest { INT8U holidayIndex = 0; } @@ -2740,54 +2819,6 @@ client cluster DoorLock = 257 { INT16U userIndex = 0; } - request struct ClearUserRequest { - INT16U userIndex = 0; - } - - request struct SetCredentialRequest { - DataOperationTypeEnum operationType = 0; - CredentialStruct credential = 1; - LONG_OCTET_STRING credentialData = 2; - nullable INT16U userIndex = 3; - nullable UserStatusEnum userStatus = 4; - nullable UserTypeEnum userType = 5; - } - - request struct GetCredentialStatusRequest { - CredentialStruct credential = 0; - } - - request struct ClearCredentialRequest { - nullable CredentialStruct credential = 0; - } - - response struct GetWeekDayScheduleResponse = 12 { - INT8U weekDayIndex = 0; - INT16U userIndex = 1; - DlStatus status = 2; - optional DaysMaskMap daysMask = 3; - optional INT8U startHour = 4; - optional INT8U startMinute = 5; - optional INT8U endHour = 6; - optional INT8U endMinute = 7; - } - - response struct GetYearDayScheduleResponse = 15 { - INT8U yearDayIndex = 0; - INT16U userIndex = 1; - DlStatus status = 2; - optional epoch_s localStartTime = 3; - optional epoch_s localEndTime = 4; - } - - response struct GetHolidayScheduleResponse = 18 { - INT8U holidayIndex = 0; - DlStatus status = 1; - optional epoch_s localStartTime = 2; - optional epoch_s localEndTime = 3; - optional OperatingModeEnum operatingMode = 4; - } - response struct GetUserResponse = 28 { INT16U userIndex = 0; nullable CHAR_STRING userName = 1; @@ -2801,12 +2832,29 @@ client cluster DoorLock = 257 { nullable INT16U nextUserIndex = 9; } + request struct ClearUserRequest { + INT16U userIndex = 0; + } + + request struct SetCredentialRequest { + DataOperationTypeEnum operationType = 0; + CredentialStruct credential = 1; + LONG_OCTET_STRING credentialData = 2; + nullable INT16U userIndex = 3; + nullable UserStatusEnum userStatus = 4; + nullable UserTypeEnum userType = 5; + } + response struct SetCredentialResponse = 35 { DlStatus status = 0; nullable INT16U userIndex = 1; nullable INT16U nextCredentialIndex = 2; } + request struct GetCredentialStatusRequest { + CredentialStruct credential = 0; + } + response struct GetCredentialStatusResponse = 37 { boolean credentialExists = 0; nullable INT16U userIndex = 1; @@ -2815,6 +2863,10 @@ client cluster DoorLock = 257 { nullable INT16U nextCredentialIndex = 4; } + request struct ClearCredentialRequest { + nullable CredentialStruct credential = 0; + } + timed command LockDoor(LockDoorRequest): DefaultSuccess = 0; timed command UnlockDoor(UnlockDoorRequest): DefaultSuccess = 1; timed command UnlockWithTimeout(UnlockWithTimeoutRequest): DefaultSuccess = 3; @@ -3251,25 +3303,25 @@ client cluster Thermostat = 513 { INT8S amount = 1; } - request struct SetWeeklyScheduleRequest { + response struct GetWeeklyScheduleResponse = 0 { INT8U numberOfTransitionsForSequence = 0; DayOfWeek dayOfWeekForSequence = 1; ModeForSequence modeForSequence = 2; ThermostatScheduleTransition transitions[] = 3; } - request struct GetWeeklyScheduleRequest { - DayOfWeek daysToReturn = 0; - ModeForSequence modeToReturn = 1; - } - - response struct GetWeeklyScheduleResponse = 0 { + request struct SetWeeklyScheduleRequest { INT8U numberOfTransitionsForSequence = 0; DayOfWeek dayOfWeekForSequence = 1; ModeForSequence modeForSequence = 2; ThermostatScheduleTransition transitions[] = 3; } + request struct GetWeeklyScheduleRequest { + DayOfWeek daysToReturn = 0; + ModeForSequence modeToReturn = 1; + } + command SetpointRaiseLower(SetpointRaiseLowerRequest): DefaultSuccess = 0; command access(invoke: manage) SetWeeklySchedule(SetWeeklyScheduleRequest): DefaultSuccess = 1; command GetWeeklySchedule(GetWeeklyScheduleRequest): GetWeeklyScheduleResponse = 2; @@ -3844,6 +3896,11 @@ client cluster Channel = 1284 { CHAR_STRING match = 0; } + response struct ChangeChannelResponse = 1 { + ChannelStatusEnum status = 0; + optional CHAR_STRING data = 1; + } + request struct ChangeChannelByNumberRequest { INT16U majorNumber = 0; INT16U minorNumber = 1; @@ -3853,11 +3910,6 @@ client cluster Channel = 1284 { INT16U count = 0; } - response struct ChangeChannelResponse = 1 { - ChannelStatusEnum status = 0; - optional CHAR_STRING data = 1; - } - command ChangeChannel(ChangeChannelRequest): ChangeChannelResponse = 0; command ChangeChannelByNumber(ChangeChannelByNumberRequest): DefaultSuccess = 2; command SkipChannel(SkipChannelRequest): DefaultSuccess = 3; @@ -3946,15 +3998,15 @@ client cluster MediaPlayback = 1286 { INT64U deltaPositionMilliseconds = 0; } - request struct SeekRequest { - INT64U position = 0; - } - response struct PlaybackResponse = 10 { MediaPlaybackStatusEnum status = 0; optional CHAR_STRING data = 1; } + request struct SeekRequest { + INT64U position = 0; + } + command Play(): PlaybackResponse = 0; command Pause(): PlaybackResponse = 1; command Stop(): PlaybackResponse = 2; @@ -4381,15 +4433,15 @@ client cluster AccountLogin = 1294 { CHAR_STRING<100> tempAccountIdentifier = 0; } + response struct GetSetupPINResponse = 1 { + CHAR_STRING setupPIN = 0; + } + request struct LoginRequest { CHAR_STRING<100> tempAccountIdentifier = 0; CHAR_STRING setupPIN = 1; } - response struct GetSetupPINResponse = 1 { - CHAR_STRING setupPIN = 0; - } - timed command GetSetupPIN(GetSetupPINRequest): GetSetupPINResponse = 0; timed command Login(LoginRequest): DefaultSuccess = 2; timed command Logout(): DefaultSuccess = 3; @@ -4530,6 +4582,31 @@ client cluster ElectricalMeasurement = 2820 { readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; + + response struct GetProfileInfoResponseCommand = 0 { + INT8U profileCount = 0; + ENUM8 profileIntervalPeriod = 1; + INT8U maxNumberOfIntervals = 2; + INT16U listOfAttributes[] = 3; + } + + response struct GetMeasurementProfileResponseCommand = 1 { + INT32U startTime = 0; + ENUM8 status = 1; + ENUM8 profileIntervalPeriod = 2; + INT8U numberOfIntervalsDelivered = 3; + INT16U attributeId = 4; + INT8U intervals[] = 5; + } + + request struct GetMeasurementProfileCommandRequest { + INT16U attributeId = 0; + INT32U startTime = 1; + ENUM8 numberOfIntervals = 2; + } + + command GetProfileInfoCommand(): DefaultSuccess = 0; + command GetMeasurementProfileCommand(GetMeasurementProfileCommandRequest): DefaultSuccess = 1; } client cluster ClientMonitoring = 4166 { @@ -4562,6 +4639,7 @@ client cluster ClientMonitoring = 4166 { command access(invoke: manage) RegisterClientMonitoring(RegisterClientMonitoringRequest): DefaultSuccess = 0; command access(invoke: manage) UnregisterClientMonitoring(UnregisterClientMonitoringRequest): DefaultSuccess = 1; + command access(invoke: manage) StayAwakeRequest(): DefaultSuccess = 2; } client cluster UnitTesting = 4294048773 { @@ -4766,31 +4844,128 @@ client cluster UnitTesting = 4294048773 { readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; + response struct TestSpecificResponse = 0 { + INT8U returnValue = 0; + } + + response struct TestAddArgumentsResponse = 1 { + INT8U returnValue = 0; + } + + response struct TestSimpleArgumentResponse = 2 { + BOOLEAN returnValue = 0; + } + + response struct TestStructArrayArgumentResponse = 3 { + NestedStructList arg1[] = 0; + SimpleStruct arg2[] = 1; + SimpleEnum arg3[] = 2; + BOOLEAN arg4[] = 3; + SimpleEnum arg5 = 4; + BOOLEAN arg6 = 5; + } + request struct TestAddArgumentsRequest { INT8U arg1 = 0; INT8U arg2 = 1; } + response struct TestListInt8UReverseResponse = 4 { + INT8U arg1[] = 0; + } + + request struct TestSimpleArgumentRequestRequest { + BOOLEAN arg1 = 0; + } + + response struct TestEnumsResponse = 5 { + vendor_id arg1 = 0; + SimpleEnum arg2 = 1; + } + + request struct TestStructArrayArgumentRequestRequest { + NestedStructList arg1[] = 0; + SimpleStruct arg2[] = 1; + SimpleEnum arg3[] = 2; + BOOLEAN arg4[] = 3; + SimpleEnum arg5 = 4; + BOOLEAN arg6 = 5; + } + + response struct TestNullableOptionalResponse = 6 { + BOOLEAN wasPresent = 0; + optional BOOLEAN wasNull = 1; + optional INT8U value = 2; + optional nullable INT8U originalValue = 3; + } + request struct TestStructArgumentRequestRequest { SimpleStruct arg1 = 0; } + response struct TestComplexNullableOptionalResponse = 7 { + BOOLEAN nullableIntWasNull = 0; + optional INT16U nullableIntValue = 1; + BOOLEAN optionalIntWasPresent = 2; + optional INT16U optionalIntValue = 3; + BOOLEAN nullableOptionalIntWasPresent = 4; + optional BOOLEAN nullableOptionalIntWasNull = 5; + optional INT16U nullableOptionalIntValue = 6; + BOOLEAN nullableStringWasNull = 7; + optional CHAR_STRING nullableStringValue = 8; + BOOLEAN optionalStringWasPresent = 9; + optional CHAR_STRING optionalStringValue = 10; + BOOLEAN nullableOptionalStringWasPresent = 11; + optional BOOLEAN nullableOptionalStringWasNull = 12; + optional CHAR_STRING nullableOptionalStringValue = 13; + BOOLEAN nullableStructWasNull = 14; + optional SimpleStruct nullableStructValue = 15; + BOOLEAN optionalStructWasPresent = 16; + optional SimpleStruct optionalStructValue = 17; + BOOLEAN nullableOptionalStructWasPresent = 18; + optional BOOLEAN nullableOptionalStructWasNull = 19; + optional SimpleStruct nullableOptionalStructValue = 20; + BOOLEAN nullableListWasNull = 21; + optional SimpleEnum nullableListValue[] = 22; + BOOLEAN optionalListWasPresent = 23; + optional SimpleEnum optionalListValue[] = 24; + BOOLEAN nullableOptionalListWasPresent = 25; + optional BOOLEAN nullableOptionalListWasNull = 26; + optional SimpleEnum nullableOptionalListValue[] = 27; + } + request struct TestNestedStructArgumentRequestRequest { NestedStruct arg1 = 0; } + response struct BooleanResponse = 8 { + BOOLEAN value = 0; + } + request struct TestListStructArgumentRequestRequest { SimpleStruct arg1[] = 0; } + response struct SimpleStructResponse = 9 { + SimpleStruct arg1 = 0; + } + request struct TestListInt8UArgumentRequestRequest { INT8U arg1[] = 0; } + response struct TestEmitTestEventResponse = 10 { + INT64U value = 0; + } + request struct TestNestedStructListArgumentRequestRequest { NestedStructList arg1 = 0; } + response struct TestEmitTestFabricScopedEventResponse = 11 { + INT64U value = 0; + } + request struct TestListNestedStructListArgumentRequestRequest { NestedStructList arg1[] = 0; } @@ -4808,6 +4983,21 @@ client cluster UnitTesting = 4294048773 { optional nullable INT8U arg1 = 0; } + request struct TestComplexNullableOptionalRequestRequest { + nullable INT16U nullableInt = 0; + optional INT16U optionalInt = 1; + optional nullable INT16U nullableOptionalInt = 2; + nullable CHAR_STRING nullableString = 3; + optional CHAR_STRING optionalString = 4; + optional nullable CHAR_STRING nullableOptionalString = 5; + nullable SimpleStruct nullableStruct = 6; + optional SimpleStruct optionalStruct = 7; + optional nullable SimpleStruct nullableOptionalStruct = 8; + nullable SimpleEnum nullableList[] = 9; + optional SimpleEnum optionalList[] = 10; + optional nullable SimpleEnum nullableOptionalList[] = 11; + } + request struct SimpleStructEchoRequestRequest { SimpleStruct arg1 = 0; } @@ -4822,40 +5012,8 @@ client cluster UnitTesting = 4294048773 { BOOLEAN arg3 = 2; } - response struct TestSpecificResponse = 0 { - INT8U returnValue = 0; - } - - response struct TestAddArgumentsResponse = 1 { - INT8U returnValue = 0; - } - - response struct TestListInt8UReverseResponse = 4 { - INT8U arg1[] = 0; - } - - response struct TestEnumsResponse = 5 { - vendor_id arg1 = 0; - SimpleEnum arg2 = 1; - } - - response struct TestNullableOptionalResponse = 6 { - BOOLEAN wasPresent = 0; - optional BOOLEAN wasNull = 1; - optional INT8U value = 2; - optional nullable INT8U originalValue = 3; - } - - response struct BooleanResponse = 8 { - BOOLEAN value = 0; - } - - response struct SimpleStructResponse = 9 { - SimpleStruct arg1 = 0; - } - - response struct TestEmitTestEventResponse = 10 { - INT64U value = 0; + request struct TestEmitTestFabricScopedEventRequestRequest { + INT8U arg1 = 0; } command Test(): DefaultSuccess = 0; @@ -4863,6 +5021,8 @@ client cluster UnitTesting = 4294048773 { command TestSpecific(): TestSpecificResponse = 2; command TestUnknownCommand(): DefaultSuccess = 3; command TestAddArguments(TestAddArgumentsRequest): TestAddArgumentsResponse = 4; + command TestSimpleArgumentRequest(TestSimpleArgumentRequestRequest): TestSimpleArgumentResponse = 5; + command TestStructArrayArgumentRequest(TestStructArrayArgumentRequestRequest): TestStructArrayArgumentResponse = 6; command TestStructArgumentRequest(TestStructArgumentRequestRequest): BooleanResponse = 7; command TestNestedStructArgumentRequest(TestNestedStructArgumentRequestRequest): BooleanResponse = 8; command TestListStructArgumentRequest(TestListStructArgumentRequestRequest): BooleanResponse = 9; @@ -4872,10 +5032,12 @@ client cluster UnitTesting = 4294048773 { command TestListInt8UReverseRequest(TestListInt8UReverseRequestRequest): TestListInt8UReverseResponse = 13; command TestEnumsRequest(TestEnumsRequestRequest): TestEnumsResponse = 14; command TestNullableOptionalRequest(TestNullableOptionalRequestRequest): TestNullableOptionalResponse = 15; + command TestComplexNullableOptionalRequest(TestComplexNullableOptionalRequestRequest): TestComplexNullableOptionalResponse = 16; command SimpleStructEchoRequest(SimpleStructEchoRequestRequest): SimpleStructResponse = 17; timed command TimedInvokeRequest(): DefaultSuccess = 18; command TestSimpleOptionalArgumentRequest(TestSimpleOptionalArgumentRequestRequest): DefaultSuccess = 19; command TestEmitTestEventRequest(TestEmitTestEventRequestRequest): TestEmitTestEventResponse = 20; + command TestEmitTestFabricScopedEventRequest(TestEmitTestFabricScopedEventRequestRequest): TestEmitTestFabricScopedEventResponse = 21; } endpoint 1 { From 71b6a806817743d6ad140b2efe21c8d99e472b01 Mon Sep 17 00:00:00 2001 From: Andrei Litvin Date: Mon, 27 Mar 2023 17:14:48 -0400 Subject: [PATCH 3/8] Use zap 2023.03.27 to pick up clusterName and responseName access --- integrations/docker/images/chip-cert-bins/Dockerfile | 2 +- scripts/setup/zap.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/integrations/docker/images/chip-cert-bins/Dockerfile b/integrations/docker/images/chip-cert-bins/Dockerfile index cef22b4e632eea..94a650d139ae0b 100644 --- a/integrations/docker/images/chip-cert-bins/Dockerfile +++ b/integrations/docker/images/chip-cert-bins/Dockerfile @@ -7,7 +7,7 @@ ARG COMMITHASH=7b99e6399c6069037c613782d78132c69b9dcabb # ZAP Development install, so that it runs on both x64 and arm64 # Generally this should match with the ZAP version that is used for codegen within the # specified SHA -ARG ZAP_VERSION=v2023.03.23-nightly +ARG ZAP_VERSION=v2023.03.27-nightly # Ensure TARGETPLATFORM is set RUN case ${TARGETPLATFORM} in \ diff --git a/scripts/setup/zap.json b/scripts/setup/zap.json index a6a2a4c7d16e95..c27c39a1674dae 100644 --- a/scripts/setup/zap.json +++ b/scripts/setup/zap.json @@ -8,7 +8,7 @@ "mac-arm64", "windows-amd64" ], - "tags": ["version:2@v2023.03.23-nightly.1"] + "tags": ["version:2@v2023.03.27-nightly.1"] } ] } From d57f5571e4dbe2b274c4750aaa50b47929f53b87 Mon Sep 17 00:00:00 2001 From: Andrei Litvin Date: Mon, 27 Mar 2023 19:23:11 -0400 Subject: [PATCH 4/8] Update minimum zap version --- scripts/tools/zap/zap_execution.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/tools/zap/zap_execution.py b/scripts/tools/zap/zap_execution.py index 0a47b95160cfc3..6e5fbab32fe7e2 100644 --- a/scripts/tools/zap/zap_execution.py +++ b/scripts/tools/zap/zap_execution.py @@ -23,7 +23,7 @@ # Use scripts/tools/zap/version_update.py to manage ZAP versioning as many # files may need updating for versions # -MIN_ZAP_VERSION = '2023.3.23' +MIN_ZAP_VERSION = '2023.3.27' class ZapTool: From d6339af37a81ea4ea03e09860b962345ecd33d2f Mon Sep 17 00:00:00 2001 From: Andrei Litvin Date: Tue, 28 Mar 2023 13:20:05 -0400 Subject: [PATCH 5/8] Start using zcl_commands_source_client instead of chip_cluster_responses --- .../java/templates/CHIPInvokeCallbacks.zapt | 18 +- .../java/zap-generated/CHIPInvokeCallbacks.h | 2441 +++++++++++++++-- 2 files changed, 2210 insertions(+), 249 deletions(-) diff --git a/src/controller/java/templates/CHIPInvokeCallbacks.zapt b/src/controller/java/templates/CHIPInvokeCallbacks.zapt index d0058b4435a506..00f8aaf982676e 100644 --- a/src/controller/java/templates/CHIPInvokeCallbacks.zapt +++ b/src/controller/java/templates/CHIPInvokeCallbacks.zapt @@ -8,22 +8,22 @@ namespace chip { -{{#chip_client_clusters}} -{{#chip_cluster_responses}} -class CHIP{{asUpperCamelCase parent.name}}Cluster{{asUpperCamelCase name}}Callback : public Callback::Callback +{{#all_user_clusters}} + {{#zcl_commands_source_client}} +class CHIP{{asUpperCamelCase parent.name}}Cluster{{asUpperCamelCase commandName}}Callback : public Callback::Callback { public: - CHIP{{asUpperCamelCase parent.name}}Cluster{{asUpperCamelCase name}}Callback(jobject javaCallback); + CHIP{{asUpperCamelCase parent.name}}Cluster{{asUpperCamelCase commandName}}Callback(jobject javaCallback); - ~CHIP{{asUpperCamelCase parent.name}}Cluster{{asUpperCamelCase name}}Callback(); + ~CHIP{{asUpperCamelCase parent.name}}Cluster{{asUpperCamelCase commandName}}Callback(); + + static void CallbackFn(void * context, const chip::app::Clusters::{{asUpperCamelCase parent.name}}::Commands::{{asUpperCamelCase commandName}}::DecodableType & data); - static void CallbackFn(void * context, const chip::app::Clusters::{{asUpperCamelCase parent.name}}::Commands::{{asUpperCamelCase name}}::DecodableType & data); - private: jobject javaCallbackRef; }; -{{/chip_cluster_responses}} -{{/chip_client_clusters}} + {{/zcl_commands_source_client}} +{{/all_user_clusters}} } // namespace chip {{/if}} diff --git a/src/controller/java/zap-generated/CHIPInvokeCallbacks.h b/src/controller/java/zap-generated/CHIPInvokeCallbacks.h index fb3446a16f3935..4b527b3bbb01df 100644 --- a/src/controller/java/zap-generated/CHIPInvokeCallbacks.h +++ b/src/controller/java/zap-generated/CHIPInvokeCallbacks.h @@ -24,692 +24,2653 @@ namespace chip { -class CHIPGroupsClusterAddGroupResponseCallback : public Callback::Callback +class CHIPIdentifyClusterIdentifyCallback : public Callback::Callback { public: - CHIPGroupsClusterAddGroupResponseCallback(jobject javaCallback); + CHIPIdentifyClusterIdentifyCallback(jobject javaCallback); - ~CHIPGroupsClusterAddGroupResponseCallback(); + ~CHIPIdentifyClusterIdentifyCallback(); - static void CallbackFn(void * context, const chip::app::Clusters::Groups::Commands::AddGroupResponse::DecodableType & data); + static void CallbackFn(void * context, const chip::app::Clusters::Identify::Commands::Identify::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPGroupsClusterViewGroupResponseCallback : public Callback::Callback +class CHIPIdentifyClusterTriggerEffectCallback : public Callback::Callback { public: - CHIPGroupsClusterViewGroupResponseCallback(jobject javaCallback); + CHIPIdentifyClusterTriggerEffectCallback(jobject javaCallback); - ~CHIPGroupsClusterViewGroupResponseCallback(); + ~CHIPIdentifyClusterTriggerEffectCallback(); - static void CallbackFn(void * context, const chip::app::Clusters::Groups::Commands::ViewGroupResponse::DecodableType & data); + static void CallbackFn(void * context, const chip::app::Clusters::Identify::Commands::TriggerEffect::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPGroupsClusterGetGroupMembershipResponseCallback - : public Callback::Callback +class CHIPGroupsClusterAddGroupCallback : public Callback::Callback { public: - CHIPGroupsClusterGetGroupMembershipResponseCallback(jobject javaCallback); + CHIPGroupsClusterAddGroupCallback(jobject javaCallback); - ~CHIPGroupsClusterGetGroupMembershipResponseCallback(); + ~CHIPGroupsClusterAddGroupCallback(); - static void CallbackFn(void * context, - const chip::app::Clusters::Groups::Commands::GetGroupMembershipResponse::DecodableType & data); + static void CallbackFn(void * context, const chip::app::Clusters::Groups::Commands::AddGroup::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPGroupsClusterRemoveGroupResponseCallback : public Callback::Callback +class CHIPGroupsClusterViewGroupCallback : public Callback::Callback { public: - CHIPGroupsClusterRemoveGroupResponseCallback(jobject javaCallback); + CHIPGroupsClusterViewGroupCallback(jobject javaCallback); - ~CHIPGroupsClusterRemoveGroupResponseCallback(); + ~CHIPGroupsClusterViewGroupCallback(); - static void CallbackFn(void * context, const chip::app::Clusters::Groups::Commands::RemoveGroupResponse::DecodableType & data); + static void CallbackFn(void * context, const chip::app::Clusters::Groups::Commands::ViewGroup::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPScenesClusterAddSceneResponseCallback : public Callback::Callback +class CHIPGroupsClusterGetGroupMembershipCallback : public Callback::Callback { public: - CHIPScenesClusterAddSceneResponseCallback(jobject javaCallback); + CHIPGroupsClusterGetGroupMembershipCallback(jobject javaCallback); - ~CHIPScenesClusterAddSceneResponseCallback(); + ~CHIPGroupsClusterGetGroupMembershipCallback(); - static void CallbackFn(void * context, const chip::app::Clusters::Scenes::Commands::AddSceneResponse::DecodableType & data); + static void CallbackFn(void * context, const chip::app::Clusters::Groups::Commands::GetGroupMembership::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPScenesClusterViewSceneResponseCallback : public Callback::Callback +class CHIPGroupsClusterRemoveGroupCallback : public Callback::Callback { public: - CHIPScenesClusterViewSceneResponseCallback(jobject javaCallback); + CHIPGroupsClusterRemoveGroupCallback(jobject javaCallback); - ~CHIPScenesClusterViewSceneResponseCallback(); + ~CHIPGroupsClusterRemoveGroupCallback(); - static void CallbackFn(void * context, const chip::app::Clusters::Scenes::Commands::ViewSceneResponse::DecodableType & data); + static void CallbackFn(void * context, const chip::app::Clusters::Groups::Commands::RemoveGroup::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPScenesClusterRemoveSceneResponseCallback : public Callback::Callback +class CHIPGroupsClusterRemoveAllGroupsCallback : public Callback::Callback { public: - CHIPScenesClusterRemoveSceneResponseCallback(jobject javaCallback); + CHIPGroupsClusterRemoveAllGroupsCallback(jobject javaCallback); - ~CHIPScenesClusterRemoveSceneResponseCallback(); + ~CHIPGroupsClusterRemoveAllGroupsCallback(); - static void CallbackFn(void * context, const chip::app::Clusters::Scenes::Commands::RemoveSceneResponse::DecodableType & data); + static void CallbackFn(void * context, const chip::app::Clusters::Groups::Commands::RemoveAllGroups::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPScenesClusterRemoveAllScenesResponseCallback - : public Callback::Callback +class CHIPGroupsClusterAddGroupIfIdentifyingCallback : public Callback::Callback { public: - CHIPScenesClusterRemoveAllScenesResponseCallback(jobject javaCallback); + CHIPGroupsClusterAddGroupIfIdentifyingCallback(jobject javaCallback); - ~CHIPScenesClusterRemoveAllScenesResponseCallback(); + ~CHIPGroupsClusterAddGroupIfIdentifyingCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::Scenes::Commands::RemoveAllScenesResponse::DecodableType & data); + const chip::app::Clusters::Groups::Commands::AddGroupIfIdentifying::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPScenesClusterAddSceneCallback : public Callback::Callback +{ +public: + CHIPScenesClusterAddSceneCallback(jobject javaCallback); + + ~CHIPScenesClusterAddSceneCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::Scenes::Commands::AddScene::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPScenesClusterViewSceneCallback : public Callback::Callback +{ +public: + CHIPScenesClusterViewSceneCallback(jobject javaCallback); + + ~CHIPScenesClusterViewSceneCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::Scenes::Commands::ViewScene::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPScenesClusterRemoveSceneCallback : public Callback::Callback +{ +public: + CHIPScenesClusterRemoveSceneCallback(jobject javaCallback); + + ~CHIPScenesClusterRemoveSceneCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::Scenes::Commands::RemoveScene::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPScenesClusterRemoveAllScenesCallback : public Callback::Callback +{ +public: + CHIPScenesClusterRemoveAllScenesCallback(jobject javaCallback); + + ~CHIPScenesClusterRemoveAllScenesCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::Scenes::Commands::RemoveAllScenes::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPScenesClusterStoreSceneCallback : public Callback::Callback +{ +public: + CHIPScenesClusterStoreSceneCallback(jobject javaCallback); + + ~CHIPScenesClusterStoreSceneCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::Scenes::Commands::StoreScene::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPScenesClusterRecallSceneCallback : public Callback::Callback +{ +public: + CHIPScenesClusterRecallSceneCallback(jobject javaCallback); + + ~CHIPScenesClusterRecallSceneCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::Scenes::Commands::RecallScene::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPScenesClusterGetSceneMembershipCallback : public Callback::Callback +{ +public: + CHIPScenesClusterGetSceneMembershipCallback(jobject javaCallback); + + ~CHIPScenesClusterGetSceneMembershipCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::Scenes::Commands::GetSceneMembership::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPScenesClusterStoreSceneResponseCallback : public Callback::Callback +class CHIPScenesClusterEnhancedAddSceneCallback : public Callback::Callback { public: - CHIPScenesClusterStoreSceneResponseCallback(jobject javaCallback); + CHIPScenesClusterEnhancedAddSceneCallback(jobject javaCallback); - ~CHIPScenesClusterStoreSceneResponseCallback(); + ~CHIPScenesClusterEnhancedAddSceneCallback(); - static void CallbackFn(void * context, const chip::app::Clusters::Scenes::Commands::StoreSceneResponse::DecodableType & data); + static void CallbackFn(void * context, const chip::app::Clusters::Scenes::Commands::EnhancedAddScene::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPScenesClusterGetSceneMembershipResponseCallback - : public Callback::Callback +class CHIPScenesClusterEnhancedViewSceneCallback : public Callback::Callback { public: - CHIPScenesClusterGetSceneMembershipResponseCallback(jobject javaCallback); + CHIPScenesClusterEnhancedViewSceneCallback(jobject javaCallback); - ~CHIPScenesClusterGetSceneMembershipResponseCallback(); + ~CHIPScenesClusterEnhancedViewSceneCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::Scenes::Commands::EnhancedViewScene::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPScenesClusterCopySceneCallback : public Callback::Callback +{ +public: + CHIPScenesClusterCopySceneCallback(jobject javaCallback); + + ~CHIPScenesClusterCopySceneCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::Scenes::Commands::CopyScene::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPOnOffClusterOffCallback : public Callback::Callback +{ +public: + CHIPOnOffClusterOffCallback(jobject javaCallback); + + ~CHIPOnOffClusterOffCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::OnOff::Commands::Off::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPOnOffClusterOnCallback : public Callback::Callback +{ +public: + CHIPOnOffClusterOnCallback(jobject javaCallback); + + ~CHIPOnOffClusterOnCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::OnOff::Commands::On::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPOnOffClusterToggleCallback : public Callback::Callback +{ +public: + CHIPOnOffClusterToggleCallback(jobject javaCallback); + + ~CHIPOnOffClusterToggleCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::OnOff::Commands::Toggle::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPOnOffClusterOffWithEffectCallback : public Callback::Callback +{ +public: + CHIPOnOffClusterOffWithEffectCallback(jobject javaCallback); + + ~CHIPOnOffClusterOffWithEffectCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::OnOff::Commands::OffWithEffect::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPOnOffClusterOnWithRecallGlobalSceneCallback + : public Callback::Callback +{ +public: + CHIPOnOffClusterOnWithRecallGlobalSceneCallback(jobject javaCallback); + + ~CHIPOnOffClusterOnWithRecallGlobalSceneCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::Scenes::Commands::GetSceneMembershipResponse::DecodableType & data); + const chip::app::Clusters::OnOff::Commands::OnWithRecallGlobalScene::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPOtaSoftwareUpdateProviderClusterQueryImageResponseCallback - : public Callback::Callback +class CHIPOnOffClusterOnWithTimedOffCallback : public Callback::Callback { public: - CHIPOtaSoftwareUpdateProviderClusterQueryImageResponseCallback(jobject javaCallback); + CHIPOnOffClusterOnWithTimedOffCallback(jobject javaCallback); - ~CHIPOtaSoftwareUpdateProviderClusterQueryImageResponseCallback(); + ~CHIPOnOffClusterOnWithTimedOffCallback(); - static void - CallbackFn(void * context, - const chip::app::Clusters::OtaSoftwareUpdateProvider::Commands::QueryImageResponse::DecodableType & data); + static void CallbackFn(void * context, const chip::app::Clusters::OnOff::Commands::OnWithTimedOff::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPOtaSoftwareUpdateProviderClusterApplyUpdateResponseCallback - : public Callback::Callback +class CHIPLevelControlClusterMoveToLevelCallback : public Callback::Callback { public: - CHIPOtaSoftwareUpdateProviderClusterApplyUpdateResponseCallback(jobject javaCallback); + CHIPLevelControlClusterMoveToLevelCallback(jobject javaCallback); - ~CHIPOtaSoftwareUpdateProviderClusterApplyUpdateResponseCallback(); + ~CHIPLevelControlClusterMoveToLevelCallback(); - static void - CallbackFn(void * context, - const chip::app::Clusters::OtaSoftwareUpdateProvider::Commands::ApplyUpdateResponse::DecodableType & data); + static void CallbackFn(void * context, const chip::app::Clusters::LevelControl::Commands::MoveToLevel::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPLevelControlClusterMoveCallback : public Callback::Callback +{ +public: + CHIPLevelControlClusterMoveCallback(jobject javaCallback); + + ~CHIPLevelControlClusterMoveCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::LevelControl::Commands::Move::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPLevelControlClusterStepCallback : public Callback::Callback +{ +public: + CHIPLevelControlClusterStepCallback(jobject javaCallback); + + ~CHIPLevelControlClusterStepCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::LevelControl::Commands::Step::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPLevelControlClusterStopCallback : public Callback::Callback +{ +public: + CHIPLevelControlClusterStopCallback(jobject javaCallback); + + ~CHIPLevelControlClusterStopCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::LevelControl::Commands::Stop::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPGeneralCommissioningClusterArmFailSafeResponseCallback - : public Callback::Callback +class CHIPLevelControlClusterMoveToLevelWithOnOffCallback + : public Callback::Callback { public: - CHIPGeneralCommissioningClusterArmFailSafeResponseCallback(jobject javaCallback); + CHIPLevelControlClusterMoveToLevelWithOnOffCallback(jobject javaCallback); - ~CHIPGeneralCommissioningClusterArmFailSafeResponseCallback(); + ~CHIPLevelControlClusterMoveToLevelWithOnOffCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::GeneralCommissioning::Commands::ArmFailSafeResponse::DecodableType & data); + const chip::app::Clusters::LevelControl::Commands::MoveToLevelWithOnOff::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPGeneralCommissioningClusterSetRegulatoryConfigResponseCallback - : public Callback::Callback +class CHIPLevelControlClusterMoveWithOnOffCallback : public Callback::Callback { public: - CHIPGeneralCommissioningClusterSetRegulatoryConfigResponseCallback(jobject javaCallback); + CHIPLevelControlClusterMoveWithOnOffCallback(jobject javaCallback); - ~CHIPGeneralCommissioningClusterSetRegulatoryConfigResponseCallback(); + ~CHIPLevelControlClusterMoveWithOnOffCallback(); - static void - CallbackFn(void * context, - const chip::app::Clusters::GeneralCommissioning::Commands::SetRegulatoryConfigResponse::DecodableType & data); + static void CallbackFn(void * context, const chip::app::Clusters::LevelControl::Commands::MoveWithOnOff::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPGeneralCommissioningClusterCommissioningCompleteResponseCallback - : public Callback::Callback +class CHIPLevelControlClusterStepWithOnOffCallback : public Callback::Callback { public: - CHIPGeneralCommissioningClusterCommissioningCompleteResponseCallback(jobject javaCallback); + CHIPLevelControlClusterStepWithOnOffCallback(jobject javaCallback); - ~CHIPGeneralCommissioningClusterCommissioningCompleteResponseCallback(); + ~CHIPLevelControlClusterStepWithOnOffCallback(); - static void - CallbackFn(void * context, - const chip::app::Clusters::GeneralCommissioning::Commands::CommissioningCompleteResponse::DecodableType & data); + static void CallbackFn(void * context, const chip::app::Clusters::LevelControl::Commands::StepWithOnOff::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPLevelControlClusterStopWithOnOffCallback : public Callback::Callback +{ +public: + CHIPLevelControlClusterStopWithOnOffCallback(jobject javaCallback); + + ~CHIPLevelControlClusterStopWithOnOffCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::LevelControl::Commands::StopWithOnOff::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPNetworkCommissioningClusterScanNetworksResponseCallback - : public Callback::Callback +class CHIPLevelControlClusterMoveToClosestFrequencyCallback + : public Callback::Callback { public: - CHIPNetworkCommissioningClusterScanNetworksResponseCallback(jobject javaCallback); + CHIPLevelControlClusterMoveToClosestFrequencyCallback(jobject javaCallback); - ~CHIPNetworkCommissioningClusterScanNetworksResponseCallback(); + ~CHIPLevelControlClusterMoveToClosestFrequencyCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::NetworkCommissioning::Commands::ScanNetworksResponse::DecodableType & data); + const chip::app::Clusters::LevelControl::Commands::MoveToClosestFrequency::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPActionsClusterInstantActionCallback : public Callback::Callback +{ +public: + CHIPActionsClusterInstantActionCallback(jobject javaCallback); + + ~CHIPActionsClusterInstantActionCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::Actions::Commands::InstantAction::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPNetworkCommissioningClusterNetworkConfigResponseCallback - : public Callback::Callback +class CHIPActionsClusterInstantActionWithTransitionCallback + : public Callback::Callback { public: - CHIPNetworkCommissioningClusterNetworkConfigResponseCallback(jobject javaCallback); + CHIPActionsClusterInstantActionWithTransitionCallback(jobject javaCallback); - ~CHIPNetworkCommissioningClusterNetworkConfigResponseCallback(); + ~CHIPActionsClusterInstantActionWithTransitionCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::NetworkCommissioning::Commands::NetworkConfigResponse::DecodableType & data); + const chip::app::Clusters::Actions::Commands::InstantActionWithTransition::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPActionsClusterStartActionCallback : public Callback::Callback +{ +public: + CHIPActionsClusterStartActionCallback(jobject javaCallback); + + ~CHIPActionsClusterStartActionCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::Actions::Commands::StartAction::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPNetworkCommissioningClusterConnectNetworkResponseCallback - : public Callback::Callback +class CHIPActionsClusterStartActionWithDurationCallback + : public Callback::Callback { public: - CHIPNetworkCommissioningClusterConnectNetworkResponseCallback(jobject javaCallback); + CHIPActionsClusterStartActionWithDurationCallback(jobject javaCallback); - ~CHIPNetworkCommissioningClusterConnectNetworkResponseCallback(); + ~CHIPActionsClusterStartActionWithDurationCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::NetworkCommissioning::Commands::ConnectNetworkResponse::DecodableType & data); + const chip::app::Clusters::Actions::Commands::StartActionWithDuration::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPActionsClusterStopActionCallback : public Callback::Callback +{ +public: + CHIPActionsClusterStopActionCallback(jobject javaCallback); + + ~CHIPActionsClusterStopActionCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::Actions::Commands::StopAction::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPActionsClusterPauseActionCallback : public Callback::Callback +{ +public: + CHIPActionsClusterPauseActionCallback(jobject javaCallback); + + ~CHIPActionsClusterPauseActionCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::Actions::Commands::PauseAction::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPDiagnosticLogsClusterRetrieveLogsResponseCallback - : public Callback::Callback +class CHIPActionsClusterPauseActionWithDurationCallback + : public Callback::Callback { public: - CHIPDiagnosticLogsClusterRetrieveLogsResponseCallback(jobject javaCallback); + CHIPActionsClusterPauseActionWithDurationCallback(jobject javaCallback); - ~CHIPDiagnosticLogsClusterRetrieveLogsResponseCallback(); + ~CHIPActionsClusterPauseActionWithDurationCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::DiagnosticLogs::Commands::RetrieveLogsResponse::DecodableType & data); + const chip::app::Clusters::Actions::Commands::PauseActionWithDuration::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPActionsClusterResumeActionCallback : public Callback::Callback +{ +public: + CHIPActionsClusterResumeActionCallback(jobject javaCallback); + + ~CHIPActionsClusterResumeActionCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::Actions::Commands::ResumeAction::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPActionsClusterEnableActionCallback : public Callback::Callback +{ +public: + CHIPActionsClusterEnableActionCallback(jobject javaCallback); + + ~CHIPActionsClusterEnableActionCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::Actions::Commands::EnableAction::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPOperationalCredentialsClusterAttestationResponseCallback - : public Callback::Callback +class CHIPActionsClusterEnableActionWithDurationCallback + : public Callback::Callback { public: - CHIPOperationalCredentialsClusterAttestationResponseCallback(jobject javaCallback); + CHIPActionsClusterEnableActionWithDurationCallback(jobject javaCallback); - ~CHIPOperationalCredentialsClusterAttestationResponseCallback(); + ~CHIPActionsClusterEnableActionWithDurationCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::OperationalCredentials::Commands::AttestationResponse::DecodableType & data); + const chip::app::Clusters::Actions::Commands::EnableActionWithDuration::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPOperationalCredentialsClusterCertificateChainResponseCallback - : public Callback::Callback +class CHIPActionsClusterDisableActionCallback : public Callback::Callback { public: - CHIPOperationalCredentialsClusterCertificateChainResponseCallback(jobject javaCallback); + CHIPActionsClusterDisableActionCallback(jobject javaCallback); - ~CHIPOperationalCredentialsClusterCertificateChainResponseCallback(); + ~CHIPActionsClusterDisableActionCallback(); - static void - CallbackFn(void * context, - const chip::app::Clusters::OperationalCredentials::Commands::CertificateChainResponse::DecodableType & data); + static void CallbackFn(void * context, const chip::app::Clusters::Actions::Commands::DisableAction::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPOperationalCredentialsClusterCSRResponseCallback - : public Callback::Callback +class CHIPActionsClusterDisableActionWithDurationCallback + : public Callback::Callback { public: - CHIPOperationalCredentialsClusterCSRResponseCallback(jobject javaCallback); + CHIPActionsClusterDisableActionWithDurationCallback(jobject javaCallback); - ~CHIPOperationalCredentialsClusterCSRResponseCallback(); + ~CHIPActionsClusterDisableActionWithDurationCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::OperationalCredentials::Commands::CSRResponse::DecodableType & data); + const chip::app::Clusters::Actions::Commands::DisableActionWithDuration::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPOperationalCredentialsClusterNOCResponseCallback - : public Callback::Callback +class CHIPBasicInformationClusterMfgSpecificPingCallback + : public Callback::Callback { public: - CHIPOperationalCredentialsClusterNOCResponseCallback(jobject javaCallback); + CHIPBasicInformationClusterMfgSpecificPingCallback(jobject javaCallback); - ~CHIPOperationalCredentialsClusterNOCResponseCallback(); + ~CHIPBasicInformationClusterMfgSpecificPingCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::OperationalCredentials::Commands::NOCResponse::DecodableType & data); + const chip::app::Clusters::BasicInformation::Commands::MfgSpecificPing::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPGroupKeyManagementClusterKeySetReadResponseCallback - : public Callback::Callback +class CHIPOtaSoftwareUpdateProviderClusterQueryImageCallback + : public Callback::Callback { public: - CHIPGroupKeyManagementClusterKeySetReadResponseCallback(jobject javaCallback); + CHIPOtaSoftwareUpdateProviderClusterQueryImageCallback(jobject javaCallback); - ~CHIPGroupKeyManagementClusterKeySetReadResponseCallback(); + ~CHIPOtaSoftwareUpdateProviderClusterQueryImageCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::GroupKeyManagement::Commands::KeySetReadResponse::DecodableType & data); + const chip::app::Clusters::OtaSoftwareUpdateProvider::Commands::QueryImage::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPGroupKeyManagementClusterKeySetReadAllIndicesResponseCallback - : public Callback::Callback +class CHIPOtaSoftwareUpdateProviderClusterApplyUpdateRequestCallback + : public Callback::Callback { public: - CHIPGroupKeyManagementClusterKeySetReadAllIndicesResponseCallback(jobject javaCallback); + CHIPOtaSoftwareUpdateProviderClusterApplyUpdateRequestCallback(jobject javaCallback); - ~CHIPGroupKeyManagementClusterKeySetReadAllIndicesResponseCallback(); + ~CHIPOtaSoftwareUpdateProviderClusterApplyUpdateRequestCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::GroupKeyManagement::Commands::KeySetReadAllIndicesResponse::DecodableType & data); + const chip::app::Clusters::OtaSoftwareUpdateProvider::Commands::ApplyUpdateRequest::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPDoorLockClusterGetWeekDayScheduleResponseCallback - : public Callback::Callback +class CHIPOtaSoftwareUpdateProviderClusterNotifyUpdateAppliedCallback + : public Callback::Callback { public: - CHIPDoorLockClusterGetWeekDayScheduleResponseCallback(jobject javaCallback); + CHIPOtaSoftwareUpdateProviderClusterNotifyUpdateAppliedCallback(jobject javaCallback); - ~CHIPDoorLockClusterGetWeekDayScheduleResponseCallback(); + ~CHIPOtaSoftwareUpdateProviderClusterNotifyUpdateAppliedCallback(); - static void CallbackFn(void * context, - const chip::app::Clusters::DoorLock::Commands::GetWeekDayScheduleResponse::DecodableType & data); + static void + CallbackFn(void * context, + const chip::app::Clusters::OtaSoftwareUpdateProvider::Commands::NotifyUpdateApplied::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPDoorLockClusterGetYearDayScheduleResponseCallback - : public Callback::Callback +class CHIPOtaSoftwareUpdateRequestorClusterAnnounceOTAProviderCallback + : public Callback::Callback { public: - CHIPDoorLockClusterGetYearDayScheduleResponseCallback(jobject javaCallback); + CHIPOtaSoftwareUpdateRequestorClusterAnnounceOTAProviderCallback(jobject javaCallback); - ~CHIPDoorLockClusterGetYearDayScheduleResponseCallback(); + ~CHIPOtaSoftwareUpdateRequestorClusterAnnounceOTAProviderCallback(); - static void CallbackFn(void * context, - const chip::app::Clusters::DoorLock::Commands::GetYearDayScheduleResponse::DecodableType & data); + static void + CallbackFn(void * context, + const chip::app::Clusters::OtaSoftwareUpdateRequestor::Commands::AnnounceOTAProvider::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPDoorLockClusterGetHolidayScheduleResponseCallback - : public Callback::Callback +class CHIPGeneralCommissioningClusterArmFailSafeCallback + : public Callback::Callback { public: - CHIPDoorLockClusterGetHolidayScheduleResponseCallback(jobject javaCallback); + CHIPGeneralCommissioningClusterArmFailSafeCallback(jobject javaCallback); - ~CHIPDoorLockClusterGetHolidayScheduleResponseCallback(); + ~CHIPGeneralCommissioningClusterArmFailSafeCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::DoorLock::Commands::GetHolidayScheduleResponse::DecodableType & data); + const chip::app::Clusters::GeneralCommissioning::Commands::ArmFailSafe::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPDoorLockClusterGetUserResponseCallback : public Callback::Callback +class CHIPGeneralCommissioningClusterSetRegulatoryConfigCallback + : public Callback::Callback { public: - CHIPDoorLockClusterGetUserResponseCallback(jobject javaCallback); + CHIPGeneralCommissioningClusterSetRegulatoryConfigCallback(jobject javaCallback); - ~CHIPDoorLockClusterGetUserResponseCallback(); + ~CHIPGeneralCommissioningClusterSetRegulatoryConfigCallback(); - static void CallbackFn(void * context, const chip::app::Clusters::DoorLock::Commands::GetUserResponse::DecodableType & data); + static void CallbackFn(void * context, + const chip::app::Clusters::GeneralCommissioning::Commands::SetRegulatoryConfig::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPDoorLockClusterSetCredentialResponseCallback - : public Callback::Callback +class CHIPGeneralCommissioningClusterCommissioningCompleteCallback + : public Callback::Callback { public: - CHIPDoorLockClusterSetCredentialResponseCallback(jobject javaCallback); + CHIPGeneralCommissioningClusterCommissioningCompleteCallback(jobject javaCallback); - ~CHIPDoorLockClusterSetCredentialResponseCallback(); + ~CHIPGeneralCommissioningClusterCommissioningCompleteCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::DoorLock::Commands::SetCredentialResponse::DecodableType & data); + const chip::app::Clusters::GeneralCommissioning::Commands::CommissioningComplete::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPDoorLockClusterGetCredentialStatusResponseCallback - : public Callback::Callback +class CHIPNetworkCommissioningClusterScanNetworksCallback + : public Callback::Callback { public: - CHIPDoorLockClusterGetCredentialStatusResponseCallback(jobject javaCallback); + CHIPNetworkCommissioningClusterScanNetworksCallback(jobject javaCallback); - ~CHIPDoorLockClusterGetCredentialStatusResponseCallback(); + ~CHIPNetworkCommissioningClusterScanNetworksCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::DoorLock::Commands::GetCredentialStatusResponse::DecodableType & data); + const chip::app::Clusters::NetworkCommissioning::Commands::ScanNetworks::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPThermostatClusterGetWeeklyScheduleResponseCallback - : public Callback::Callback +class CHIPNetworkCommissioningClusterAddOrUpdateWiFiNetworkCallback + : public Callback::Callback { public: - CHIPThermostatClusterGetWeeklyScheduleResponseCallback(jobject javaCallback); + CHIPNetworkCommissioningClusterAddOrUpdateWiFiNetworkCallback(jobject javaCallback); - ~CHIPThermostatClusterGetWeeklyScheduleResponseCallback(); + ~CHIPNetworkCommissioningClusterAddOrUpdateWiFiNetworkCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::Thermostat::Commands::GetWeeklyScheduleResponse::DecodableType & data); + const chip::app::Clusters::NetworkCommissioning::Commands::AddOrUpdateWiFiNetwork::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPChannelClusterChangeChannelResponseCallback - : public Callback::Callback +class CHIPNetworkCommissioningClusterAddOrUpdateThreadNetworkCallback + : public Callback::Callback { public: - CHIPChannelClusterChangeChannelResponseCallback(jobject javaCallback); + CHIPNetworkCommissioningClusterAddOrUpdateThreadNetworkCallback(jobject javaCallback); - ~CHIPChannelClusterChangeChannelResponseCallback(); + ~CHIPNetworkCommissioningClusterAddOrUpdateThreadNetworkCallback(); - static void CallbackFn(void * context, - const chip::app::Clusters::Channel::Commands::ChangeChannelResponse::DecodableType & data); + static void + CallbackFn(void * context, + const chip::app::Clusters::NetworkCommissioning::Commands::AddOrUpdateThreadNetwork::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPTargetNavigatorClusterNavigateTargetResponseCallback - : public Callback::Callback +class CHIPNetworkCommissioningClusterRemoveNetworkCallback + : public Callback::Callback { public: - CHIPTargetNavigatorClusterNavigateTargetResponseCallback(jobject javaCallback); + CHIPNetworkCommissioningClusterRemoveNetworkCallback(jobject javaCallback); - ~CHIPTargetNavigatorClusterNavigateTargetResponseCallback(); + ~CHIPNetworkCommissioningClusterRemoveNetworkCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::TargetNavigator::Commands::NavigateTargetResponse::DecodableType & data); + const chip::app::Clusters::NetworkCommissioning::Commands::RemoveNetwork::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPMediaPlaybackClusterPlaybackResponseCallback - : public Callback::Callback +class CHIPNetworkCommissioningClusterConnectNetworkCallback + : public Callback::Callback { public: - CHIPMediaPlaybackClusterPlaybackResponseCallback(jobject javaCallback); + CHIPNetworkCommissioningClusterConnectNetworkCallback(jobject javaCallback); - ~CHIPMediaPlaybackClusterPlaybackResponseCallback(); + ~CHIPNetworkCommissioningClusterConnectNetworkCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::MediaPlayback::Commands::PlaybackResponse::DecodableType & data); + const chip::app::Clusters::NetworkCommissioning::Commands::ConnectNetwork::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPKeypadInputClusterSendKeyResponseCallback : public Callback::Callback +class CHIPNetworkCommissioningClusterReorderNetworkCallback + : public Callback::Callback { public: - CHIPKeypadInputClusterSendKeyResponseCallback(jobject javaCallback); + CHIPNetworkCommissioningClusterReorderNetworkCallback(jobject javaCallback); - ~CHIPKeypadInputClusterSendKeyResponseCallback(); + ~CHIPNetworkCommissioningClusterReorderNetworkCallback(); - static void CallbackFn(void * context, const chip::app::Clusters::KeypadInput::Commands::SendKeyResponse::DecodableType & data); + static void CallbackFn(void * context, + const chip::app::Clusters::NetworkCommissioning::Commands::ReorderNetwork::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPContentLauncherClusterLauncherResponseCallback - : public Callback::Callback +class CHIPDiagnosticLogsClusterRetrieveLogsRequestCallback + : public Callback::Callback { public: - CHIPContentLauncherClusterLauncherResponseCallback(jobject javaCallback); + CHIPDiagnosticLogsClusterRetrieveLogsRequestCallback(jobject javaCallback); - ~CHIPContentLauncherClusterLauncherResponseCallback(); + ~CHIPDiagnosticLogsClusterRetrieveLogsRequestCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::ContentLauncher::Commands::LauncherResponse::DecodableType & data); + const chip::app::Clusters::DiagnosticLogs::Commands::RetrieveLogsRequest::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPApplicationLauncherClusterLauncherResponseCallback - : public Callback::Callback +class CHIPGeneralDiagnosticsClusterTestEventTriggerCallback + : public Callback::Callback { public: - CHIPApplicationLauncherClusterLauncherResponseCallback(jobject javaCallback); + CHIPGeneralDiagnosticsClusterTestEventTriggerCallback(jobject javaCallback); - ~CHIPApplicationLauncherClusterLauncherResponseCallback(); + ~CHIPGeneralDiagnosticsClusterTestEventTriggerCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::ApplicationLauncher::Commands::LauncherResponse::DecodableType & data); + const chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPAccountLoginClusterGetSetupPINResponseCallback - : public Callback::Callback +class CHIPSoftwareDiagnosticsClusterResetWatermarksCallback + : public Callback::Callback { public: - CHIPAccountLoginClusterGetSetupPINResponseCallback(jobject javaCallback); + CHIPSoftwareDiagnosticsClusterResetWatermarksCallback(jobject javaCallback); - ~CHIPAccountLoginClusterGetSetupPINResponseCallback(); + ~CHIPSoftwareDiagnosticsClusterResetWatermarksCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::AccountLogin::Commands::GetSetupPINResponse::DecodableType & data); + const chip::app::Clusters::SoftwareDiagnostics::Commands::ResetWatermarks::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPUnitTestingClusterTestSpecificResponseCallback - : public Callback::Callback +class CHIPThreadNetworkDiagnosticsClusterResetCountsCallback + : public Callback::Callback { public: - CHIPUnitTestingClusterTestSpecificResponseCallback(jobject javaCallback); + CHIPThreadNetworkDiagnosticsClusterResetCountsCallback(jobject javaCallback); - ~CHIPUnitTestingClusterTestSpecificResponseCallback(); + ~CHIPThreadNetworkDiagnosticsClusterResetCountsCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::UnitTesting::Commands::TestSpecificResponse::DecodableType & data); + const chip::app::Clusters::ThreadNetworkDiagnostics::Commands::ResetCounts::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPUnitTestingClusterTestAddArgumentsResponseCallback - : public Callback::Callback +class CHIPWiFiNetworkDiagnosticsClusterResetCountsCallback + : public Callback::Callback { public: - CHIPUnitTestingClusterTestAddArgumentsResponseCallback(jobject javaCallback); + CHIPWiFiNetworkDiagnosticsClusterResetCountsCallback(jobject javaCallback); - ~CHIPUnitTestingClusterTestAddArgumentsResponseCallback(); + ~CHIPWiFiNetworkDiagnosticsClusterResetCountsCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::UnitTesting::Commands::TestAddArgumentsResponse::DecodableType & data); + const chip::app::Clusters::WiFiNetworkDiagnostics::Commands::ResetCounts::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPUnitTestingClusterTestListInt8UReverseResponseCallback - : public Callback::Callback +class CHIPEthernetNetworkDiagnosticsClusterResetCountsCallback + : public Callback::Callback { public: - CHIPUnitTestingClusterTestListInt8UReverseResponseCallback(jobject javaCallback); + CHIPEthernetNetworkDiagnosticsClusterResetCountsCallback(jobject javaCallback); - ~CHIPUnitTestingClusterTestListInt8UReverseResponseCallback(); + ~CHIPEthernetNetworkDiagnosticsClusterResetCountsCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::UnitTesting::Commands::TestListInt8UReverseResponse::DecodableType & data); + const chip::app::Clusters::EthernetNetworkDiagnostics::Commands::ResetCounts::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPUnitTestingClusterTestEnumsResponseCallback - : public Callback::Callback +class CHIPAdministratorCommissioningClusterOpenCommissioningWindowCallback + : public Callback::Callback { public: - CHIPUnitTestingClusterTestEnumsResponseCallback(jobject javaCallback); + CHIPAdministratorCommissioningClusterOpenCommissioningWindowCallback(jobject javaCallback); - ~CHIPUnitTestingClusterTestEnumsResponseCallback(); + ~CHIPAdministratorCommissioningClusterOpenCommissioningWindowCallback(); - static void CallbackFn(void * context, - const chip::app::Clusters::UnitTesting::Commands::TestEnumsResponse::DecodableType & data); + static void + CallbackFn(void * context, + const chip::app::Clusters::AdministratorCommissioning::Commands::OpenCommissioningWindow::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPAdministratorCommissioningClusterOpenBasicCommissioningWindowCallback + : public Callback::Callback +{ +public: + CHIPAdministratorCommissioningClusterOpenBasicCommissioningWindowCallback(jobject javaCallback); + + ~CHIPAdministratorCommissioningClusterOpenBasicCommissioningWindowCallback(); + + static void + CallbackFn(void * context, + const chip::app::Clusters::AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPAdministratorCommissioningClusterRevokeCommissioningCallback + : public Callback::Callback +{ +public: + CHIPAdministratorCommissioningClusterRevokeCommissioningCallback(jobject javaCallback); + + ~CHIPAdministratorCommissioningClusterRevokeCommissioningCallback(); + + static void + CallbackFn(void * context, + const chip::app::Clusters::AdministratorCommissioning::Commands::RevokeCommissioning::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPUnitTestingClusterTestNullableOptionalResponseCallback - : public Callback::Callback +class CHIPOperationalCredentialsClusterAttestationRequestCallback + : public Callback::Callback { public: - CHIPUnitTestingClusterTestNullableOptionalResponseCallback(jobject javaCallback); + CHIPOperationalCredentialsClusterAttestationRequestCallback(jobject javaCallback); - ~CHIPUnitTestingClusterTestNullableOptionalResponseCallback(); + ~CHIPOperationalCredentialsClusterAttestationRequestCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::UnitTesting::Commands::TestNullableOptionalResponse::DecodableType & data); + const chip::app::Clusters::OperationalCredentials::Commands::AttestationRequest::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPUnitTestingClusterBooleanResponseCallback : public Callback::Callback +class CHIPOperationalCredentialsClusterCertificateChainRequestCallback + : public Callback::Callback { public: - CHIPUnitTestingClusterBooleanResponseCallback(jobject javaCallback); + CHIPOperationalCredentialsClusterCertificateChainRequestCallback(jobject javaCallback); - ~CHIPUnitTestingClusterBooleanResponseCallback(); + ~CHIPOperationalCredentialsClusterCertificateChainRequestCallback(); - static void CallbackFn(void * context, const chip::app::Clusters::UnitTesting::Commands::BooleanResponse::DecodableType & data); + static void + CallbackFn(void * context, + const chip::app::Clusters::OperationalCredentials::Commands::CertificateChainRequest::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPUnitTestingClusterSimpleStructResponseCallback - : public Callback::Callback +class CHIPOperationalCredentialsClusterCSRRequestCallback + : public Callback::Callback { public: - CHIPUnitTestingClusterSimpleStructResponseCallback(jobject javaCallback); + CHIPOperationalCredentialsClusterCSRRequestCallback(jobject javaCallback); - ~CHIPUnitTestingClusterSimpleStructResponseCallback(); + ~CHIPOperationalCredentialsClusterCSRRequestCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::UnitTesting::Commands::SimpleStructResponse::DecodableType & data); + const chip::app::Clusters::OperationalCredentials::Commands::CSRRequest::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPUnitTestingClusterTestEmitTestEventResponseCallback - : public Callback::Callback +class CHIPOperationalCredentialsClusterAddNOCCallback + : public Callback::Callback { public: - CHIPUnitTestingClusterTestEmitTestEventResponseCallback(jobject javaCallback); + CHIPOperationalCredentialsClusterAddNOCCallback(jobject javaCallback); - ~CHIPUnitTestingClusterTestEmitTestEventResponseCallback(); + ~CHIPOperationalCredentialsClusterAddNOCCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::UnitTesting::Commands::TestEmitTestEventResponse::DecodableType & data); + const chip::app::Clusters::OperationalCredentials::Commands::AddNOC::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPOperationalCredentialsClusterUpdateNOCCallback + : public Callback::Callback +{ +public: + CHIPOperationalCredentialsClusterUpdateNOCCallback(jobject javaCallback); + + ~CHIPOperationalCredentialsClusterUpdateNOCCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::OperationalCredentials::Commands::UpdateNOC::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPOperationalCredentialsClusterUpdateFabricLabelCallback + : public Callback::Callback +{ +public: + CHIPOperationalCredentialsClusterUpdateFabricLabelCallback(jobject javaCallback); + + ~CHIPOperationalCredentialsClusterUpdateFabricLabelCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::OperationalCredentials::Commands::UpdateFabricLabel::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPOperationalCredentialsClusterRemoveFabricCallback + : public Callback::Callback +{ +public: + CHIPOperationalCredentialsClusterRemoveFabricCallback(jobject javaCallback); + + ~CHIPOperationalCredentialsClusterRemoveFabricCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::OperationalCredentials::Commands::RemoveFabric::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPOperationalCredentialsClusterAddTrustedRootCertificateCallback + : public Callback::Callback +{ +public: + CHIPOperationalCredentialsClusterAddTrustedRootCertificateCallback(jobject javaCallback); + + ~CHIPOperationalCredentialsClusterAddTrustedRootCertificateCallback(); + + static void + CallbackFn(void * context, + const chip::app::Clusters::OperationalCredentials::Commands::AddTrustedRootCertificate::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPGroupKeyManagementClusterKeySetWriteCallback + : public Callback::Callback +{ +public: + CHIPGroupKeyManagementClusterKeySetWriteCallback(jobject javaCallback); + + ~CHIPGroupKeyManagementClusterKeySetWriteCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::GroupKeyManagement::Commands::KeySetWrite::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPGroupKeyManagementClusterKeySetReadCallback + : public Callback::Callback +{ +public: + CHIPGroupKeyManagementClusterKeySetReadCallback(jobject javaCallback); + + ~CHIPGroupKeyManagementClusterKeySetReadCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::GroupKeyManagement::Commands::KeySetRead::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPGroupKeyManagementClusterKeySetRemoveCallback + : public Callback::Callback +{ +public: + CHIPGroupKeyManagementClusterKeySetRemoveCallback(jobject javaCallback); + + ~CHIPGroupKeyManagementClusterKeySetRemoveCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::GroupKeyManagement::Commands::KeySetRemove::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPGroupKeyManagementClusterKeySetReadAllIndicesCallback + : public Callback::Callback +{ +public: + CHIPGroupKeyManagementClusterKeySetReadAllIndicesCallback(jobject javaCallback); + + ~CHIPGroupKeyManagementClusterKeySetReadAllIndicesCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::GroupKeyManagement::Commands::KeySetReadAllIndices::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPModeSelectClusterChangeToModeCallback : public Callback::Callback +{ +public: + CHIPModeSelectClusterChangeToModeCallback(jobject javaCallback); + + ~CHIPModeSelectClusterChangeToModeCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::ModeSelect::Commands::ChangeToMode::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPDoorLockClusterLockDoorCallback : public Callback::Callback +{ +public: + CHIPDoorLockClusterLockDoorCallback(jobject javaCallback); + + ~CHIPDoorLockClusterLockDoorCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::DoorLock::Commands::LockDoor::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPDoorLockClusterUnlockDoorCallback : public Callback::Callback +{ +public: + CHIPDoorLockClusterUnlockDoorCallback(jobject javaCallback); + + ~CHIPDoorLockClusterUnlockDoorCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::DoorLock::Commands::UnlockDoor::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPDoorLockClusterUnlockWithTimeoutCallback : public Callback::Callback +{ +public: + CHIPDoorLockClusterUnlockWithTimeoutCallback(jobject javaCallback); + + ~CHIPDoorLockClusterUnlockWithTimeoutCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::DoorLock::Commands::UnlockWithTimeout::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPDoorLockClusterSetWeekDayScheduleCallback : public Callback::Callback +{ +public: + CHIPDoorLockClusterSetWeekDayScheduleCallback(jobject javaCallback); + + ~CHIPDoorLockClusterSetWeekDayScheduleCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::DoorLock::Commands::SetWeekDaySchedule::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPDoorLockClusterGetWeekDayScheduleCallback : public Callback::Callback +{ +public: + CHIPDoorLockClusterGetWeekDayScheduleCallback(jobject javaCallback); + + ~CHIPDoorLockClusterGetWeekDayScheduleCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::DoorLock::Commands::GetWeekDaySchedule::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPDoorLockClusterClearWeekDayScheduleCallback + : public Callback::Callback +{ +public: + CHIPDoorLockClusterClearWeekDayScheduleCallback(jobject javaCallback); + + ~CHIPDoorLockClusterClearWeekDayScheduleCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::DoorLock::Commands::ClearWeekDaySchedule::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPDoorLockClusterSetYearDayScheduleCallback : public Callback::Callback +{ +public: + CHIPDoorLockClusterSetYearDayScheduleCallback(jobject javaCallback); + + ~CHIPDoorLockClusterSetYearDayScheduleCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::DoorLock::Commands::SetYearDaySchedule::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPDoorLockClusterGetYearDayScheduleCallback : public Callback::Callback +{ +public: + CHIPDoorLockClusterGetYearDayScheduleCallback(jobject javaCallback); + + ~CHIPDoorLockClusterGetYearDayScheduleCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::DoorLock::Commands::GetYearDaySchedule::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPDoorLockClusterClearYearDayScheduleCallback + : public Callback::Callback +{ +public: + CHIPDoorLockClusterClearYearDayScheduleCallback(jobject javaCallback); + + ~CHIPDoorLockClusterClearYearDayScheduleCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::DoorLock::Commands::ClearYearDaySchedule::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPDoorLockClusterSetHolidayScheduleCallback : public Callback::Callback +{ +public: + CHIPDoorLockClusterSetHolidayScheduleCallback(jobject javaCallback); + + ~CHIPDoorLockClusterSetHolidayScheduleCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::DoorLock::Commands::SetHolidaySchedule::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPDoorLockClusterGetHolidayScheduleCallback : public Callback::Callback +{ +public: + CHIPDoorLockClusterGetHolidayScheduleCallback(jobject javaCallback); + + ~CHIPDoorLockClusterGetHolidayScheduleCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::DoorLock::Commands::GetHolidaySchedule::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPDoorLockClusterClearHolidayScheduleCallback + : public Callback::Callback +{ +public: + CHIPDoorLockClusterClearHolidayScheduleCallback(jobject javaCallback); + + ~CHIPDoorLockClusterClearHolidayScheduleCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::DoorLock::Commands::ClearHolidaySchedule::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPDoorLockClusterSetUserCallback : public Callback::Callback +{ +public: + CHIPDoorLockClusterSetUserCallback(jobject javaCallback); + + ~CHIPDoorLockClusterSetUserCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::DoorLock::Commands::SetUser::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPDoorLockClusterGetUserCallback : public Callback::Callback +{ +public: + CHIPDoorLockClusterGetUserCallback(jobject javaCallback); + + ~CHIPDoorLockClusterGetUserCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::DoorLock::Commands::GetUser::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPDoorLockClusterClearUserCallback : public Callback::Callback +{ +public: + CHIPDoorLockClusterClearUserCallback(jobject javaCallback); + + ~CHIPDoorLockClusterClearUserCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::DoorLock::Commands::ClearUser::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPDoorLockClusterSetCredentialCallback : public Callback::Callback +{ +public: + CHIPDoorLockClusterSetCredentialCallback(jobject javaCallback); + + ~CHIPDoorLockClusterSetCredentialCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::DoorLock::Commands::SetCredential::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPDoorLockClusterGetCredentialStatusCallback : public Callback::Callback +{ +public: + CHIPDoorLockClusterGetCredentialStatusCallback(jobject javaCallback); + + ~CHIPDoorLockClusterGetCredentialStatusCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::DoorLock::Commands::GetCredentialStatus::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPDoorLockClusterClearCredentialCallback : public Callback::Callback +{ +public: + CHIPDoorLockClusterClearCredentialCallback(jobject javaCallback); + + ~CHIPDoorLockClusterClearCredentialCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::DoorLock::Commands::ClearCredential::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPWindowCoveringClusterUpOrOpenCallback : public Callback::Callback +{ +public: + CHIPWindowCoveringClusterUpOrOpenCallback(jobject javaCallback); + + ~CHIPWindowCoveringClusterUpOrOpenCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::WindowCovering::Commands::UpOrOpen::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPWindowCoveringClusterDownOrCloseCallback : public Callback::Callback +{ +public: + CHIPWindowCoveringClusterDownOrCloseCallback(jobject javaCallback); + + ~CHIPWindowCoveringClusterDownOrCloseCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::WindowCovering::Commands::DownOrClose::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPWindowCoveringClusterStopMotionCallback : public Callback::Callback +{ +public: + CHIPWindowCoveringClusterStopMotionCallback(jobject javaCallback); + + ~CHIPWindowCoveringClusterStopMotionCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::WindowCovering::Commands::StopMotion::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPWindowCoveringClusterGoToLiftValueCallback : public Callback::Callback +{ +public: + CHIPWindowCoveringClusterGoToLiftValueCallback(jobject javaCallback); + + ~CHIPWindowCoveringClusterGoToLiftValueCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::WindowCovering::Commands::GoToLiftValue::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPWindowCoveringClusterGoToLiftPercentageCallback + : public Callback::Callback +{ +public: + CHIPWindowCoveringClusterGoToLiftPercentageCallback(jobject javaCallback); + + ~CHIPWindowCoveringClusterGoToLiftPercentageCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::WindowCovering::Commands::GoToLiftPercentage::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPWindowCoveringClusterGoToTiltValueCallback : public Callback::Callback +{ +public: + CHIPWindowCoveringClusterGoToTiltValueCallback(jobject javaCallback); + + ~CHIPWindowCoveringClusterGoToTiltValueCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::WindowCovering::Commands::GoToTiltValue::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPWindowCoveringClusterGoToTiltPercentageCallback + : public Callback::Callback +{ +public: + CHIPWindowCoveringClusterGoToTiltPercentageCallback(jobject javaCallback); + + ~CHIPWindowCoveringClusterGoToTiltPercentageCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::WindowCovering::Commands::GoToTiltPercentage::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPBarrierControlClusterBarrierControlGoToPercentCallback + : public Callback::Callback +{ +public: + CHIPBarrierControlClusterBarrierControlGoToPercentCallback(jobject javaCallback); + + ~CHIPBarrierControlClusterBarrierControlGoToPercentCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::BarrierControl::Commands::BarrierControlGoToPercent::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPBarrierControlClusterBarrierControlStopCallback + : public Callback::Callback +{ +public: + CHIPBarrierControlClusterBarrierControlStopCallback(jobject javaCallback); + + ~CHIPBarrierControlClusterBarrierControlStopCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::BarrierControl::Commands::BarrierControlStop::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPThermostatClusterSetpointRaiseLowerCallback + : public Callback::Callback +{ +public: + CHIPThermostatClusterSetpointRaiseLowerCallback(jobject javaCallback); + + ~CHIPThermostatClusterSetpointRaiseLowerCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::Thermostat::Commands::SetpointRaiseLower::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPThermostatClusterSetWeeklyScheduleCallback : public Callback::Callback +{ +public: + CHIPThermostatClusterSetWeeklyScheduleCallback(jobject javaCallback); + + ~CHIPThermostatClusterSetWeeklyScheduleCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::Thermostat::Commands::SetWeeklySchedule::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPThermostatClusterGetWeeklyScheduleCallback : public Callback::Callback +{ +public: + CHIPThermostatClusterGetWeeklyScheduleCallback(jobject javaCallback); + + ~CHIPThermostatClusterGetWeeklyScheduleCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::Thermostat::Commands::GetWeeklySchedule::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPThermostatClusterClearWeeklyScheduleCallback + : public Callback::Callback +{ +public: + CHIPThermostatClusterClearWeeklyScheduleCallback(jobject javaCallback); + + ~CHIPThermostatClusterClearWeeklyScheduleCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::Thermostat::Commands::ClearWeeklySchedule::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPColorControlClusterMoveToHueCallback : public Callback::Callback +{ +public: + CHIPColorControlClusterMoveToHueCallback(jobject javaCallback); + + ~CHIPColorControlClusterMoveToHueCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::ColorControl::Commands::MoveToHue::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPColorControlClusterMoveHueCallback : public Callback::Callback +{ +public: + CHIPColorControlClusterMoveHueCallback(jobject javaCallback); + + ~CHIPColorControlClusterMoveHueCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::ColorControl::Commands::MoveHue::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPColorControlClusterStepHueCallback : public Callback::Callback +{ +public: + CHIPColorControlClusterStepHueCallback(jobject javaCallback); + + ~CHIPColorControlClusterStepHueCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::ColorControl::Commands::StepHue::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPColorControlClusterMoveToSaturationCallback + : public Callback::Callback +{ +public: + CHIPColorControlClusterMoveToSaturationCallback(jobject javaCallback); + + ~CHIPColorControlClusterMoveToSaturationCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::ColorControl::Commands::MoveToSaturation::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPColorControlClusterMoveSaturationCallback : public Callback::Callback +{ +public: + CHIPColorControlClusterMoveSaturationCallback(jobject javaCallback); + + ~CHIPColorControlClusterMoveSaturationCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::ColorControl::Commands::MoveSaturation::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPColorControlClusterStepSaturationCallback : public Callback::Callback +{ +public: + CHIPColorControlClusterStepSaturationCallback(jobject javaCallback); + + ~CHIPColorControlClusterStepSaturationCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::ColorControl::Commands::StepSaturation::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPColorControlClusterMoveToHueAndSaturationCallback + : public Callback::Callback +{ +public: + CHIPColorControlClusterMoveToHueAndSaturationCallback(jobject javaCallback); + + ~CHIPColorControlClusterMoveToHueAndSaturationCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::ColorControl::Commands::MoveToHueAndSaturation::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPColorControlClusterMoveToColorCallback : public Callback::Callback +{ +public: + CHIPColorControlClusterMoveToColorCallback(jobject javaCallback); + + ~CHIPColorControlClusterMoveToColorCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::ColorControl::Commands::MoveToColor::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPColorControlClusterMoveColorCallback : public Callback::Callback +{ +public: + CHIPColorControlClusterMoveColorCallback(jobject javaCallback); + + ~CHIPColorControlClusterMoveColorCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::ColorControl::Commands::MoveColor::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPColorControlClusterStepColorCallback : public Callback::Callback +{ +public: + CHIPColorControlClusterStepColorCallback(jobject javaCallback); + + ~CHIPColorControlClusterStepColorCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::ColorControl::Commands::StepColor::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPColorControlClusterMoveToColorTemperatureCallback + : public Callback::Callback +{ +public: + CHIPColorControlClusterMoveToColorTemperatureCallback(jobject javaCallback); + + ~CHIPColorControlClusterMoveToColorTemperatureCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::ColorControl::Commands::MoveToColorTemperature::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPColorControlClusterEnhancedMoveToHueCallback + : public Callback::Callback +{ +public: + CHIPColorControlClusterEnhancedMoveToHueCallback(jobject javaCallback); + + ~CHIPColorControlClusterEnhancedMoveToHueCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::ColorControl::Commands::EnhancedMoveToHue::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPColorControlClusterEnhancedMoveHueCallback : public Callback::Callback +{ +public: + CHIPColorControlClusterEnhancedMoveHueCallback(jobject javaCallback); + + ~CHIPColorControlClusterEnhancedMoveHueCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::ColorControl::Commands::EnhancedMoveHue::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPColorControlClusterEnhancedStepHueCallback : public Callback::Callback +{ +public: + CHIPColorControlClusterEnhancedStepHueCallback(jobject javaCallback); + + ~CHIPColorControlClusterEnhancedStepHueCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::ColorControl::Commands::EnhancedStepHue::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPColorControlClusterEnhancedMoveToHueAndSaturationCallback + : public Callback::Callback +{ +public: + CHIPColorControlClusterEnhancedMoveToHueAndSaturationCallback(jobject javaCallback); + + ~CHIPColorControlClusterEnhancedMoveToHueAndSaturationCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::ColorControl::Commands::EnhancedMoveToHueAndSaturation::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPColorControlClusterColorLoopSetCallback : public Callback::Callback +{ +public: + CHIPColorControlClusterColorLoopSetCallback(jobject javaCallback); + + ~CHIPColorControlClusterColorLoopSetCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::ColorControl::Commands::ColorLoopSet::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPColorControlClusterStopMoveStepCallback : public Callback::Callback +{ +public: + CHIPColorControlClusterStopMoveStepCallback(jobject javaCallback); + + ~CHIPColorControlClusterStopMoveStepCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::ColorControl::Commands::StopMoveStep::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPColorControlClusterMoveColorTemperatureCallback + : public Callback::Callback +{ +public: + CHIPColorControlClusterMoveColorTemperatureCallback(jobject javaCallback); + + ~CHIPColorControlClusterMoveColorTemperatureCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::ColorControl::Commands::MoveColorTemperature::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPColorControlClusterStepColorTemperatureCallback + : public Callback::Callback +{ +public: + CHIPColorControlClusterStepColorTemperatureCallback(jobject javaCallback); + + ~CHIPColorControlClusterStepColorTemperatureCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::ColorControl::Commands::StepColorTemperature::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPChannelClusterChangeChannelCallback : public Callback::Callback +{ +public: + CHIPChannelClusterChangeChannelCallback(jobject javaCallback); + + ~CHIPChannelClusterChangeChannelCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::Channel::Commands::ChangeChannel::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPChannelClusterChangeChannelByNumberCallback + : public Callback::Callback +{ +public: + CHIPChannelClusterChangeChannelByNumberCallback(jobject javaCallback); + + ~CHIPChannelClusterChangeChannelByNumberCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::Channel::Commands::ChangeChannelByNumber::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPChannelClusterSkipChannelCallback : public Callback::Callback +{ +public: + CHIPChannelClusterSkipChannelCallback(jobject javaCallback); + + ~CHIPChannelClusterSkipChannelCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::Channel::Commands::SkipChannel::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPTargetNavigatorClusterNavigateTargetCallback + : public Callback::Callback +{ +public: + CHIPTargetNavigatorClusterNavigateTargetCallback(jobject javaCallback); + + ~CHIPTargetNavigatorClusterNavigateTargetCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::TargetNavigator::Commands::NavigateTarget::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPMediaPlaybackClusterPlayCallback : public Callback::Callback +{ +public: + CHIPMediaPlaybackClusterPlayCallback(jobject javaCallback); + + ~CHIPMediaPlaybackClusterPlayCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::MediaPlayback::Commands::Play::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPMediaPlaybackClusterPauseCallback : public Callback::Callback +{ +public: + CHIPMediaPlaybackClusterPauseCallback(jobject javaCallback); + + ~CHIPMediaPlaybackClusterPauseCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::MediaPlayback::Commands::Pause::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPMediaPlaybackClusterStopCallback : public Callback::Callback +{ +public: + CHIPMediaPlaybackClusterStopCallback(jobject javaCallback); + + ~CHIPMediaPlaybackClusterStopCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::MediaPlayback::Commands::Stop::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPMediaPlaybackClusterStartOverCallback : public Callback::Callback +{ +public: + CHIPMediaPlaybackClusterStartOverCallback(jobject javaCallback); + + ~CHIPMediaPlaybackClusterStartOverCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::MediaPlayback::Commands::StartOver::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPMediaPlaybackClusterPreviousCallback : public Callback::Callback +{ +public: + CHIPMediaPlaybackClusterPreviousCallback(jobject javaCallback); + + ~CHIPMediaPlaybackClusterPreviousCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::MediaPlayback::Commands::Previous::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPMediaPlaybackClusterNextCallback : public Callback::Callback +{ +public: + CHIPMediaPlaybackClusterNextCallback(jobject javaCallback); + + ~CHIPMediaPlaybackClusterNextCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::MediaPlayback::Commands::Next::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPMediaPlaybackClusterRewindCallback : public Callback::Callback +{ +public: + CHIPMediaPlaybackClusterRewindCallback(jobject javaCallback); + + ~CHIPMediaPlaybackClusterRewindCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::MediaPlayback::Commands::Rewind::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPMediaPlaybackClusterFastForwardCallback : public Callback::Callback +{ +public: + CHIPMediaPlaybackClusterFastForwardCallback(jobject javaCallback); + + ~CHIPMediaPlaybackClusterFastForwardCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::MediaPlayback::Commands::FastForward::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPMediaPlaybackClusterSkipForwardCallback : public Callback::Callback +{ +public: + CHIPMediaPlaybackClusterSkipForwardCallback(jobject javaCallback); + + ~CHIPMediaPlaybackClusterSkipForwardCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::MediaPlayback::Commands::SkipForward::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPMediaPlaybackClusterSkipBackwardCallback : public Callback::Callback +{ +public: + CHIPMediaPlaybackClusterSkipBackwardCallback(jobject javaCallback); + + ~CHIPMediaPlaybackClusterSkipBackwardCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::MediaPlayback::Commands::SkipBackward::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPMediaPlaybackClusterSeekCallback : public Callback::Callback +{ +public: + CHIPMediaPlaybackClusterSeekCallback(jobject javaCallback); + + ~CHIPMediaPlaybackClusterSeekCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::MediaPlayback::Commands::Seek::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPMediaInputClusterSelectInputCallback : public Callback::Callback +{ +public: + CHIPMediaInputClusterSelectInputCallback(jobject javaCallback); + + ~CHIPMediaInputClusterSelectInputCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::MediaInput::Commands::SelectInput::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPMediaInputClusterShowInputStatusCallback : public Callback::Callback +{ +public: + CHIPMediaInputClusterShowInputStatusCallback(jobject javaCallback); + + ~CHIPMediaInputClusterShowInputStatusCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::MediaInput::Commands::ShowInputStatus::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPMediaInputClusterHideInputStatusCallback : public Callback::Callback +{ +public: + CHIPMediaInputClusterHideInputStatusCallback(jobject javaCallback); + + ~CHIPMediaInputClusterHideInputStatusCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::MediaInput::Commands::HideInputStatus::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPMediaInputClusterRenameInputCallback : public Callback::Callback +{ +public: + CHIPMediaInputClusterRenameInputCallback(jobject javaCallback); + + ~CHIPMediaInputClusterRenameInputCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::MediaInput::Commands::RenameInput::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPLowPowerClusterSleepCallback : public Callback::Callback +{ +public: + CHIPLowPowerClusterSleepCallback(jobject javaCallback); + + ~CHIPLowPowerClusterSleepCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::LowPower::Commands::Sleep::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPKeypadInputClusterSendKeyCallback : public Callback::Callback +{ +public: + CHIPKeypadInputClusterSendKeyCallback(jobject javaCallback); + + ~CHIPKeypadInputClusterSendKeyCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::KeypadInput::Commands::SendKey::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPContentLauncherClusterLaunchContentCallback + : public Callback::Callback +{ +public: + CHIPContentLauncherClusterLaunchContentCallback(jobject javaCallback); + + ~CHIPContentLauncherClusterLaunchContentCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::ContentLauncher::Commands::LaunchContent::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPContentLauncherClusterLaunchURLCallback : public Callback::Callback +{ +public: + CHIPContentLauncherClusterLaunchURLCallback(jobject javaCallback); + + ~CHIPContentLauncherClusterLaunchURLCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::ContentLauncher::Commands::LaunchURL::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPAudioOutputClusterSelectOutputCallback : public Callback::Callback +{ +public: + CHIPAudioOutputClusterSelectOutputCallback(jobject javaCallback); + + ~CHIPAudioOutputClusterSelectOutputCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::AudioOutput::Commands::SelectOutput::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPAudioOutputClusterRenameOutputCallback : public Callback::Callback +{ +public: + CHIPAudioOutputClusterRenameOutputCallback(jobject javaCallback); + + ~CHIPAudioOutputClusterRenameOutputCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::AudioOutput::Commands::RenameOutput::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPApplicationLauncherClusterLaunchAppCallback + : public Callback::Callback +{ +public: + CHIPApplicationLauncherClusterLaunchAppCallback(jobject javaCallback); + + ~CHIPApplicationLauncherClusterLaunchAppCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::ApplicationLauncher::Commands::LaunchApp::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPApplicationLauncherClusterStopAppCallback : public Callback::Callback +{ +public: + CHIPApplicationLauncherClusterStopAppCallback(jobject javaCallback); + + ~CHIPApplicationLauncherClusterStopAppCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::ApplicationLauncher::Commands::StopApp::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPApplicationLauncherClusterHideAppCallback : public Callback::Callback +{ +public: + CHIPApplicationLauncherClusterHideAppCallback(jobject javaCallback); + + ~CHIPApplicationLauncherClusterHideAppCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::ApplicationLauncher::Commands::HideApp::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPAccountLoginClusterGetSetupPINCallback : public Callback::Callback +{ +public: + CHIPAccountLoginClusterGetSetupPINCallback(jobject javaCallback); + + ~CHIPAccountLoginClusterGetSetupPINCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::AccountLogin::Commands::GetSetupPIN::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPAccountLoginClusterLoginCallback : public Callback::Callback +{ +public: + CHIPAccountLoginClusterLoginCallback(jobject javaCallback); + + ~CHIPAccountLoginClusterLoginCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::AccountLogin::Commands::Login::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPAccountLoginClusterLogoutCallback : public Callback::Callback +{ +public: + CHIPAccountLoginClusterLogoutCallback(jobject javaCallback); + + ~CHIPAccountLoginClusterLogoutCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::AccountLogin::Commands::Logout::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPElectricalMeasurementClusterGetProfileInfoCommandCallback + : public Callback::Callback +{ +public: + CHIPElectricalMeasurementClusterGetProfileInfoCommandCallback(jobject javaCallback); + + ~CHIPElectricalMeasurementClusterGetProfileInfoCommandCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::ElectricalMeasurement::Commands::GetProfileInfoCommand::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPElectricalMeasurementClusterGetMeasurementProfileCommandCallback + : public Callback::Callback +{ +public: + CHIPElectricalMeasurementClusterGetMeasurementProfileCommandCallback(jobject javaCallback); + + ~CHIPElectricalMeasurementClusterGetMeasurementProfileCommandCallback(); + + static void + CallbackFn(void * context, + const chip::app::Clusters::ElectricalMeasurement::Commands::GetMeasurementProfileCommand::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPClientMonitoringClusterRegisterClientMonitoringCallback + : public Callback::Callback +{ +public: + CHIPClientMonitoringClusterRegisterClientMonitoringCallback(jobject javaCallback); + + ~CHIPClientMonitoringClusterRegisterClientMonitoringCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::ClientMonitoring::Commands::RegisterClientMonitoring::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPClientMonitoringClusterUnregisterClientMonitoringCallback + : public Callback::Callback +{ +public: + CHIPClientMonitoringClusterUnregisterClientMonitoringCallback(jobject javaCallback); + + ~CHIPClientMonitoringClusterUnregisterClientMonitoringCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::ClientMonitoring::Commands::UnregisterClientMonitoring::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPClientMonitoringClusterStayAwakeRequestCallback + : public Callback::Callback +{ +public: + CHIPClientMonitoringClusterStayAwakeRequestCallback(jobject javaCallback); + + ~CHIPClientMonitoringClusterStayAwakeRequestCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::ClientMonitoring::Commands::StayAwakeRequest::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPUnitTestingClusterTestCallback : public Callback::Callback +{ +public: + CHIPUnitTestingClusterTestCallback(jobject javaCallback); + + ~CHIPUnitTestingClusterTestCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::UnitTesting::Commands::Test::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPUnitTestingClusterTestNotHandledCallback : public Callback::Callback +{ +public: + CHIPUnitTestingClusterTestNotHandledCallback(jobject javaCallback); + + ~CHIPUnitTestingClusterTestNotHandledCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::UnitTesting::Commands::TestNotHandled::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPUnitTestingClusterTestSpecificCallback : public Callback::Callback +{ +public: + CHIPUnitTestingClusterTestSpecificCallback(jobject javaCallback); + + ~CHIPUnitTestingClusterTestSpecificCallback(); + + static void CallbackFn(void * context, const chip::app::Clusters::UnitTesting::Commands::TestSpecific::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPUnitTestingClusterTestUnknownCommandCallback + : public Callback::Callback +{ +public: + CHIPUnitTestingClusterTestUnknownCommandCallback(jobject javaCallback); + + ~CHIPUnitTestingClusterTestUnknownCommandCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::UnitTesting::Commands::TestUnknownCommand::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPUnitTestingClusterTestAddArgumentsCallback : public Callback::Callback +{ +public: + CHIPUnitTestingClusterTestAddArgumentsCallback(jobject javaCallback); + + ~CHIPUnitTestingClusterTestAddArgumentsCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::UnitTesting::Commands::TestAddArguments::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPUnitTestingClusterTestSimpleArgumentRequestCallback + : public Callback::Callback +{ +public: + CHIPUnitTestingClusterTestSimpleArgumentRequestCallback(jobject javaCallback); + + ~CHIPUnitTestingClusterTestSimpleArgumentRequestCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::UnitTesting::Commands::TestSimpleArgumentRequest::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPUnitTestingClusterTestStructArrayArgumentRequestCallback + : public Callback::Callback +{ +public: + CHIPUnitTestingClusterTestStructArrayArgumentRequestCallback(jobject javaCallback); + + ~CHIPUnitTestingClusterTestStructArrayArgumentRequestCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::UnitTesting::Commands::TestStructArrayArgumentRequest::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPUnitTestingClusterTestStructArgumentRequestCallback + : public Callback::Callback +{ +public: + CHIPUnitTestingClusterTestStructArgumentRequestCallback(jobject javaCallback); + + ~CHIPUnitTestingClusterTestStructArgumentRequestCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::UnitTesting::Commands::TestStructArgumentRequest::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPUnitTestingClusterTestNestedStructArgumentRequestCallback + : public Callback::Callback +{ +public: + CHIPUnitTestingClusterTestNestedStructArgumentRequestCallback(jobject javaCallback); + + ~CHIPUnitTestingClusterTestNestedStructArgumentRequestCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::UnitTesting::Commands::TestNestedStructArgumentRequest::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPUnitTestingClusterTestListStructArgumentRequestCallback + : public Callback::Callback +{ +public: + CHIPUnitTestingClusterTestListStructArgumentRequestCallback(jobject javaCallback); + + ~CHIPUnitTestingClusterTestListStructArgumentRequestCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::UnitTesting::Commands::TestListStructArgumentRequest::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPUnitTestingClusterTestListInt8UArgumentRequestCallback + : public Callback::Callback +{ +public: + CHIPUnitTestingClusterTestListInt8UArgumentRequestCallback(jobject javaCallback); + + ~CHIPUnitTestingClusterTestListInt8UArgumentRequestCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::UnitTesting::Commands::TestListInt8UArgumentRequest::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPUnitTestingClusterTestNestedStructListArgumentRequestCallback + : public Callback::Callback +{ +public: + CHIPUnitTestingClusterTestNestedStructListArgumentRequestCallback(jobject javaCallback); + + ~CHIPUnitTestingClusterTestNestedStructListArgumentRequestCallback(); + + static void + CallbackFn(void * context, + const chip::app::Clusters::UnitTesting::Commands::TestNestedStructListArgumentRequest::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPUnitTestingClusterTestListNestedStructListArgumentRequestCallback + : public Callback::Callback +{ +public: + CHIPUnitTestingClusterTestListNestedStructListArgumentRequestCallback(jobject javaCallback); + + ~CHIPUnitTestingClusterTestListNestedStructListArgumentRequestCallback(); + + static void + CallbackFn(void * context, + const chip::app::Clusters::UnitTesting::Commands::TestListNestedStructListArgumentRequest::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPUnitTestingClusterTestListInt8UReverseRequestCallback + : public Callback::Callback +{ +public: + CHIPUnitTestingClusterTestListInt8UReverseRequestCallback(jobject javaCallback); + + ~CHIPUnitTestingClusterTestListInt8UReverseRequestCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::UnitTesting::Commands::TestListInt8UReverseRequest::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPUnitTestingClusterTestEnumsRequestCallback : public Callback::Callback +{ +public: + CHIPUnitTestingClusterTestEnumsRequestCallback(jobject javaCallback); + + ~CHIPUnitTestingClusterTestEnumsRequestCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::UnitTesting::Commands::TestEnumsRequest::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPUnitTestingClusterTestNullableOptionalRequestCallback + : public Callback::Callback +{ +public: + CHIPUnitTestingClusterTestNullableOptionalRequestCallback(jobject javaCallback); + + ~CHIPUnitTestingClusterTestNullableOptionalRequestCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::UnitTesting::Commands::TestNullableOptionalRequest::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPUnitTestingClusterTestComplexNullableOptionalRequestCallback + : public Callback::Callback +{ +public: + CHIPUnitTestingClusterTestComplexNullableOptionalRequestCallback(jobject javaCallback); + + ~CHIPUnitTestingClusterTestComplexNullableOptionalRequestCallback(); + + static void + CallbackFn(void * context, + const chip::app::Clusters::UnitTesting::Commands::TestComplexNullableOptionalRequest::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPUnitTestingClusterSimpleStructEchoRequestCallback + : public Callback::Callback +{ +public: + CHIPUnitTestingClusterSimpleStructEchoRequestCallback(jobject javaCallback); + + ~CHIPUnitTestingClusterSimpleStructEchoRequestCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::UnitTesting::Commands::SimpleStructEchoRequest::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPUnitTestingClusterTimedInvokeRequestCallback + : public Callback::Callback +{ +public: + CHIPUnitTestingClusterTimedInvokeRequestCallback(jobject javaCallback); + + ~CHIPUnitTestingClusterTimedInvokeRequestCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::UnitTesting::Commands::TimedInvokeRequest::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPUnitTestingClusterTestSimpleOptionalArgumentRequestCallback + : public Callback::Callback +{ +public: + CHIPUnitTestingClusterTestSimpleOptionalArgumentRequestCallback(jobject javaCallback); + + ~CHIPUnitTestingClusterTestSimpleOptionalArgumentRequestCallback(); + + static void + CallbackFn(void * context, + const chip::app::Clusters::UnitTesting::Commands::TestSimpleOptionalArgumentRequest::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPUnitTestingClusterTestEmitTestEventRequestCallback + : public Callback::Callback +{ +public: + CHIPUnitTestingClusterTestEmitTestEventRequestCallback(jobject javaCallback); + + ~CHIPUnitTestingClusterTestEmitTestEventRequestCallback(); + + static void CallbackFn(void * context, + const chip::app::Clusters::UnitTesting::Commands::TestEmitTestEventRequest::DecodableType & data); + +private: + jobject javaCallbackRef; +}; + +class CHIPUnitTestingClusterTestEmitTestFabricScopedEventRequestCallback + : public Callback::Callback +{ +public: + CHIPUnitTestingClusterTestEmitTestFabricScopedEventRequestCallback(jobject javaCallback); + + ~CHIPUnitTestingClusterTestEmitTestFabricScopedEventRequestCallback(); + + static void + CallbackFn(void * context, + const chip::app::Clusters::UnitTesting::Commands::TestEmitTestFabricScopedEventRequest::DecodableType & data); private: jobject javaCallbackRef; From d40e4519ef82557375f123af7d73ee8d9bde31fc Mon Sep 17 00:00:00 2001 From: Andrei Litvin Date: Tue, 28 Mar 2023 14:12:18 -0400 Subject: [PATCH 6/8] Update invoke callbacks too to use updated stateless loop methods --- .../templates/CHIPInvokeCallbacks-src.zapt | 18 +- .../zap-generated/CHIPInvokeCallbacks.cpp | 15545 +++++++++++++--- 2 files changed, 13410 insertions(+), 2153 deletions(-) diff --git a/src/controller/java/templates/CHIPInvokeCallbacks-src.zapt b/src/controller/java/templates/CHIPInvokeCallbacks-src.zapt index f5f8b8cdf4b288..eeeb07d26c9154 100644 --- a/src/controller/java/templates/CHIPInvokeCallbacks-src.zapt +++ b/src/controller/java/templates/CHIPInvokeCallbacks-src.zapt @@ -1,5 +1,4 @@ {{> header}} -{{#if (chip_has_client_clusters)}} #include #include "CHIPInvokeCallbacks.h" @@ -15,8 +14,8 @@ namespace chip { -{{#chip_client_clusters}} -{{#chip_cluster_responses}} +{{#all_user_clusters}} + {{#zcl_commands_source_client}} CHIP{{asUpperCamelCase parent.name}}Cluster{{asUpperCamelCase name}}Callback::CHIP{{asUpperCamelCase parent.name}}Cluster{{asUpperCamelCase name}}Callback(jobject javaCallback): Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -61,16 +60,15 @@ void CHIP{{asUpperCamelCase parent.name}}Cluster{{asUpperCamelCase name}}Callbac // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "({{#chip_cluster_response_arguments}}{{asJniSignature type null parent.parent.name true}}{{/chip_cluster_response_arguments}})V", &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "({{#zcl_command_arguments}}{{asJniSignature type null parent.parent.name true}}{{/zcl_command_arguments}})V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - {{#chip_cluster_response_arguments}} + {{#zcl_command_arguments}} {{>decode_value source=(concat "dataResponse." (asLowerCamelCase name)) target=(asSymbol label) cluster=(asUpperCamelCase parent.parent.name) depth=0}} - {{/chip_cluster_response_arguments}} + {{/zcl_command_arguments}} - env->CallVoidMethod(javaCallbackRef, javaMethod{{#chip_cluster_response_arguments}}, {{asSymbol label}}{{/chip_cluster_response_arguments}}); + env->CallVoidMethod(javaCallbackRef, javaMethod{{#zcl_command_arguments}}, {{asSymbol label}}{{/zcl_command_arguments}}); } -{{/chip_cluster_responses}} -{{/chip_client_clusters}} + {{/zcl_commands_source_client}} +{{/all_user_clusters}} } // namespace chip -{{/if}} diff --git a/src/controller/java/zap-generated/CHIPInvokeCallbacks.cpp b/src/controller/java/zap-generated/CHIPInvokeCallbacks.cpp index 88afa7fa20233d..8031a81dc512a4 100644 --- a/src/controller/java/zap-generated/CHIPInvokeCallbacks.cpp +++ b/src/controller/java/zap-generated/CHIPInvokeCallbacks.cpp @@ -29,8 +29,8 @@ namespace chip { -CHIPGroupsClusterAddGroupResponseCallback::CHIPGroupsClusterAddGroupResponseCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPIdentifyClusterIdentifyCallback::CHIPIdentifyClusterIdentifyCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -46,7 +46,7 @@ CHIPGroupsClusterAddGroupResponseCallback::CHIPGroupsClusterAddGroupResponseCall } } -CHIPGroupsClusterAddGroupResponseCallback::~CHIPGroupsClusterAddGroupResponseCallback() +CHIPIdentifyClusterIdentifyCallback::~CHIPIdentifyClusterIdentifyCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -57,8 +57,8 @@ CHIPGroupsClusterAddGroupResponseCallback::~CHIPGroupsClusterAddGroupResponseCal env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPGroupsClusterAddGroupResponseCallback::CallbackFn( - void * context, const chip::app::Clusters::Groups::Commands::AddGroupResponse::DecodableType & dataResponse) +void CHIPIdentifyClusterIdentifyCallback::CallbackFn( + void * context, const chip::app::Clusters::Identify::Commands::Identify::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -68,9 +68,68 @@ void CHIPGroupsClusterAddGroupResponseCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject IdentifyTime; + std::string IdentifyTimeClassName = "java/lang/Integer"; + std::string IdentifyTimeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(IdentifyTimeClassName.c_str(), IdentifyTimeCtorSignature.c_str(), + dataResponse.identifyTime, IdentifyTime); + + env->CallVoidMethod(javaCallbackRef, javaMethod, IdentifyTime); +} +CHIPIdentifyClusterTriggerEffectCallback::CHIPIdentifyClusterTriggerEffectCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPIdentifyClusterTriggerEffectCallback::~CHIPIdentifyClusterTriggerEffectCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPIdentifyClusterTriggerEffectCallback::CallbackFn( + void * context, const chip::app::Clusters::Identify::Commands::TriggerEffect::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; @@ -81,21 +140,23 @@ void CHIPGroupsClusterAddGroupResponseCallback::CallbackFn( &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject Status; - std::string StatusClassName = "java/lang/Integer"; - std::string StatusCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), - dataResponse.status, Status); - jobject GroupID; - std::string GroupIDClassName = "java/lang/Integer"; - std::string GroupIDCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(GroupIDClassName.c_str(), GroupIDCtorSignature.c_str(), - dataResponse.groupID, GroupID); - - env->CallVoidMethod(javaCallbackRef, javaMethod, Status, GroupID); + jobject EffectIdentifier; + std::string EffectIdentifierClassName = "java/lang/Integer"; + std::string EffectIdentifierCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + EffectIdentifierClassName.c_str(), EffectIdentifierCtorSignature.c_str(), + static_cast(dataResponse.effectIdentifier), EffectIdentifier); + jobject EffectVariant; + std::string EffectVariantClassName = "java/lang/Integer"; + std::string EffectVariantCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(EffectVariantClassName.c_str(), + EffectVariantCtorSignature.c_str(), + static_cast(dataResponse.effectVariant), EffectVariant); + + env->CallVoidMethod(javaCallbackRef, javaMethod, EffectIdentifier, EffectVariant); } -CHIPGroupsClusterViewGroupResponseCallback::CHIPGroupsClusterViewGroupResponseCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPGroupsClusterAddGroupCallback::CHIPGroupsClusterAddGroupCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -111,7 +172,7 @@ CHIPGroupsClusterViewGroupResponseCallback::CHIPGroupsClusterViewGroupResponseCa } } -CHIPGroupsClusterViewGroupResponseCallback::~CHIPGroupsClusterViewGroupResponseCallback() +CHIPGroupsClusterAddGroupCallback::~CHIPGroupsClusterAddGroupCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -122,8 +183,8 @@ CHIPGroupsClusterViewGroupResponseCallback::~CHIPGroupsClusterViewGroupResponseC env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPGroupsClusterViewGroupResponseCallback::CallbackFn( - void * context, const chip::app::Clusters::Groups::Commands::ViewGroupResponse::DecodableType & dataResponse) +void CHIPGroupsClusterAddGroupCallback::CallbackFn( + void * context, const chip::app::Clusters::Groups::Commands::AddGroup::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -133,24 +194,18 @@ void CHIPGroupsClusterViewGroupResponseCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr cppCallback( + reinterpret_cast(context), chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;)V", &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/String;)V", + &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject Status; - std::string StatusClassName = "java/lang/Integer"; - std::string StatusCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), - dataResponse.status, Status); jobject GroupID; std::string GroupIDClassName = "java/lang/Integer"; std::string GroupIDCtorSignature = "(I)V"; @@ -159,10 +214,10 @@ void CHIPGroupsClusterViewGroupResponseCallback::CallbackFn( jobject GroupName; GroupName = env->NewStringUTF(std::string(dataResponse.groupName.data(), dataResponse.groupName.size()).c_str()); - env->CallVoidMethod(javaCallbackRef, javaMethod, Status, GroupID, GroupName); + env->CallVoidMethod(javaCallbackRef, javaMethod, GroupID, GroupName); } -CHIPGroupsClusterGetGroupMembershipResponseCallback::CHIPGroupsClusterGetGroupMembershipResponseCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPGroupsClusterViewGroupCallback::CHIPGroupsClusterViewGroupCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -178,7 +233,7 @@ CHIPGroupsClusterGetGroupMembershipResponseCallback::CHIPGroupsClusterGetGroupMe } } -CHIPGroupsClusterGetGroupMembershipResponseCallback::~CHIPGroupsClusterGetGroupMembershipResponseCallback() +CHIPGroupsClusterViewGroupCallback::~CHIPGroupsClusterViewGroupCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -189,8 +244,8 @@ CHIPGroupsClusterGetGroupMembershipResponseCallback::~CHIPGroupsClusterGetGroupM env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPGroupsClusterGetGroupMembershipResponseCallback::CallbackFn( - void * context, const chip::app::Clusters::Groups::Commands::GetGroupMembershipResponse::DecodableType & dataResponse) +void CHIPGroupsClusterViewGroupCallback::CallbackFn( + void * context, const chip::app::Clusters::Groups::Commands::ViewGroup::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -200,32 +255,77 @@ void CHIPGroupsClusterGetGroupMembershipResponseCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/util/ArrayList;)V", - &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject Capacity; - if (dataResponse.capacity.IsNull()) + jobject GroupID; + std::string GroupIDClassName = "java/lang/Integer"; + std::string GroupIDCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(GroupIDClassName.c_str(), GroupIDCtorSignature.c_str(), + dataResponse.groupID, GroupID); + + env->CallVoidMethod(javaCallbackRef, javaMethod, GroupID); +} +CHIPGroupsClusterGetGroupMembershipCallback::CHIPGroupsClusterGetGroupMembershipCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; + } + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) { - Capacity = nullptr; + ChipLogError(Zcl, "Could not create global reference for Java callback"); } - else +} + +CHIPGroupsClusterGetGroupMembershipCallback::~CHIPGroupsClusterGetGroupMembershipCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) { - std::string CapacityClassName = "java/lang/Integer"; - std::string CapacityCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(CapacityClassName.c_str(), CapacityCtorSignature.c_str(), - dataResponse.capacity.Value(), Capacity); + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPGroupsClusterGetGroupMembershipCallback::CallbackFn( + void * context, const chip::app::Clusters::Groups::Commands::GetGroupMembership::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/ArrayList;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + jobject GroupList; chip::JniReferences::GetInstance().CreateArrayList(GroupList); @@ -241,10 +341,10 @@ void CHIPGroupsClusterGetGroupMembershipResponseCallback::CallbackFn( chip::JniReferences::GetInstance().AddToList(GroupList, newElement_0); } - env->CallVoidMethod(javaCallbackRef, javaMethod, Capacity, GroupList); + env->CallVoidMethod(javaCallbackRef, javaMethod, GroupList); } -CHIPGroupsClusterRemoveGroupResponseCallback::CHIPGroupsClusterRemoveGroupResponseCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPGroupsClusterRemoveGroupCallback::CHIPGroupsClusterRemoveGroupCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -260,7 +360,7 @@ CHIPGroupsClusterRemoveGroupResponseCallback::CHIPGroupsClusterRemoveGroupRespon } } -CHIPGroupsClusterRemoveGroupResponseCallback::~CHIPGroupsClusterRemoveGroupResponseCallback() +CHIPGroupsClusterRemoveGroupCallback::~CHIPGroupsClusterRemoveGroupCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -271,8 +371,8 @@ CHIPGroupsClusterRemoveGroupResponseCallback::~CHIPGroupsClusterRemoveGroupRespo env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPGroupsClusterRemoveGroupResponseCallback::CallbackFn( - void * context, const chip::app::Clusters::Groups::Commands::RemoveGroupResponse::DecodableType & dataResponse) +void CHIPGroupsClusterRemoveGroupCallback::CallbackFn( + void * context, const chip::app::Clusters::Groups::Commands::RemoveGroup::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -282,34 +382,28 @@ void CHIPGroupsClusterRemoveGroupResponseCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;)V", - &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject Status; - std::string StatusClassName = "java/lang/Integer"; - std::string StatusCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), - dataResponse.status, Status); jobject GroupID; std::string GroupIDClassName = "java/lang/Integer"; std::string GroupIDCtorSignature = "(I)V"; chip::JniReferences::GetInstance().CreateBoxedObject(GroupIDClassName.c_str(), GroupIDCtorSignature.c_str(), dataResponse.groupID, GroupID); - env->CallVoidMethod(javaCallbackRef, javaMethod, Status, GroupID); + env->CallVoidMethod(javaCallbackRef, javaMethod, GroupID); } -CHIPScenesClusterAddSceneResponseCallback::CHIPScenesClusterAddSceneResponseCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPGroupsClusterRemoveAllGroupsCallback::CHIPGroupsClusterRemoveAllGroupsCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -325,7 +419,7 @@ CHIPScenesClusterAddSceneResponseCallback::CHIPScenesClusterAddSceneResponseCall } } -CHIPScenesClusterAddSceneResponseCallback::~CHIPScenesClusterAddSceneResponseCallback() +CHIPGroupsClusterRemoveAllGroupsCallback::~CHIPGroupsClusterRemoveAllGroupsCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -336,8 +430,8 @@ CHIPScenesClusterAddSceneResponseCallback::~CHIPScenesClusterAddSceneResponseCal env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPScenesClusterAddSceneResponseCallback::CallbackFn( - void * context, const chip::app::Clusters::Scenes::Commands::AddSceneResponse::DecodableType & dataResponse) +void CHIPGroupsClusterRemoveAllGroupsCallback::CallbackFn( + void * context, const chip::app::Clusters::Groups::Commands::RemoveAllGroups::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -347,39 +441,84 @@ void CHIPScenesClusterAddSceneResponseCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + env->CallVoidMethod(javaCallbackRef, javaMethod); +} +CHIPGroupsClusterAddGroupIfIdentifyingCallback::CHIPGroupsClusterAddGroupIfIdentifyingCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPGroupsClusterAddGroupIfIdentifyingCallback::~CHIPGroupsClusterAddGroupIfIdentifyingCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPGroupsClusterAddGroupIfIdentifyingCallback::CallbackFn( + void * context, const chip::app::Clusters::Groups::Commands::AddGroupIfIdentifying::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/String;)V", + &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject Status; - std::string StatusClassName = "java/lang/Integer"; - std::string StatusCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), - dataResponse.status, Status); jobject GroupID; std::string GroupIDClassName = "java/lang/Integer"; std::string GroupIDCtorSignature = "(I)V"; chip::JniReferences::GetInstance().CreateBoxedObject(GroupIDClassName.c_str(), GroupIDCtorSignature.c_str(), dataResponse.groupID, GroupID); - jobject SceneID; - std::string SceneIDClassName = "java/lang/Integer"; - std::string SceneIDCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(SceneIDClassName.c_str(), SceneIDCtorSignature.c_str(), - dataResponse.sceneID, SceneID); + jobject GroupName; + GroupName = env->NewStringUTF(std::string(dataResponse.groupName.data(), dataResponse.groupName.size()).c_str()); - env->CallVoidMethod(javaCallbackRef, javaMethod, Status, GroupID, SceneID); + env->CallVoidMethod(javaCallbackRef, javaMethod, GroupID, GroupName); } -CHIPScenesClusterViewSceneResponseCallback::CHIPScenesClusterViewSceneResponseCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPScenesClusterAddSceneCallback::CHIPScenesClusterAddSceneCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -395,7 +534,7 @@ CHIPScenesClusterViewSceneResponseCallback::CHIPScenesClusterViewSceneResponseCa } } -CHIPScenesClusterViewSceneResponseCallback::~CHIPScenesClusterViewSceneResponseCallback() +CHIPScenesClusterAddSceneCallback::~CHIPScenesClusterAddSceneCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -406,8 +545,8 @@ CHIPScenesClusterViewSceneResponseCallback::~CHIPScenesClusterViewSceneResponseC env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPScenesClusterViewSceneResponseCallback::CallbackFn( - void * context, const chip::app::Clusters::Scenes::Commands::ViewSceneResponse::DecodableType & dataResponse) +void CHIPScenesClusterAddSceneCallback::CallbackFn( + void * context, const chip::app::Clusters::Scenes::Commands::AddScene::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -417,9 +556,8 @@ void CHIPScenesClusterViewSceneResponseCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr cppCallback( + reinterpret_cast(context), chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; @@ -428,15 +566,9 @@ void CHIPScenesClusterViewSceneResponseCallback::CallbackFn( err = JniReferences::GetInstance().FindMethod( env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;)V", - &javaMethod); + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;Ljava/util/ArrayList;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject Status; - std::string StatusClassName = "java/lang/Integer"; - std::string StatusCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), - dataResponse.status, Status); jobject GroupID; std::string GroupIDClassName = "java/lang/Integer"; std::string GroupIDCtorSignature = "(I)V"; @@ -448,141 +580,111 @@ void CHIPScenesClusterViewSceneResponseCallback::CallbackFn( chip::JniReferences::GetInstance().CreateBoxedObject(SceneIDClassName.c_str(), SceneIDCtorSignature.c_str(), dataResponse.sceneID, SceneID); jobject TransitionTime; - if (!dataResponse.transitionTime.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, TransitionTime); - } - else - { - jobject TransitionTimeInsideOptional; - std::string TransitionTimeInsideOptionalClassName = "java/lang/Integer"; - std::string TransitionTimeInsideOptionalCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - TransitionTimeInsideOptionalClassName.c_str(), TransitionTimeInsideOptionalCtorSignature.c_str(), - dataResponse.transitionTime.Value(), TransitionTimeInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(TransitionTimeInsideOptional, TransitionTime); - } + std::string TransitionTimeClassName = "java/lang/Integer"; + std::string TransitionTimeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + TransitionTimeClassName.c_str(), TransitionTimeCtorSignature.c_str(), dataResponse.transitionTime, TransitionTime); jobject SceneName; - if (!dataResponse.sceneName.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, SceneName); - } - else - { - jobject SceneNameInsideOptional; - SceneNameInsideOptional = - env->NewStringUTF(std::string(dataResponse.sceneName.Value().data(), dataResponse.sceneName.Value().size()).c_str()); - chip::JniReferences::GetInstance().CreateOptional(SceneNameInsideOptional, SceneName); - } + SceneName = env->NewStringUTF(std::string(dataResponse.sceneName.data(), dataResponse.sceneName.size()).c_str()); jobject ExtensionFieldSets; - if (!dataResponse.extensionFieldSets.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, ExtensionFieldSets); - } - else - { - jobject ExtensionFieldSetsInsideOptional; - chip::JniReferences::GetInstance().CreateArrayList(ExtensionFieldSetsInsideOptional); + chip::JniReferences::GetInstance().CreateArrayList(ExtensionFieldSets); - auto iter_ExtensionFieldSetsInsideOptional_1 = dataResponse.extensionFieldSets.Value().begin(); - while (iter_ExtensionFieldSetsInsideOptional_1.Next()) + auto iter_ExtensionFieldSets_0 = dataResponse.extensionFieldSets.begin(); + while (iter_ExtensionFieldSets_0.Next()) + { + auto & entry_0 = iter_ExtensionFieldSets_0.GetValue(); + jobject newElement_0; + jobject newElement_0_clusterID; + std::string newElement_0_clusterIDClassName = "java/lang/Long"; + std::string newElement_0_clusterIDCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0_clusterIDClassName.c_str(), + newElement_0_clusterIDCtorSignature.c_str(), + entry_0.clusterID, newElement_0_clusterID); + jobject newElement_0_attributeValueList; + chip::JniReferences::GetInstance().CreateArrayList(newElement_0_attributeValueList); + + auto iter_newElement_0_attributeValueList_2 = entry_0.attributeValueList.begin(); + while (iter_newElement_0_attributeValueList_2.Next()) { - auto & entry_1 = iter_ExtensionFieldSetsInsideOptional_1.GetValue(); - jobject newElement_1; - jobject newElement_1_clusterID; - std::string newElement_1_clusterIDClassName = "java/lang/Long"; - std::string newElement_1_clusterIDCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(newElement_1_clusterIDClassName.c_str(), - newElement_1_clusterIDCtorSignature.c_str(), - entry_1.clusterID, newElement_1_clusterID); - jobject newElement_1_attributeValueList; - chip::JniReferences::GetInstance().CreateArrayList(newElement_1_attributeValueList); - - auto iter_newElement_1_attributeValueList_3 = entry_1.attributeValueList.begin(); - while (iter_newElement_1_attributeValueList_3.Next()) + auto & entry_2 = iter_newElement_0_attributeValueList_2.GetValue(); + jobject newElement_2; + jobject newElement_2_attributeID; + if (!entry_2.attributeID.HasValue()) { - auto & entry_3 = iter_newElement_1_attributeValueList_3.GetValue(); - jobject newElement_3; - jobject newElement_3_attributeID; - if (!entry_3.attributeID.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, newElement_3_attributeID); - } - else - { - jobject newElement_3_attributeIDInsideOptional; - std::string newElement_3_attributeIDInsideOptionalClassName = "java/lang/Long"; - std::string newElement_3_attributeIDInsideOptionalCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_3_attributeIDInsideOptionalClassName.c_str(), - newElement_3_attributeIDInsideOptionalCtorSignature.c_str(), entry_3.attributeID.Value(), - newElement_3_attributeIDInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(newElement_3_attributeIDInsideOptional, - newElement_3_attributeID); - } - jobject newElement_3_attributeValue; - chip::JniReferences::GetInstance().CreateArrayList(newElement_3_attributeValue); - - auto iter_newElement_3_attributeValue_5 = entry_3.attributeValue.begin(); - while (iter_newElement_3_attributeValue_5.Next()) - { - auto & entry_5 = iter_newElement_3_attributeValue_5.GetValue(); - jobject newElement_5; - std::string newElement_5ClassName = "java/lang/Integer"; - std::string newElement_5CtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_5ClassName.c_str(), newElement_5CtorSignature.c_str(), entry_5, newElement_5); - chip::JniReferences::GetInstance().AddToList(newElement_3_attributeValue, newElement_5); - } - - jclass attributeValuePairStructClass_4; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$ScenesClusterAttributeValuePair", attributeValuePairStructClass_4); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$ScenesClusterAttributeValuePair"); - return; - } - jmethodID attributeValuePairStructCtor_4 = - env->GetMethodID(attributeValuePairStructClass_4, "", "(Ljava/util/Optional;Ljava/util/ArrayList;)V"); - if (attributeValuePairStructCtor_4 == nullptr) - { - ChipLogError(Zcl, "Could not find ChipStructs$ScenesClusterAttributeValuePair constructor"); - return; - } + chip::JniReferences::GetInstance().CreateOptional(nullptr, newElement_2_attributeID); + } + else + { + jobject newElement_2_attributeIDInsideOptional; + std::string newElement_2_attributeIDInsideOptionalClassName = "java/lang/Long"; + std::string newElement_2_attributeIDInsideOptionalCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_2_attributeIDInsideOptionalClassName.c_str(), + newElement_2_attributeIDInsideOptionalCtorSignature.c_str(), entry_2.attributeID.Value(), + newElement_2_attributeIDInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(newElement_2_attributeIDInsideOptional, newElement_2_attributeID); + } + jobject newElement_2_attributeValue; + chip::JniReferences::GetInstance().CreateArrayList(newElement_2_attributeValue); - newElement_3 = env->NewObject(attributeValuePairStructClass_4, attributeValuePairStructCtor_4, - newElement_3_attributeID, newElement_3_attributeValue); - chip::JniReferences::GetInstance().AddToList(newElement_1_attributeValueList, newElement_3); + auto iter_newElement_2_attributeValue_4 = entry_2.attributeValue.begin(); + while (iter_newElement_2_attributeValue_4.Next()) + { + auto & entry_4 = iter_newElement_2_attributeValue_4.GetValue(); + jobject newElement_4; + std::string newElement_4ClassName = "java/lang/Integer"; + std::string newElement_4CtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_4ClassName.c_str(), newElement_4CtorSignature.c_str(), entry_4, newElement_4); + chip::JniReferences::GetInstance().AddToList(newElement_2_attributeValue, newElement_4); } - jclass extensionFieldSetStructClass_2; + jclass attributeValuePairStructClass_3; err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$ScenesClusterExtensionFieldSet", extensionFieldSetStructClass_2); + env, "chip/devicecontroller/ChipStructs$ScenesClusterAttributeValuePair", attributeValuePairStructClass_3); if (err != CHIP_NO_ERROR) { - ChipLogError(Zcl, "Could not find class ChipStructs$ScenesClusterExtensionFieldSet"); + ChipLogError(Zcl, "Could not find class ChipStructs$ScenesClusterAttributeValuePair"); return; } - jmethodID extensionFieldSetStructCtor_2 = - env->GetMethodID(extensionFieldSetStructClass_2, "", "(Ljava/lang/Long;Ljava/util/ArrayList;)V"); - if (extensionFieldSetStructCtor_2 == nullptr) + jmethodID attributeValuePairStructCtor_3 = + env->GetMethodID(attributeValuePairStructClass_3, "", "(Ljava/util/Optional;Ljava/util/ArrayList;)V"); + if (attributeValuePairStructCtor_3 == nullptr) { - ChipLogError(Zcl, "Could not find ChipStructs$ScenesClusterExtensionFieldSet constructor"); + ChipLogError(Zcl, "Could not find ChipStructs$ScenesClusterAttributeValuePair constructor"); return; } - newElement_1 = env->NewObject(extensionFieldSetStructClass_2, extensionFieldSetStructCtor_2, newElement_1_clusterID, - newElement_1_attributeValueList); - chip::JniReferences::GetInstance().AddToList(ExtensionFieldSetsInsideOptional, newElement_1); + newElement_2 = env->NewObject(attributeValuePairStructClass_3, attributeValuePairStructCtor_3, newElement_2_attributeID, + newElement_2_attributeValue); + chip::JniReferences::GetInstance().AddToList(newElement_0_attributeValueList, newElement_2); + } + + jclass extensionFieldSetStructClass_1; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$ScenesClusterExtensionFieldSet", extensionFieldSetStructClass_1); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$ScenesClusterExtensionFieldSet"); + return; + } + jmethodID extensionFieldSetStructCtor_1 = + env->GetMethodID(extensionFieldSetStructClass_1, "", "(Ljava/lang/Long;Ljava/util/ArrayList;)V"); + if (extensionFieldSetStructCtor_1 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$ScenesClusterExtensionFieldSet constructor"); + return; } - chip::JniReferences::GetInstance().CreateOptional(ExtensionFieldSetsInsideOptional, ExtensionFieldSets); + + newElement_0 = env->NewObject(extensionFieldSetStructClass_1, extensionFieldSetStructCtor_1, newElement_0_clusterID, + newElement_0_attributeValueList); + chip::JniReferences::GetInstance().AddToList(ExtensionFieldSets, newElement_0); } - env->CallVoidMethod(javaCallbackRef, javaMethod, Status, GroupID, SceneID, TransitionTime, SceneName, ExtensionFieldSets); + env->CallVoidMethod(javaCallbackRef, javaMethod, GroupID, SceneID, TransitionTime, SceneName, ExtensionFieldSets); } -CHIPScenesClusterRemoveSceneResponseCallback::CHIPScenesClusterRemoveSceneResponseCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPScenesClusterViewSceneCallback::CHIPScenesClusterViewSceneCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -598,7 +700,7 @@ CHIPScenesClusterRemoveSceneResponseCallback::CHIPScenesClusterRemoveSceneRespon } } -CHIPScenesClusterRemoveSceneResponseCallback::~CHIPScenesClusterRemoveSceneResponseCallback() +CHIPScenesClusterViewSceneCallback::~CHIPScenesClusterViewSceneCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -609,8 +711,8 @@ CHIPScenesClusterRemoveSceneResponseCallback::~CHIPScenesClusterRemoveSceneRespo env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPScenesClusterRemoveSceneResponseCallback::CallbackFn( - void * context, const chip::app::Clusters::Scenes::Commands::RemoveSceneResponse::DecodableType & dataResponse) +void CHIPScenesClusterViewSceneCallback::CallbackFn( + void * context, const chip::app::Clusters::Scenes::Commands::ViewScene::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -620,24 +722,19 @@ void CHIPScenesClusterRemoveSceneResponseCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;)V", + &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject Status; - std::string StatusClassName = "java/lang/Integer"; - std::string StatusCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), - dataResponse.status, Status); jobject GroupID; std::string GroupIDClassName = "java/lang/Integer"; std::string GroupIDCtorSignature = "(I)V"; @@ -649,10 +746,10 @@ void CHIPScenesClusterRemoveSceneResponseCallback::CallbackFn( chip::JniReferences::GetInstance().CreateBoxedObject(SceneIDClassName.c_str(), SceneIDCtorSignature.c_str(), dataResponse.sceneID, SceneID); - env->CallVoidMethod(javaCallbackRef, javaMethod, Status, GroupID, SceneID); + env->CallVoidMethod(javaCallbackRef, javaMethod, GroupID, SceneID); } -CHIPScenesClusterRemoveAllScenesResponseCallback::CHIPScenesClusterRemoveAllScenesResponseCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPScenesClusterRemoveSceneCallback::CHIPScenesClusterRemoveSceneCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -668,7 +765,7 @@ CHIPScenesClusterRemoveAllScenesResponseCallback::CHIPScenesClusterRemoveAllScen } } -CHIPScenesClusterRemoveAllScenesResponseCallback::~CHIPScenesClusterRemoveAllScenesResponseCallback() +CHIPScenesClusterRemoveSceneCallback::~CHIPScenesClusterRemoveSceneCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -679,8 +776,8 @@ CHIPScenesClusterRemoveAllScenesResponseCallback::~CHIPScenesClusterRemoveAllSce env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPScenesClusterRemoveAllScenesResponseCallback::CallbackFn( - void * context, const chip::app::Clusters::Scenes::Commands::RemoveAllScenesResponse::DecodableType & dataResponse) +void CHIPScenesClusterRemoveSceneCallback::CallbackFn( + void * context, const chip::app::Clusters::Scenes::Commands::RemoveScene::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -690,9 +787,9 @@ void CHIPScenesClusterRemoveAllScenesResponseCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; @@ -703,21 +800,21 @@ void CHIPScenesClusterRemoveAllScenesResponseCallback::CallbackFn( &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject Status; - std::string StatusClassName = "java/lang/Integer"; - std::string StatusCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), - dataResponse.status, Status); jobject GroupID; std::string GroupIDClassName = "java/lang/Integer"; std::string GroupIDCtorSignature = "(I)V"; chip::JniReferences::GetInstance().CreateBoxedObject(GroupIDClassName.c_str(), GroupIDCtorSignature.c_str(), dataResponse.groupID, GroupID); + jobject SceneID; + std::string SceneIDClassName = "java/lang/Integer"; + std::string SceneIDCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(SceneIDClassName.c_str(), SceneIDCtorSignature.c_str(), + dataResponse.sceneID, SceneID); - env->CallVoidMethod(javaCallbackRef, javaMethod, Status, GroupID); + env->CallVoidMethod(javaCallbackRef, javaMethod, GroupID, SceneID); } -CHIPScenesClusterStoreSceneResponseCallback::CHIPScenesClusterStoreSceneResponseCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPScenesClusterRemoveAllScenesCallback::CHIPScenesClusterRemoveAllScenesCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -733,7 +830,7 @@ CHIPScenesClusterStoreSceneResponseCallback::CHIPScenesClusterStoreSceneResponse } } -CHIPScenesClusterStoreSceneResponseCallback::~CHIPScenesClusterStoreSceneResponseCallback() +CHIPScenesClusterRemoveAllScenesCallback::~CHIPScenesClusterRemoveAllScenesCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -744,8 +841,8 @@ CHIPScenesClusterStoreSceneResponseCallback::~CHIPScenesClusterStoreSceneRespons env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPScenesClusterStoreSceneResponseCallback::CallbackFn( - void * context, const chip::app::Clusters::Scenes::Commands::StoreSceneResponse::DecodableType & dataResponse) +void CHIPScenesClusterRemoveAllScenesCallback::CallbackFn( + void * context, const chip::app::Clusters::Scenes::Commands::RemoveAllScenes::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -755,39 +852,28 @@ void CHIPScenesClusterStoreSceneResponseCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject Status; - std::string StatusClassName = "java/lang/Integer"; - std::string StatusCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), - dataResponse.status, Status); jobject GroupID; std::string GroupIDClassName = "java/lang/Integer"; std::string GroupIDCtorSignature = "(I)V"; chip::JniReferences::GetInstance().CreateBoxedObject(GroupIDClassName.c_str(), GroupIDCtorSignature.c_str(), dataResponse.groupID, GroupID); - jobject SceneID; - std::string SceneIDClassName = "java/lang/Integer"; - std::string SceneIDCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(SceneIDClassName.c_str(), SceneIDCtorSignature.c_str(), - dataResponse.sceneID, SceneID); - env->CallVoidMethod(javaCallbackRef, javaMethod, Status, GroupID, SceneID); + env->CallVoidMethod(javaCallbackRef, javaMethod, GroupID); } -CHIPScenesClusterGetSceneMembershipResponseCallback::CHIPScenesClusterGetSceneMembershipResponseCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPScenesClusterStoreSceneCallback::CHIPScenesClusterStoreSceneCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -803,7 +889,7 @@ CHIPScenesClusterGetSceneMembershipResponseCallback::CHIPScenesClusterGetSceneMe } } -CHIPScenesClusterGetSceneMembershipResponseCallback::~CHIPScenesClusterGetSceneMembershipResponseCallback() +CHIPScenesClusterStoreSceneCallback::~CHIPScenesClusterStoreSceneCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -814,8 +900,8 @@ CHIPScenesClusterGetSceneMembershipResponseCallback::~CHIPScenesClusterGetSceneM env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPScenesClusterGetSceneMembershipResponseCallback::CallbackFn( - void * context, const chip::app::Clusters::Scenes::Commands::GetSceneMembershipResponse::DecodableType & dataResponse) +void CHIPScenesClusterStoreSceneCallback::CallbackFn( + void * context, const chip::app::Clusters::Scenes::Commands::StoreScene::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -825,78 +911,40 @@ void CHIPScenesClusterGetSceneMembershipResponseCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod( - env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/util/Optional;)V", - &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;)V", + &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject Status; - std::string StatusClassName = "java/lang/Integer"; - std::string StatusCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), - dataResponse.status, Status); - jobject Capacity; - if (dataResponse.capacity.IsNull()) - { - Capacity = nullptr; - } - else - { - std::string CapacityClassName = "java/lang/Integer"; - std::string CapacityCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(CapacityClassName.c_str(), CapacityCtorSignature.c_str(), - dataResponse.capacity.Value(), Capacity); - } jobject GroupID; std::string GroupIDClassName = "java/lang/Integer"; std::string GroupIDCtorSignature = "(I)V"; chip::JniReferences::GetInstance().CreateBoxedObject(GroupIDClassName.c_str(), GroupIDCtorSignature.c_str(), dataResponse.groupID, GroupID); - jobject SceneList; - if (!dataResponse.sceneList.HasValue()) + jobject SceneID; + std::string SceneIDClassName = "java/lang/Integer"; + std::string SceneIDCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(SceneIDClassName.c_str(), SceneIDCtorSignature.c_str(), + dataResponse.sceneID, SceneID); + + env->CallVoidMethod(javaCallbackRef, javaMethod, GroupID, SceneID); +} +CHIPScenesClusterRecallSceneCallback::CHIPScenesClusterRecallSceneCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) { - chip::JniReferences::GetInstance().CreateOptional(nullptr, SceneList); - } - else - { - jobject SceneListInsideOptional; - chip::JniReferences::GetInstance().CreateArrayList(SceneListInsideOptional); - - auto iter_SceneListInsideOptional_1 = dataResponse.sceneList.Value().begin(); - while (iter_SceneListInsideOptional_1.Next()) - { - auto & entry_1 = iter_SceneListInsideOptional_1.GetValue(); - jobject newElement_1; - std::string newElement_1ClassName = "java/lang/Integer"; - std::string newElement_1CtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(newElement_1ClassName.c_str(), - newElement_1CtorSignature.c_str(), entry_1, newElement_1); - chip::JniReferences::GetInstance().AddToList(SceneListInsideOptional, newElement_1); - } - chip::JniReferences::GetInstance().CreateOptional(SceneListInsideOptional, SceneList); - } - - env->CallVoidMethod(javaCallbackRef, javaMethod, Status, Capacity, GroupID, SceneList); -} -CHIPOtaSoftwareUpdateProviderClusterQueryImageResponseCallback::CHIPOtaSoftwareUpdateProviderClusterQueryImageResponseCallback( - jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not create global reference for Java callback"); - return; + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; } javaCallbackRef = env->NewGlobalRef(javaCallback); @@ -906,7 +954,7 @@ CHIPOtaSoftwareUpdateProviderClusterQueryImageResponseCallback::CHIPOtaSoftwareU } } -CHIPOtaSoftwareUpdateProviderClusterQueryImageResponseCallback::~CHIPOtaSoftwareUpdateProviderClusterQueryImageResponseCallback() +CHIPScenesClusterRecallSceneCallback::~CHIPScenesClusterRecallSceneCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -917,9 +965,8 @@ CHIPOtaSoftwareUpdateProviderClusterQueryImageResponseCallback::~CHIPOtaSoftware env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPOtaSoftwareUpdateProviderClusterQueryImageResponseCallback::CallbackFn( - void * context, - const chip::app::Clusters::OtaSoftwareUpdateProvider::Commands::QueryImageResponse::DecodableType & dataResponse) +void CHIPScenesClusterRecallSceneCallback::CallbackFn( + void * context, const chip::app::Clusters::Scenes::Commands::RecallScene::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -929,136 +976,56 @@ void CHIPOtaSoftwareUpdateProviderClusterQueryImageResponseCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod( - env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/" - "Optional;Ljava/util/Optional;Ljava/util/Optional;)V", - &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/util/Optional;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject Status; - std::string StatusClassName = "java/lang/Integer"; - std::string StatusCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), - static_cast(dataResponse.status), Status); - jobject DelayedActionTime; - if (!dataResponse.delayedActionTime.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, DelayedActionTime); - } - else - { - jobject DelayedActionTimeInsideOptional; - std::string DelayedActionTimeInsideOptionalClassName = "java/lang/Long"; - std::string DelayedActionTimeInsideOptionalCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - DelayedActionTimeInsideOptionalClassName.c_str(), DelayedActionTimeInsideOptionalCtorSignature.c_str(), - dataResponse.delayedActionTime.Value(), DelayedActionTimeInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(DelayedActionTimeInsideOptional, DelayedActionTime); - } - jobject ImageURI; - if (!dataResponse.imageURI.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, ImageURI); - } - else - { - jobject ImageURIInsideOptional; - ImageURIInsideOptional = - env->NewStringUTF(std::string(dataResponse.imageURI.Value().data(), dataResponse.imageURI.Value().size()).c_str()); - chip::JniReferences::GetInstance().CreateOptional(ImageURIInsideOptional, ImageURI); - } - jobject SoftwareVersion; - if (!dataResponse.softwareVersion.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, SoftwareVersion); - } - else - { - jobject SoftwareVersionInsideOptional; - std::string SoftwareVersionInsideOptionalClassName = "java/lang/Long"; - std::string SoftwareVersionInsideOptionalCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - SoftwareVersionInsideOptionalClassName.c_str(), SoftwareVersionInsideOptionalCtorSignature.c_str(), - dataResponse.softwareVersion.Value(), SoftwareVersionInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(SoftwareVersionInsideOptional, SoftwareVersion); - } - jobject SoftwareVersionString; - if (!dataResponse.softwareVersionString.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, SoftwareVersionString); - } - else - { - jobject SoftwareVersionStringInsideOptional; - SoftwareVersionStringInsideOptional = env->NewStringUTF( - std::string(dataResponse.softwareVersionString.Value().data(), dataResponse.softwareVersionString.Value().size()) - .c_str()); - chip::JniReferences::GetInstance().CreateOptional(SoftwareVersionStringInsideOptional, SoftwareVersionString); - } - jobject UpdateToken; - if (!dataResponse.updateToken.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, UpdateToken); - } - else - { - jobject UpdateTokenInsideOptional; - jbyteArray UpdateTokenInsideOptionalByteArray = - env->NewByteArray(static_cast(dataResponse.updateToken.Value().size())); - env->SetByteArrayRegion(UpdateTokenInsideOptionalByteArray, 0, static_cast(dataResponse.updateToken.Value().size()), - reinterpret_cast(dataResponse.updateToken.Value().data())); - UpdateTokenInsideOptional = UpdateTokenInsideOptionalByteArray; - chip::JniReferences::GetInstance().CreateOptional(UpdateTokenInsideOptional, UpdateToken); - } - jobject UserConsentNeeded; - if (!dataResponse.userConsentNeeded.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, UserConsentNeeded); - } - else - { - jobject UserConsentNeededInsideOptional; - std::string UserConsentNeededInsideOptionalClassName = "java/lang/Boolean"; - std::string UserConsentNeededInsideOptionalCtorSignature = "(Z)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - UserConsentNeededInsideOptionalClassName.c_str(), UserConsentNeededInsideOptionalCtorSignature.c_str(), - dataResponse.userConsentNeeded.Value(), UserConsentNeededInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(UserConsentNeededInsideOptional, UserConsentNeeded); - } - jobject MetadataForRequestor; - if (!dataResponse.metadataForRequestor.HasValue()) + jobject GroupID; + std::string GroupIDClassName = "java/lang/Integer"; + std::string GroupIDCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(GroupIDClassName.c_str(), GroupIDCtorSignature.c_str(), + dataResponse.groupID, GroupID); + jobject SceneID; + std::string SceneIDClassName = "java/lang/Integer"; + std::string SceneIDCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(SceneIDClassName.c_str(), SceneIDCtorSignature.c_str(), + dataResponse.sceneID, SceneID); + jobject TransitionTime; + if (!dataResponse.transitionTime.HasValue()) { - chip::JniReferences::GetInstance().CreateOptional(nullptr, MetadataForRequestor); + chip::JniReferences::GetInstance().CreateOptional(nullptr, TransitionTime); } else { - jobject MetadataForRequestorInsideOptional; - jbyteArray MetadataForRequestorInsideOptionalByteArray = - env->NewByteArray(static_cast(dataResponse.metadataForRequestor.Value().size())); - env->SetByteArrayRegion(MetadataForRequestorInsideOptionalByteArray, 0, - static_cast(dataResponse.metadataForRequestor.Value().size()), - reinterpret_cast(dataResponse.metadataForRequestor.Value().data())); - MetadataForRequestorInsideOptional = MetadataForRequestorInsideOptionalByteArray; - chip::JniReferences::GetInstance().CreateOptional(MetadataForRequestorInsideOptional, MetadataForRequestor); + jobject TransitionTimeInsideOptional; + if (dataResponse.transitionTime.Value().IsNull()) + { + TransitionTimeInsideOptional = nullptr; + } + else + { + std::string TransitionTimeInsideOptionalClassName = "java/lang/Integer"; + std::string TransitionTimeInsideOptionalCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + TransitionTimeInsideOptionalClassName.c_str(), TransitionTimeInsideOptionalCtorSignature.c_str(), + dataResponse.transitionTime.Value().Value(), TransitionTimeInsideOptional); + } + chip::JniReferences::GetInstance().CreateOptional(TransitionTimeInsideOptional, TransitionTime); } - env->CallVoidMethod(javaCallbackRef, javaMethod, Status, DelayedActionTime, ImageURI, SoftwareVersion, SoftwareVersionString, - UpdateToken, UserConsentNeeded, MetadataForRequestor); + env->CallVoidMethod(javaCallbackRef, javaMethod, GroupID, SceneID, TransitionTime); } -CHIPOtaSoftwareUpdateProviderClusterApplyUpdateResponseCallback::CHIPOtaSoftwareUpdateProviderClusterApplyUpdateResponseCallback( - jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPScenesClusterGetSceneMembershipCallback::CHIPScenesClusterGetSceneMembershipCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1074,7 +1041,7 @@ CHIPOtaSoftwareUpdateProviderClusterApplyUpdateResponseCallback::CHIPOtaSoftware } } -CHIPOtaSoftwareUpdateProviderClusterApplyUpdateResponseCallback::~CHIPOtaSoftwareUpdateProviderClusterApplyUpdateResponseCallback() +CHIPScenesClusterGetSceneMembershipCallback::~CHIPScenesClusterGetSceneMembershipCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1085,9 +1052,8 @@ CHIPOtaSoftwareUpdateProviderClusterApplyUpdateResponseCallback::~CHIPOtaSoftwar env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPOtaSoftwareUpdateProviderClusterApplyUpdateResponseCallback::CallbackFn( - void * context, - const chip::app::Clusters::OtaSoftwareUpdateProvider::Commands::ApplyUpdateResponse::DecodableType & dataResponse) +void CHIPScenesClusterGetSceneMembershipCallback::CallbackFn( + void * context, const chip::app::Clusters::Scenes::Commands::GetSceneMembership::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -1097,37 +1063,28 @@ void CHIPOtaSoftwareUpdateProviderClusterApplyUpdateResponseCallback::CallbackFn VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Long;)V", - &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject Action; - std::string ActionClassName = "java/lang/Integer"; - std::string ActionCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(ActionClassName.c_str(), ActionCtorSignature.c_str(), - static_cast(dataResponse.action), Action); - jobject DelayedActionTime; - std::string DelayedActionTimeClassName = "java/lang/Long"; - std::string DelayedActionTimeCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(DelayedActionTimeClassName.c_str(), - DelayedActionTimeCtorSignature.c_str(), - dataResponse.delayedActionTime, DelayedActionTime); + jobject GroupID; + std::string GroupIDClassName = "java/lang/Integer"; + std::string GroupIDCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(GroupIDClassName.c_str(), GroupIDCtorSignature.c_str(), + dataResponse.groupID, GroupID); - env->CallVoidMethod(javaCallbackRef, javaMethod, Action, DelayedActionTime); + env->CallVoidMethod(javaCallbackRef, javaMethod, GroupID); } -CHIPGeneralCommissioningClusterArmFailSafeResponseCallback::CHIPGeneralCommissioningClusterArmFailSafeResponseCallback( - jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPScenesClusterEnhancedAddSceneCallback::CHIPScenesClusterEnhancedAddSceneCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1143,7 +1100,7 @@ CHIPGeneralCommissioningClusterArmFailSafeResponseCallback::CHIPGeneralCommissio } } -CHIPGeneralCommissioningClusterArmFailSafeResponseCallback::~CHIPGeneralCommissioningClusterArmFailSafeResponseCallback() +CHIPScenesClusterEnhancedAddSceneCallback::~CHIPScenesClusterEnhancedAddSceneCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1154,8 +1111,8 @@ CHIPGeneralCommissioningClusterArmFailSafeResponseCallback::~CHIPGeneralCommissi env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPGeneralCommissioningClusterArmFailSafeResponseCallback::CallbackFn( - void * context, const chip::app::Clusters::GeneralCommissioning::Commands::ArmFailSafeResponse::DecodableType & dataResponse) +void CHIPScenesClusterEnhancedAddSceneCallback::CallbackFn( + void * context, const chip::app::Clusters::Scenes::Commands::EnhancedAddScene::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -1165,33 +1122,136 @@ void CHIPGeneralCommissioningClusterArmFailSafeResponseCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/String;)V", - &javaMethod); + err = JniReferences::GetInstance().FindMethod( + env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;Ljava/util/ArrayList;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject ErrorCode; - std::string ErrorCodeClassName = "java/lang/Integer"; - std::string ErrorCodeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(ErrorCodeClassName.c_str(), ErrorCodeCtorSignature.c_str(), - static_cast(dataResponse.errorCode), ErrorCode); - jobject DebugText; - DebugText = env->NewStringUTF(std::string(dataResponse.debugText.data(), dataResponse.debugText.size()).c_str()); + jobject GroupID; + std::string GroupIDClassName = "java/lang/Integer"; + std::string GroupIDCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(GroupIDClassName.c_str(), GroupIDCtorSignature.c_str(), + dataResponse.groupID, GroupID); + jobject SceneID; + std::string SceneIDClassName = "java/lang/Integer"; + std::string SceneIDCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(SceneIDClassName.c_str(), SceneIDCtorSignature.c_str(), + dataResponse.sceneID, SceneID); + jobject TransitionTime; + std::string TransitionTimeClassName = "java/lang/Integer"; + std::string TransitionTimeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + TransitionTimeClassName.c_str(), TransitionTimeCtorSignature.c_str(), dataResponse.transitionTime, TransitionTime); + jobject SceneName; + SceneName = env->NewStringUTF(std::string(dataResponse.sceneName.data(), dataResponse.sceneName.size()).c_str()); + jobject ExtensionFieldSets; + chip::JniReferences::GetInstance().CreateArrayList(ExtensionFieldSets); + + auto iter_ExtensionFieldSets_0 = dataResponse.extensionFieldSets.begin(); + while (iter_ExtensionFieldSets_0.Next()) + { + auto & entry_0 = iter_ExtensionFieldSets_0.GetValue(); + jobject newElement_0; + jobject newElement_0_clusterID; + std::string newElement_0_clusterIDClassName = "java/lang/Long"; + std::string newElement_0_clusterIDCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0_clusterIDClassName.c_str(), + newElement_0_clusterIDCtorSignature.c_str(), + entry_0.clusterID, newElement_0_clusterID); + jobject newElement_0_attributeValueList; + chip::JniReferences::GetInstance().CreateArrayList(newElement_0_attributeValueList); + + auto iter_newElement_0_attributeValueList_2 = entry_0.attributeValueList.begin(); + while (iter_newElement_0_attributeValueList_2.Next()) + { + auto & entry_2 = iter_newElement_0_attributeValueList_2.GetValue(); + jobject newElement_2; + jobject newElement_2_attributeID; + if (!entry_2.attributeID.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, newElement_2_attributeID); + } + else + { + jobject newElement_2_attributeIDInsideOptional; + std::string newElement_2_attributeIDInsideOptionalClassName = "java/lang/Long"; + std::string newElement_2_attributeIDInsideOptionalCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_2_attributeIDInsideOptionalClassName.c_str(), + newElement_2_attributeIDInsideOptionalCtorSignature.c_str(), entry_2.attributeID.Value(), + newElement_2_attributeIDInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(newElement_2_attributeIDInsideOptional, newElement_2_attributeID); + } + jobject newElement_2_attributeValue; + chip::JniReferences::GetInstance().CreateArrayList(newElement_2_attributeValue); + + auto iter_newElement_2_attributeValue_4 = entry_2.attributeValue.begin(); + while (iter_newElement_2_attributeValue_4.Next()) + { + auto & entry_4 = iter_newElement_2_attributeValue_4.GetValue(); + jobject newElement_4; + std::string newElement_4ClassName = "java/lang/Integer"; + std::string newElement_4CtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_4ClassName.c_str(), newElement_4CtorSignature.c_str(), entry_4, newElement_4); + chip::JniReferences::GetInstance().AddToList(newElement_2_attributeValue, newElement_4); + } + + jclass attributeValuePairStructClass_3; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$ScenesClusterAttributeValuePair", attributeValuePairStructClass_3); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$ScenesClusterAttributeValuePair"); + return; + } + jmethodID attributeValuePairStructCtor_3 = + env->GetMethodID(attributeValuePairStructClass_3, "", "(Ljava/util/Optional;Ljava/util/ArrayList;)V"); + if (attributeValuePairStructCtor_3 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$ScenesClusterAttributeValuePair constructor"); + return; + } + + newElement_2 = env->NewObject(attributeValuePairStructClass_3, attributeValuePairStructCtor_3, newElement_2_attributeID, + newElement_2_attributeValue); + chip::JniReferences::GetInstance().AddToList(newElement_0_attributeValueList, newElement_2); + } + + jclass extensionFieldSetStructClass_1; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$ScenesClusterExtensionFieldSet", extensionFieldSetStructClass_1); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$ScenesClusterExtensionFieldSet"); + return; + } + jmethodID extensionFieldSetStructCtor_1 = + env->GetMethodID(extensionFieldSetStructClass_1, "", "(Ljava/lang/Long;Ljava/util/ArrayList;)V"); + if (extensionFieldSetStructCtor_1 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$ScenesClusterExtensionFieldSet constructor"); + return; + } + + newElement_0 = env->NewObject(extensionFieldSetStructClass_1, extensionFieldSetStructCtor_1, newElement_0_clusterID, + newElement_0_attributeValueList); + chip::JniReferences::GetInstance().AddToList(ExtensionFieldSets, newElement_0); + } - env->CallVoidMethod(javaCallbackRef, javaMethod, ErrorCode, DebugText); + env->CallVoidMethod(javaCallbackRef, javaMethod, GroupID, SceneID, TransitionTime, SceneName, ExtensionFieldSets); } -CHIPGeneralCommissioningClusterSetRegulatoryConfigResponseCallback:: - CHIPGeneralCommissioningClusterSetRegulatoryConfigResponseCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPScenesClusterEnhancedViewSceneCallback::CHIPScenesClusterEnhancedViewSceneCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1207,8 +1267,7 @@ CHIPGeneralCommissioningClusterSetRegulatoryConfigResponseCallback:: } } -CHIPGeneralCommissioningClusterSetRegulatoryConfigResponseCallback:: - ~CHIPGeneralCommissioningClusterSetRegulatoryConfigResponseCallback() +CHIPScenesClusterEnhancedViewSceneCallback::~CHIPScenesClusterEnhancedViewSceneCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1219,9 +1278,8 @@ CHIPGeneralCommissioningClusterSetRegulatoryConfigResponseCallback:: env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPGeneralCommissioningClusterSetRegulatoryConfigResponseCallback::CallbackFn( - void * context, - const chip::app::Clusters::GeneralCommissioning::Commands::SetRegulatoryConfigResponse::DecodableType & dataResponse) +void CHIPScenesClusterEnhancedViewSceneCallback::CallbackFn( + void * context, const chip::app::Clusters::Scenes::Commands::EnhancedViewScene::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -1231,33 +1289,34 @@ void CHIPGeneralCommissioningClusterSetRegulatoryConfigResponseCallback::Callbac VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/String;)V", + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject ErrorCode; - std::string ErrorCodeClassName = "java/lang/Integer"; - std::string ErrorCodeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(ErrorCodeClassName.c_str(), ErrorCodeCtorSignature.c_str(), - static_cast(dataResponse.errorCode), ErrorCode); - jobject DebugText; - DebugText = env->NewStringUTF(std::string(dataResponse.debugText.data(), dataResponse.debugText.size()).c_str()); + jobject GroupID; + std::string GroupIDClassName = "java/lang/Integer"; + std::string GroupIDCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(GroupIDClassName.c_str(), GroupIDCtorSignature.c_str(), + dataResponse.groupID, GroupID); + jobject SceneID; + std::string SceneIDClassName = "java/lang/Integer"; + std::string SceneIDCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(SceneIDClassName.c_str(), SceneIDCtorSignature.c_str(), + dataResponse.sceneID, SceneID); - env->CallVoidMethod(javaCallbackRef, javaMethod, ErrorCode, DebugText); + env->CallVoidMethod(javaCallbackRef, javaMethod, GroupID, SceneID); } -CHIPGeneralCommissioningClusterCommissioningCompleteResponseCallback:: - CHIPGeneralCommissioningClusterCommissioningCompleteResponseCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPScenesClusterCopySceneCallback::CHIPScenesClusterCopySceneCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1273,8 +1332,7 @@ CHIPGeneralCommissioningClusterCommissioningCompleteResponseCallback:: } } -CHIPGeneralCommissioningClusterCommissioningCompleteResponseCallback:: - ~CHIPGeneralCommissioningClusterCommissioningCompleteResponseCallback() +CHIPScenesClusterCopySceneCallback::~CHIPScenesClusterCopySceneCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1285,9 +1343,8 @@ CHIPGeneralCommissioningClusterCommissioningCompleteResponseCallback:: env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPGeneralCommissioningClusterCommissioningCompleteResponseCallback::CallbackFn( - void * context, - const chip::app::Clusters::GeneralCommissioning::Commands::CommissioningCompleteResponse::DecodableType & dataResponse) +void CHIPScenesClusterCopySceneCallback::CallbackFn( + void * context, const chip::app::Clusters::Scenes::Commands::CopyScene::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -1297,33 +1354,55 @@ void CHIPGeneralCommissioningClusterCommissioningCompleteResponseCallback::Callb VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/String;)V", - &javaMethod); + err = JniReferences::GetInstance().FindMethod( + env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject ErrorCode; - std::string ErrorCodeClassName = "java/lang/Integer"; - std::string ErrorCodeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(ErrorCodeClassName.c_str(), ErrorCodeCtorSignature.c_str(), - static_cast(dataResponse.errorCode), ErrorCode); - jobject DebugText; - DebugText = env->NewStringUTF(std::string(dataResponse.debugText.data(), dataResponse.debugText.size()).c_str()); - - env->CallVoidMethod(javaCallbackRef, javaMethod, ErrorCode, DebugText); + jobject Mode; + std::string ModeClassName = "java/lang/Integer"; + std::string ModeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(ModeClassName.c_str(), ModeCtorSignature.c_str(), + dataResponse.mode.Raw(), Mode); + jobject GroupIdentifierFrom; + std::string GroupIdentifierFromClassName = "java/lang/Integer"; + std::string GroupIdentifierFromCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(GroupIdentifierFromClassName.c_str(), + GroupIdentifierFromCtorSignature.c_str(), + dataResponse.groupIdentifierFrom, GroupIdentifierFrom); + jobject SceneIdentifierFrom; + std::string SceneIdentifierFromClassName = "java/lang/Integer"; + std::string SceneIdentifierFromCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(SceneIdentifierFromClassName.c_str(), + SceneIdentifierFromCtorSignature.c_str(), + dataResponse.sceneIdentifierFrom, SceneIdentifierFrom); + jobject GroupIdentifierTo; + std::string GroupIdentifierToClassName = "java/lang/Integer"; + std::string GroupIdentifierToCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(GroupIdentifierToClassName.c_str(), + GroupIdentifierToCtorSignature.c_str(), + dataResponse.groupIdentifierTo, GroupIdentifierTo); + jobject SceneIdentifierTo; + std::string SceneIdentifierToClassName = "java/lang/Integer"; + std::string SceneIdentifierToCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(SceneIdentifierToClassName.c_str(), + SceneIdentifierToCtorSignature.c_str(), + dataResponse.sceneIdentifierTo, SceneIdentifierTo); + + env->CallVoidMethod(javaCallbackRef, javaMethod, Mode, GroupIdentifierFrom, SceneIdentifierFrom, GroupIdentifierTo, + SceneIdentifierTo); } -CHIPNetworkCommissioningClusterScanNetworksResponseCallback::CHIPNetworkCommissioningClusterScanNetworksResponseCallback( - jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPOnOffClusterOffCallback::CHIPOnOffClusterOffCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1339,7 +1418,7 @@ CHIPNetworkCommissioningClusterScanNetworksResponseCallback::CHIPNetworkCommissi } } -CHIPNetworkCommissioningClusterScanNetworksResponseCallback::~CHIPNetworkCommissioningClusterScanNetworksResponseCallback() +CHIPOnOffClusterOffCallback::~CHIPOnOffClusterOffCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1350,8 +1429,8 @@ CHIPNetworkCommissioningClusterScanNetworksResponseCallback::~CHIPNetworkCommiss env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPNetworkCommissioningClusterScanNetworksResponseCallback::CallbackFn( - void * context, const chip::app::Clusters::NetworkCommissioning::Commands::ScanNetworksResponse::DecodableType & dataResponse) +void CHIPOnOffClusterOffCallback::CallbackFn(void * context, + const chip::app::Clusters::OnOff::Commands::Off::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -1361,204 +1440,21 @@ void CHIPNetworkCommissioningClusterScanNetworksResponseCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr cppCallback( + reinterpret_cast(context), chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod( - env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;)V", - &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject NetworkingStatus; - std::string NetworkingStatusClassName = "java/lang/Integer"; - std::string NetworkingStatusCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - NetworkingStatusClassName.c_str(), NetworkingStatusCtorSignature.c_str(), - static_cast(dataResponse.networkingStatus), NetworkingStatus); - jobject DebugText; - if (!dataResponse.debugText.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, DebugText); - } - else - { - jobject DebugTextInsideOptional; - DebugTextInsideOptional = - env->NewStringUTF(std::string(dataResponse.debugText.Value().data(), dataResponse.debugText.Value().size()).c_str()); - chip::JniReferences::GetInstance().CreateOptional(DebugTextInsideOptional, DebugText); - } - jobject WiFiScanResults; - if (!dataResponse.wiFiScanResults.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, WiFiScanResults); - } - else - { - jobject WiFiScanResultsInsideOptional; - chip::JniReferences::GetInstance().CreateArrayList(WiFiScanResultsInsideOptional); - - auto iter_WiFiScanResultsInsideOptional_1 = dataResponse.wiFiScanResults.Value().begin(); - while (iter_WiFiScanResultsInsideOptional_1.Next()) - { - auto & entry_1 = iter_WiFiScanResultsInsideOptional_1.GetValue(); - jobject newElement_1; - jobject newElement_1_security; - std::string newElement_1_securityClassName = "java/lang/Integer"; - std::string newElement_1_securityCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(newElement_1_securityClassName.c_str(), - newElement_1_securityCtorSignature.c_str(), - entry_1.security.Raw(), newElement_1_security); - jobject newElement_1_ssid; - jbyteArray newElement_1_ssidByteArray = env->NewByteArray(static_cast(entry_1.ssid.size())); - env->SetByteArrayRegion(newElement_1_ssidByteArray, 0, static_cast(entry_1.ssid.size()), - reinterpret_cast(entry_1.ssid.data())); - newElement_1_ssid = newElement_1_ssidByteArray; - jobject newElement_1_bssid; - jbyteArray newElement_1_bssidByteArray = env->NewByteArray(static_cast(entry_1.bssid.size())); - env->SetByteArrayRegion(newElement_1_bssidByteArray, 0, static_cast(entry_1.bssid.size()), - reinterpret_cast(entry_1.bssid.data())); - newElement_1_bssid = newElement_1_bssidByteArray; - jobject newElement_1_channel; - std::string newElement_1_channelClassName = "java/lang/Integer"; - std::string newElement_1_channelCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(newElement_1_channelClassName.c_str(), - newElement_1_channelCtorSignature.c_str(), - entry_1.channel, newElement_1_channel); - jobject newElement_1_wiFiBand; - std::string newElement_1_wiFiBandClassName = "java/lang/Integer"; - std::string newElement_1_wiFiBandCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_1_wiFiBandClassName.c_str(), newElement_1_wiFiBandCtorSignature.c_str(), - static_cast(entry_1.wiFiBand), newElement_1_wiFiBand); - jobject newElement_1_rssi; - std::string newElement_1_rssiClassName = "java/lang/Integer"; - std::string newElement_1_rssiCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_1_rssiClassName.c_str(), newElement_1_rssiCtorSignature.c_str(), entry_1.rssi, newElement_1_rssi); - - jclass wiFiInterfaceScanResultStructClass_2; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$NetworkCommissioningClusterWiFiInterfaceScanResult", - wiFiInterfaceScanResultStructClass_2); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$NetworkCommissioningClusterWiFiInterfaceScanResult"); - return; - } - jmethodID wiFiInterfaceScanResultStructCtor_2 = - env->GetMethodID(wiFiInterfaceScanResultStructClass_2, "", - "(Ljava/lang/Integer;[B[BLjava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V"); - if (wiFiInterfaceScanResultStructCtor_2 == nullptr) - { - ChipLogError(Zcl, "Could not find ChipStructs$NetworkCommissioningClusterWiFiInterfaceScanResult constructor"); - return; - } - - newElement_1 = env->NewObject(wiFiInterfaceScanResultStructClass_2, wiFiInterfaceScanResultStructCtor_2, - newElement_1_security, newElement_1_ssid, newElement_1_bssid, newElement_1_channel, - newElement_1_wiFiBand, newElement_1_rssi); - chip::JniReferences::GetInstance().AddToList(WiFiScanResultsInsideOptional, newElement_1); - } - chip::JniReferences::GetInstance().CreateOptional(WiFiScanResultsInsideOptional, WiFiScanResults); - } - jobject ThreadScanResults; - if (!dataResponse.threadScanResults.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, ThreadScanResults); - } - else - { - jobject ThreadScanResultsInsideOptional; - chip::JniReferences::GetInstance().CreateArrayList(ThreadScanResultsInsideOptional); - - auto iter_ThreadScanResultsInsideOptional_1 = dataResponse.threadScanResults.Value().begin(); - while (iter_ThreadScanResultsInsideOptional_1.Next()) - { - auto & entry_1 = iter_ThreadScanResultsInsideOptional_1.GetValue(); - jobject newElement_1; - jobject newElement_1_panId; - std::string newElement_1_panIdClassName = "java/lang/Integer"; - std::string newElement_1_panIdCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_1_panIdClassName.c_str(), newElement_1_panIdCtorSignature.c_str(), entry_1.panId, newElement_1_panId); - jobject newElement_1_extendedPanId; - std::string newElement_1_extendedPanIdClassName = "java/lang/Long"; - std::string newElement_1_extendedPanIdCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(newElement_1_extendedPanIdClassName.c_str(), - newElement_1_extendedPanIdCtorSignature.c_str(), - entry_1.extendedPanId, newElement_1_extendedPanId); - jobject newElement_1_networkName; - newElement_1_networkName = - env->NewStringUTF(std::string(entry_1.networkName.data(), entry_1.networkName.size()).c_str()); - jobject newElement_1_channel; - std::string newElement_1_channelClassName = "java/lang/Integer"; - std::string newElement_1_channelCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(newElement_1_channelClassName.c_str(), - newElement_1_channelCtorSignature.c_str(), - entry_1.channel, newElement_1_channel); - jobject newElement_1_version; - std::string newElement_1_versionClassName = "java/lang/Integer"; - std::string newElement_1_versionCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(newElement_1_versionClassName.c_str(), - newElement_1_versionCtorSignature.c_str(), - entry_1.version, newElement_1_version); - jobject newElement_1_extendedAddress; - jbyteArray newElement_1_extendedAddressByteArray = - env->NewByteArray(static_cast(entry_1.extendedAddress.size())); - env->SetByteArrayRegion(newElement_1_extendedAddressByteArray, 0, static_cast(entry_1.extendedAddress.size()), - reinterpret_cast(entry_1.extendedAddress.data())); - newElement_1_extendedAddress = newElement_1_extendedAddressByteArray; - jobject newElement_1_rssi; - std::string newElement_1_rssiClassName = "java/lang/Integer"; - std::string newElement_1_rssiCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_1_rssiClassName.c_str(), newElement_1_rssiCtorSignature.c_str(), entry_1.rssi, newElement_1_rssi); - jobject newElement_1_lqi; - std::string newElement_1_lqiClassName = "java/lang/Integer"; - std::string newElement_1_lqiCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_1_lqiClassName.c_str(), newElement_1_lqiCtorSignature.c_str(), entry_1.lqi, newElement_1_lqi); - - jclass threadInterfaceScanResultStructClass_2; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$NetworkCommissioningClusterThreadInterfaceScanResult", - threadInterfaceScanResultStructClass_2); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$NetworkCommissioningClusterThreadInterfaceScanResult"); - return; - } - jmethodID threadInterfaceScanResultStructCtor_2 = - env->GetMethodID(threadInterfaceScanResultStructClass_2, "", - "(Ljava/lang/Integer;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/" - "Integer;[BLjava/lang/Integer;Ljava/lang/Integer;)V"); - if (threadInterfaceScanResultStructCtor_2 == nullptr) - { - ChipLogError(Zcl, "Could not find ChipStructs$NetworkCommissioningClusterThreadInterfaceScanResult constructor"); - return; - } - - newElement_1 = - env->NewObject(threadInterfaceScanResultStructClass_2, threadInterfaceScanResultStructCtor_2, newElement_1_panId, - newElement_1_extendedPanId, newElement_1_networkName, newElement_1_channel, newElement_1_version, - newElement_1_extendedAddress, newElement_1_rssi, newElement_1_lqi); - chip::JniReferences::GetInstance().AddToList(ThreadScanResultsInsideOptional, newElement_1); - } - chip::JniReferences::GetInstance().CreateOptional(ThreadScanResultsInsideOptional, ThreadScanResults); - } - - env->CallVoidMethod(javaCallbackRef, javaMethod, NetworkingStatus, DebugText, WiFiScanResults, ThreadScanResults); + env->CallVoidMethod(javaCallbackRef, javaMethod); } -CHIPNetworkCommissioningClusterNetworkConfigResponseCallback::CHIPNetworkCommissioningClusterNetworkConfigResponseCallback( - jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPOnOffClusterOnCallback::CHIPOnOffClusterOnCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1574,7 +1470,7 @@ CHIPNetworkCommissioningClusterNetworkConfigResponseCallback::CHIPNetworkCommiss } } -CHIPNetworkCommissioningClusterNetworkConfigResponseCallback::~CHIPNetworkCommissioningClusterNetworkConfigResponseCallback() +CHIPOnOffClusterOnCallback::~CHIPOnOffClusterOnCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1585,8 +1481,8 @@ CHIPNetworkCommissioningClusterNetworkConfigResponseCallback::~CHIPNetworkCommis env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPNetworkCommissioningClusterNetworkConfigResponseCallback::CallbackFn( - void * context, const chip::app::Clusters::NetworkCommissioning::Commands::NetworkConfigResponse::DecodableType & dataResponse) +void CHIPOnOffClusterOnCallback::CallbackFn(void * context, + const chip::app::Clusters::OnOff::Commands::On::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -1596,59 +1492,21 @@ void CHIPNetworkCommissioningClusterNetworkConfigResponseCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr cppCallback( + reinterpret_cast(context), chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/util/Optional;Ljava/util/Optional;)V", &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject NetworkingStatus; - std::string NetworkingStatusClassName = "java/lang/Integer"; - std::string NetworkingStatusCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - NetworkingStatusClassName.c_str(), NetworkingStatusCtorSignature.c_str(), - static_cast(dataResponse.networkingStatus), NetworkingStatus); - jobject DebugText; - if (!dataResponse.debugText.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, DebugText); - } - else - { - jobject DebugTextInsideOptional; - DebugTextInsideOptional = - env->NewStringUTF(std::string(dataResponse.debugText.Value().data(), dataResponse.debugText.Value().size()).c_str()); - chip::JniReferences::GetInstance().CreateOptional(DebugTextInsideOptional, DebugText); - } - jobject NetworkIndex; - if (!dataResponse.networkIndex.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, NetworkIndex); - } - else - { - jobject NetworkIndexInsideOptional; - std::string NetworkIndexInsideOptionalClassName = "java/lang/Integer"; - std::string NetworkIndexInsideOptionalCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - NetworkIndexInsideOptionalClassName.c_str(), NetworkIndexInsideOptionalCtorSignature.c_str(), - dataResponse.networkIndex.Value(), NetworkIndexInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(NetworkIndexInsideOptional, NetworkIndex); - } - - env->CallVoidMethod(javaCallbackRef, javaMethod, NetworkingStatus, DebugText, NetworkIndex); + env->CallVoidMethod(javaCallbackRef, javaMethod); } -CHIPNetworkCommissioningClusterConnectNetworkResponseCallback::CHIPNetworkCommissioningClusterConnectNetworkResponseCallback( - jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPOnOffClusterToggleCallback::CHIPOnOffClusterToggleCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1664,7 +1522,7 @@ CHIPNetworkCommissioningClusterConnectNetworkResponseCallback::CHIPNetworkCommis } } -CHIPNetworkCommissioningClusterConnectNetworkResponseCallback::~CHIPNetworkCommissioningClusterConnectNetworkResponseCallback() +CHIPOnOffClusterToggleCallback::~CHIPOnOffClusterToggleCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1675,8 +1533,8 @@ CHIPNetworkCommissioningClusterConnectNetworkResponseCallback::~CHIPNetworkCommi env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPNetworkCommissioningClusterConnectNetworkResponseCallback::CallbackFn( - void * context, const chip::app::Clusters::NetworkCommissioning::Commands::ConnectNetworkResponse::DecodableType & dataResponse) +void CHIPOnOffClusterToggleCallback::CallbackFn(void * context, + const chip::app::Clusters::OnOff::Commands::Toggle::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -1686,55 +1544,21 @@ void CHIPNetworkCommissioningClusterConnectNetworkResponseCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr cppCallback( + reinterpret_cast(context), chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/util/Optional;Ljava/lang/Long;)V", &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject NetworkingStatus; - std::string NetworkingStatusClassName = "java/lang/Integer"; - std::string NetworkingStatusCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - NetworkingStatusClassName.c_str(), NetworkingStatusCtorSignature.c_str(), - static_cast(dataResponse.networkingStatus), NetworkingStatus); - jobject DebugText; - if (!dataResponse.debugText.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, DebugText); - } - else - { - jobject DebugTextInsideOptional; - DebugTextInsideOptional = - env->NewStringUTF(std::string(dataResponse.debugText.Value().data(), dataResponse.debugText.Value().size()).c_str()); - chip::JniReferences::GetInstance().CreateOptional(DebugTextInsideOptional, DebugText); - } - jobject ErrorValue; - if (dataResponse.errorValue.IsNull()) - { - ErrorValue = nullptr; - } - else - { - std::string ErrorValueClassName = "java/lang/Long"; - std::string ErrorValueCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(ErrorValueClassName.c_str(), ErrorValueCtorSignature.c_str(), - dataResponse.errorValue.Value(), ErrorValue); - } - - env->CallVoidMethod(javaCallbackRef, javaMethod, NetworkingStatus, DebugText, ErrorValue); + env->CallVoidMethod(javaCallbackRef, javaMethod); } -CHIPDiagnosticLogsClusterRetrieveLogsResponseCallback::CHIPDiagnosticLogsClusterRetrieveLogsResponseCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPOnOffClusterOffWithEffectCallback::CHIPOnOffClusterOffWithEffectCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1750,7 +1574,7 @@ CHIPDiagnosticLogsClusterRetrieveLogsResponseCallback::CHIPDiagnosticLogsCluster } } -CHIPDiagnosticLogsClusterRetrieveLogsResponseCallback::~CHIPDiagnosticLogsClusterRetrieveLogsResponseCallback() +CHIPOnOffClusterOffWithEffectCallback::~CHIPOnOffClusterOffWithEffectCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1761,8 +1585,8 @@ CHIPDiagnosticLogsClusterRetrieveLogsResponseCallback::~CHIPDiagnosticLogsCluste env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPDiagnosticLogsClusterRetrieveLogsResponseCallback::CallbackFn( - void * context, const chip::app::Clusters::DiagnosticLogs::Commands::RetrieveLogsResponse::DecodableType & dataResponse) +void CHIPOnOffClusterOffWithEffectCallback::CallbackFn( + void * context, const chip::app::Clusters::OnOff::Commands::OffWithEffect::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -1772,69 +1596,38 @@ void CHIPDiagnosticLogsClusterRetrieveLogsResponseCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;[BLjava/util/Optional;Ljava/util/Optional;)V", &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;)V", + &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject Status; - std::string StatusClassName = "java/lang/Integer"; - std::string StatusCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), - static_cast(dataResponse.status), Status); - jobject LogContent; - jbyteArray LogContentByteArray = env->NewByteArray(static_cast(dataResponse.logContent.size())); - env->SetByteArrayRegion(LogContentByteArray, 0, static_cast(dataResponse.logContent.size()), - reinterpret_cast(dataResponse.logContent.data())); - LogContent = LogContentByteArray; - jobject UTCTimeStamp; - if (!dataResponse.UTCTimeStamp.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, UTCTimeStamp); - } - else - { - jobject UTCTimeStampInsideOptional; - std::string UTCTimeStampInsideOptionalClassName = "java/lang/Long"; - std::string UTCTimeStampInsideOptionalCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - UTCTimeStampInsideOptionalClassName.c_str(), UTCTimeStampInsideOptionalCtorSignature.c_str(), - dataResponse.UTCTimeStamp.Value(), UTCTimeStampInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(UTCTimeStampInsideOptional, UTCTimeStamp); - } - jobject TimeSinceBoot; - if (!dataResponse.timeSinceBoot.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, TimeSinceBoot); - } - else - { - jobject TimeSinceBootInsideOptional; - std::string TimeSinceBootInsideOptionalClassName = "java/lang/Long"; - std::string TimeSinceBootInsideOptionalCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - TimeSinceBootInsideOptionalClassName.c_str(), TimeSinceBootInsideOptionalCtorSignature.c_str(), - dataResponse.timeSinceBoot.Value(), TimeSinceBootInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(TimeSinceBootInsideOptional, TimeSinceBoot); - } - - env->CallVoidMethod(javaCallbackRef, javaMethod, Status, LogContent, UTCTimeStamp, TimeSinceBoot); -} -CHIPOperationalCredentialsClusterAttestationResponseCallback::CHIPOperationalCredentialsClusterAttestationResponseCallback( - jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) + jobject EffectIdentifier; + std::string EffectIdentifierClassName = "java/lang/Integer"; + std::string EffectIdentifierCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + EffectIdentifierClassName.c_str(), EffectIdentifierCtorSignature.c_str(), + static_cast(dataResponse.effectIdentifier), EffectIdentifier); + jobject EffectVariant; + std::string EffectVariantClassName = "java/lang/Integer"; + std::string EffectVariantCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + EffectVariantClassName.c_str(), EffectVariantCtorSignature.c_str(), dataResponse.effectVariant, EffectVariant); + + env->CallVoidMethod(javaCallbackRef, javaMethod, EffectIdentifier, EffectVariant); +} +CHIPOnOffClusterOnWithRecallGlobalSceneCallback::CHIPOnOffClusterOnWithRecallGlobalSceneCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) { ChipLogError(Zcl, "Could not create global reference for Java callback"); return; @@ -1847,7 +1640,7 @@ CHIPOperationalCredentialsClusterAttestationResponseCallback::CHIPOperationalCre } } -CHIPOperationalCredentialsClusterAttestationResponseCallback::~CHIPOperationalCredentialsClusterAttestationResponseCallback() +CHIPOnOffClusterOnWithRecallGlobalSceneCallback::~CHIPOnOffClusterOnWithRecallGlobalSceneCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1858,8 +1651,8 @@ CHIPOperationalCredentialsClusterAttestationResponseCallback::~CHIPOperationalCr env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPOperationalCredentialsClusterAttestationResponseCallback::CallbackFn( - void * context, const chip::app::Clusters::OperationalCredentials::Commands::AttestationResponse::DecodableType & dataResponse) +void CHIPOnOffClusterOnWithRecallGlobalSceneCallback::CallbackFn( + void * context, const chip::app::Clusters::OnOff::Commands::OnWithRecallGlobalScene::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -1869,35 +1662,22 @@ void CHIPOperationalCredentialsClusterAttestationResponseCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "([B[B)V", &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject AttestationElements; - jbyteArray AttestationElementsByteArray = env->NewByteArray(static_cast(dataResponse.attestationElements.size())); - env->SetByteArrayRegion(AttestationElementsByteArray, 0, static_cast(dataResponse.attestationElements.size()), - reinterpret_cast(dataResponse.attestationElements.data())); - AttestationElements = AttestationElementsByteArray; - jobject AttestationSignature; - jbyteArray AttestationSignatureByteArray = env->NewByteArray(static_cast(dataResponse.attestationSignature.size())); - env->SetByteArrayRegion(AttestationSignatureByteArray, 0, static_cast(dataResponse.attestationSignature.size()), - reinterpret_cast(dataResponse.attestationSignature.data())); - AttestationSignature = AttestationSignatureByteArray; - - env->CallVoidMethod(javaCallbackRef, javaMethod, AttestationElements, AttestationSignature); + env->CallVoidMethod(javaCallbackRef, javaMethod); } -CHIPOperationalCredentialsClusterCertificateChainResponseCallback:: - CHIPOperationalCredentialsClusterCertificateChainResponseCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPOnOffClusterOnWithTimedOffCallback::CHIPOnOffClusterOnWithTimedOffCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1913,8 +1693,7 @@ CHIPOperationalCredentialsClusterCertificateChainResponseCallback:: } } -CHIPOperationalCredentialsClusterCertificateChainResponseCallback:: - ~CHIPOperationalCredentialsClusterCertificateChainResponseCallback() +CHIPOnOffClusterOnWithTimedOffCallback::~CHIPOnOffClusterOnWithTimedOffCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1925,9 +1704,8 @@ CHIPOperationalCredentialsClusterCertificateChainResponseCallback:: env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPOperationalCredentialsClusterCertificateChainResponseCallback::CallbackFn( - void * context, - const chip::app::Clusters::OperationalCredentials::Commands::CertificateChainResponse::DecodableType & dataResponse) +void CHIPOnOffClusterOnWithTimedOffCallback::CallbackFn( + void * context, const chip::app::Clusters::OnOff::Commands::OnWithTimedOff::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -1937,29 +1715,39 @@ void CHIPOperationalCredentialsClusterCertificateChainResponseCallback::Callback VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "([B)V", &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject Certificate; - jbyteArray CertificateByteArray = env->NewByteArray(static_cast(dataResponse.certificate.size())); - env->SetByteArrayRegion(CertificateByteArray, 0, static_cast(dataResponse.certificate.size()), - reinterpret_cast(dataResponse.certificate.data())); - Certificate = CertificateByteArray; - - env->CallVoidMethod(javaCallbackRef, javaMethod, Certificate); + jobject OnOffControl; + std::string OnOffControlClassName = "java/lang/Integer"; + std::string OnOffControlCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OnOffControlClassName.c_str(), OnOffControlCtorSignature.c_str(), + dataResponse.onOffControl.Raw(), OnOffControl); + jobject OnTime; + std::string OnTimeClassName = "java/lang/Integer"; + std::string OnTimeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OnTimeClassName.c_str(), OnTimeCtorSignature.c_str(), + dataResponse.onTime, OnTime); + jobject OffWaitTime; + std::string OffWaitTimeClassName = "java/lang/Integer"; + std::string OffWaitTimeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OffWaitTimeClassName.c_str(), OffWaitTimeCtorSignature.c_str(), + dataResponse.offWaitTime, OffWaitTime); + + env->CallVoidMethod(javaCallbackRef, javaMethod, OnOffControl, OnTime, OffWaitTime); } -CHIPOperationalCredentialsClusterCSRResponseCallback::CHIPOperationalCredentialsClusterCSRResponseCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPLevelControlClusterMoveToLevelCallback::CHIPLevelControlClusterMoveToLevelCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1975,7 +1763,7 @@ CHIPOperationalCredentialsClusterCSRResponseCallback::CHIPOperationalCredentials } } -CHIPOperationalCredentialsClusterCSRResponseCallback::~CHIPOperationalCredentialsClusterCSRResponseCallback() +CHIPLevelControlClusterMoveToLevelCallback::~CHIPLevelControlClusterMoveToLevelCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1986,8 +1774,8 @@ CHIPOperationalCredentialsClusterCSRResponseCallback::~CHIPOperationalCredential env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPOperationalCredentialsClusterCSRResponseCallback::CallbackFn( - void * context, const chip::app::Clusters::OperationalCredentials::Commands::CSRResponse::DecodableType & dataResponse) +void CHIPLevelControlClusterMoveToLevelCallback::CallbackFn( + void * context, const chip::app::Clusters::LevelControl::Commands::MoveToLevel::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -1997,34 +1785,54 @@ void CHIPOperationalCredentialsClusterCSRResponseCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "([B[B)V", &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", + &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject NOCSRElements; - jbyteArray NOCSRElementsByteArray = env->NewByteArray(static_cast(dataResponse.NOCSRElements.size())); - env->SetByteArrayRegion(NOCSRElementsByteArray, 0, static_cast(dataResponse.NOCSRElements.size()), - reinterpret_cast(dataResponse.NOCSRElements.data())); - NOCSRElements = NOCSRElementsByteArray; - jobject AttestationSignature; - jbyteArray AttestationSignatureByteArray = env->NewByteArray(static_cast(dataResponse.attestationSignature.size())); - env->SetByteArrayRegion(AttestationSignatureByteArray, 0, static_cast(dataResponse.attestationSignature.size()), - reinterpret_cast(dataResponse.attestationSignature.data())); - AttestationSignature = AttestationSignatureByteArray; - - env->CallVoidMethod(javaCallbackRef, javaMethod, NOCSRElements, AttestationSignature); + jobject Level; + std::string LevelClassName = "java/lang/Integer"; + std::string LevelCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(LevelClassName.c_str(), LevelCtorSignature.c_str(), + dataResponse.level, Level); + jobject TransitionTime; + if (dataResponse.transitionTime.IsNull()) + { + TransitionTime = nullptr; + } + else + { + std::string TransitionTimeClassName = "java/lang/Integer"; + std::string TransitionTimeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(TransitionTimeClassName.c_str(), + TransitionTimeCtorSignature.c_str(), + dataResponse.transitionTime.Value(), TransitionTime); + } + jobject OptionsMask; + std::string OptionsMaskClassName = "java/lang/Integer"; + std::string OptionsMaskCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), + dataResponse.optionsMask.Raw(), OptionsMask); + jobject OptionsOverride; + std::string OptionsOverrideClassName = "java/lang/Integer"; + std::string OptionsOverrideCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OptionsOverrideClassName.c_str(), + OptionsOverrideCtorSignature.c_str(), + dataResponse.optionsOverride.Raw(), OptionsOverride); + + env->CallVoidMethod(javaCallbackRef, javaMethod, Level, TransitionTime, OptionsMask, OptionsOverride); } -CHIPOperationalCredentialsClusterNOCResponseCallback::CHIPOperationalCredentialsClusterNOCResponseCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPLevelControlClusterMoveCallback::CHIPLevelControlClusterMoveCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2040,7 +1848,7 @@ CHIPOperationalCredentialsClusterNOCResponseCallback::CHIPOperationalCredentials } } -CHIPOperationalCredentialsClusterNOCResponseCallback::~CHIPOperationalCredentialsClusterNOCResponseCallback() +CHIPLevelControlClusterMoveCallback::~CHIPLevelControlClusterMoveCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2051,8 +1859,8 @@ CHIPOperationalCredentialsClusterNOCResponseCallback::~CHIPOperationalCredential env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPOperationalCredentialsClusterNOCResponseCallback::CallbackFn( - void * context, const chip::app::Clusters::OperationalCredentials::Commands::NOCResponse::DecodableType & dataResponse) +void CHIPLevelControlClusterMoveCallback::CallbackFn( + void * context, const chip::app::Clusters::LevelControl::Commands::Move::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -2062,10 +1870,9 @@ void CHIPOperationalCredentialsClusterNOCResponseCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; @@ -2073,47 +1880,43 @@ void CHIPOperationalCredentialsClusterNOCResponseCallback::CallbackFn( VerifyOrReturn(javaCallbackRef != nullptr); err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/util/Optional;Ljava/util/Optional;)V", &javaMethod); + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", + &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject StatusCode; - std::string StatusCodeClassName = "java/lang/Integer"; - std::string StatusCodeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(StatusCodeClassName.c_str(), StatusCodeCtorSignature.c_str(), - static_cast(dataResponse.statusCode), StatusCode); - jobject FabricIndex; - if (!dataResponse.fabricIndex.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, FabricIndex); - } - else + jobject MoveMode; + std::string MoveModeClassName = "java/lang/Integer"; + std::string MoveModeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(MoveModeClassName.c_str(), MoveModeCtorSignature.c_str(), + static_cast(dataResponse.moveMode), MoveMode); + jobject Rate; + if (dataResponse.rate.IsNull()) { - jobject FabricIndexInsideOptional; - std::string FabricIndexInsideOptionalClassName = "java/lang/Integer"; - std::string FabricIndexInsideOptionalCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(FabricIndexInsideOptionalClassName.c_str(), - FabricIndexInsideOptionalCtorSignature.c_str(), - dataResponse.fabricIndex.Value(), FabricIndexInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(FabricIndexInsideOptional, FabricIndex); - } - jobject DebugText; - if (!dataResponse.debugText.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, DebugText); + Rate = nullptr; } else { - jobject DebugTextInsideOptional; - DebugTextInsideOptional = - env->NewStringUTF(std::string(dataResponse.debugText.Value().data(), dataResponse.debugText.Value().size()).c_str()); - chip::JniReferences::GetInstance().CreateOptional(DebugTextInsideOptional, DebugText); - } - - env->CallVoidMethod(javaCallbackRef, javaMethod, StatusCode, FabricIndex, DebugText); + std::string RateClassName = "java/lang/Integer"; + std::string RateCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(RateClassName.c_str(), RateCtorSignature.c_str(), + dataResponse.rate.Value(), Rate); + } + jobject OptionsMask; + std::string OptionsMaskClassName = "java/lang/Integer"; + std::string OptionsMaskCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), + dataResponse.optionsMask.Raw(), OptionsMask); + jobject OptionsOverride; + std::string OptionsOverrideClassName = "java/lang/Integer"; + std::string OptionsOverrideCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OptionsOverrideClassName.c_str(), + OptionsOverrideCtorSignature.c_str(), + dataResponse.optionsOverride.Raw(), OptionsOverride); + + env->CallVoidMethod(javaCallbackRef, javaMethod, MoveMode, Rate, OptionsMask, OptionsOverride); } -CHIPGroupKeyManagementClusterKeySetReadResponseCallback::CHIPGroupKeyManagementClusterKeySetReadResponseCallback( - jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPLevelControlClusterStepCallback::CHIPLevelControlClusterStepCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2129,7 +1932,7 @@ CHIPGroupKeyManagementClusterKeySetReadResponseCallback::CHIPGroupKeyManagementC } } -CHIPGroupKeyManagementClusterKeySetReadResponseCallback::~CHIPGroupKeyManagementClusterKeySetReadResponseCallback() +CHIPLevelControlClusterStepCallback::~CHIPLevelControlClusterStepCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2140,8 +1943,8 @@ CHIPGroupKeyManagementClusterKeySetReadResponseCallback::~CHIPGroupKeyManagement env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPGroupKeyManagementClusterKeySetReadResponseCallback::CallbackFn( - void * context, const chip::app::Clusters::GroupKeyManagement::Commands::KeySetReadResponse::DecodableType & dataResponse) +void CHIPLevelControlClusterStepCallback::CallbackFn( + void * context, const chip::app::Clusters::LevelControl::Commands::Step::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -2151,10 +1954,9 @@ void CHIPGroupKeyManagementClusterKeySetReadResponseCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; @@ -2162,132 +1964,49 @@ void CHIPGroupKeyManagementClusterKeySetReadResponseCallback::CallbackFn( VerifyOrReturn(javaCallbackRef != nullptr); err = JniReferences::GetInstance().FindMethod( - env, javaCallbackRef, "onSuccess", "(Lchip/devicecontroller/ChipStructs$GroupKeyManagementClusterGroupKeySetStruct;)V", - &javaMethod); + env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject GroupKeySet; - jobject GroupKeySet_groupKeySetID; - std::string GroupKeySet_groupKeySetIDClassName = "java/lang/Integer"; - std::string GroupKeySet_groupKeySetIDCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - GroupKeySet_groupKeySetIDClassName.c_str(), GroupKeySet_groupKeySetIDCtorSignature.c_str(), - dataResponse.groupKeySet.groupKeySetID, GroupKeySet_groupKeySetID); - jobject GroupKeySet_groupKeySecurityPolicy; - std::string GroupKeySet_groupKeySecurityPolicyClassName = "java/lang/Integer"; - std::string GroupKeySet_groupKeySecurityPolicyCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - GroupKeySet_groupKeySecurityPolicyClassName.c_str(), GroupKeySet_groupKeySecurityPolicyCtorSignature.c_str(), - static_cast(dataResponse.groupKeySet.groupKeySecurityPolicy), GroupKeySet_groupKeySecurityPolicy); - jobject GroupKeySet_epochKey0; - if (dataResponse.groupKeySet.epochKey0.IsNull()) - { - GroupKeySet_epochKey0 = nullptr; - } - else - { - jbyteArray GroupKeySet_epochKey0ByteArray = - env->NewByteArray(static_cast(dataResponse.groupKeySet.epochKey0.Value().size())); - env->SetByteArrayRegion(GroupKeySet_epochKey0ByteArray, 0, - static_cast(dataResponse.groupKeySet.epochKey0.Value().size()), - reinterpret_cast(dataResponse.groupKeySet.epochKey0.Value().data())); - GroupKeySet_epochKey0 = GroupKeySet_epochKey0ByteArray; - } - jobject GroupKeySet_epochStartTime0; - if (dataResponse.groupKeySet.epochStartTime0.IsNull()) - { - GroupKeySet_epochStartTime0 = nullptr; - } - else - { - std::string GroupKeySet_epochStartTime0ClassName = "java/lang/Long"; - std::string GroupKeySet_epochStartTime0CtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - GroupKeySet_epochStartTime0ClassName.c_str(), GroupKeySet_epochStartTime0CtorSignature.c_str(), - dataResponse.groupKeySet.epochStartTime0.Value(), GroupKeySet_epochStartTime0); - } - jobject GroupKeySet_epochKey1; - if (dataResponse.groupKeySet.epochKey1.IsNull()) - { - GroupKeySet_epochKey1 = nullptr; - } - else - { - jbyteArray GroupKeySet_epochKey1ByteArray = - env->NewByteArray(static_cast(dataResponse.groupKeySet.epochKey1.Value().size())); - env->SetByteArrayRegion(GroupKeySet_epochKey1ByteArray, 0, - static_cast(dataResponse.groupKeySet.epochKey1.Value().size()), - reinterpret_cast(dataResponse.groupKeySet.epochKey1.Value().data())); - GroupKeySet_epochKey1 = GroupKeySet_epochKey1ByteArray; - } - jobject GroupKeySet_epochStartTime1; - if (dataResponse.groupKeySet.epochStartTime1.IsNull()) - { - GroupKeySet_epochStartTime1 = nullptr; - } - else - { - std::string GroupKeySet_epochStartTime1ClassName = "java/lang/Long"; - std::string GroupKeySet_epochStartTime1CtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - GroupKeySet_epochStartTime1ClassName.c_str(), GroupKeySet_epochStartTime1CtorSignature.c_str(), - dataResponse.groupKeySet.epochStartTime1.Value(), GroupKeySet_epochStartTime1); - } - jobject GroupKeySet_epochKey2; - if (dataResponse.groupKeySet.epochKey2.IsNull()) - { - GroupKeySet_epochKey2 = nullptr; - } - else - { - jbyteArray GroupKeySet_epochKey2ByteArray = - env->NewByteArray(static_cast(dataResponse.groupKeySet.epochKey2.Value().size())); - env->SetByteArrayRegion(GroupKeySet_epochKey2ByteArray, 0, - static_cast(dataResponse.groupKeySet.epochKey2.Value().size()), - reinterpret_cast(dataResponse.groupKeySet.epochKey2.Value().data())); - GroupKeySet_epochKey2 = GroupKeySet_epochKey2ByteArray; - } - jobject GroupKeySet_epochStartTime2; - if (dataResponse.groupKeySet.epochStartTime2.IsNull()) + jobject StepMode; + std::string StepModeClassName = "java/lang/Integer"; + std::string StepModeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(StepModeClassName.c_str(), StepModeCtorSignature.c_str(), + static_cast(dataResponse.stepMode), StepMode); + jobject StepSize; + std::string StepSizeClassName = "java/lang/Integer"; + std::string StepSizeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(StepSizeClassName.c_str(), StepSizeCtorSignature.c_str(), + dataResponse.stepSize, StepSize); + jobject TransitionTime; + if (dataResponse.transitionTime.IsNull()) { - GroupKeySet_epochStartTime2 = nullptr; + TransitionTime = nullptr; } else { - std::string GroupKeySet_epochStartTime2ClassName = "java/lang/Long"; - std::string GroupKeySet_epochStartTime2CtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - GroupKeySet_epochStartTime2ClassName.c_str(), GroupKeySet_epochStartTime2CtorSignature.c_str(), - dataResponse.groupKeySet.epochStartTime2.Value(), GroupKeySet_epochStartTime2); - } - - jclass groupKeySetStructStructClass_0; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$GroupKeyManagementClusterGroupKeySetStruct", groupKeySetStructStructClass_0); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$GroupKeyManagementClusterGroupKeySetStruct"); - return; - } - jmethodID groupKeySetStructStructCtor_0 = - env->GetMethodID(groupKeySetStructStructClass_0, "", - "(Ljava/lang/Integer;Ljava/lang/Integer;[BLjava/lang/Long;[BLjava/lang/Long;[BLjava/lang/Long;)V"); - if (groupKeySetStructStructCtor_0 == nullptr) - { - ChipLogError(Zcl, "Could not find ChipStructs$GroupKeyManagementClusterGroupKeySetStruct constructor"); - return; - } - - GroupKeySet = - env->NewObject(groupKeySetStructStructClass_0, groupKeySetStructStructCtor_0, GroupKeySet_groupKeySetID, - GroupKeySet_groupKeySecurityPolicy, GroupKeySet_epochKey0, GroupKeySet_epochStartTime0, - GroupKeySet_epochKey1, GroupKeySet_epochStartTime1, GroupKeySet_epochKey2, GroupKeySet_epochStartTime2); - - env->CallVoidMethod(javaCallbackRef, javaMethod, GroupKeySet); + std::string TransitionTimeClassName = "java/lang/Integer"; + std::string TransitionTimeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(TransitionTimeClassName.c_str(), + TransitionTimeCtorSignature.c_str(), + dataResponse.transitionTime.Value(), TransitionTime); + } + jobject OptionsMask; + std::string OptionsMaskClassName = "java/lang/Integer"; + std::string OptionsMaskCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), + dataResponse.optionsMask.Raw(), OptionsMask); + jobject OptionsOverride; + std::string OptionsOverrideClassName = "java/lang/Integer"; + std::string OptionsOverrideCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OptionsOverrideClassName.c_str(), + OptionsOverrideCtorSignature.c_str(), + dataResponse.optionsOverride.Raw(), OptionsOverride); + + env->CallVoidMethod(javaCallbackRef, javaMethod, StepMode, StepSize, TransitionTime, OptionsMask, OptionsOverride); } -CHIPGroupKeyManagementClusterKeySetReadAllIndicesResponseCallback:: - CHIPGroupKeyManagementClusterKeySetReadAllIndicesResponseCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPLevelControlClusterStopCallback::CHIPLevelControlClusterStopCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2303,8 +2022,7 @@ CHIPGroupKeyManagementClusterKeySetReadAllIndicesResponseCallback:: } } -CHIPGroupKeyManagementClusterKeySetReadAllIndicesResponseCallback:: - ~CHIPGroupKeyManagementClusterKeySetReadAllIndicesResponseCallback() +CHIPLevelControlClusterStopCallback::~CHIPLevelControlClusterStopCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2315,9 +2033,8 @@ CHIPGroupKeyManagementClusterKeySetReadAllIndicesResponseCallback:: env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPGroupKeyManagementClusterKeySetReadAllIndicesResponseCallback::CallbackFn( - void * context, - const chip::app::Clusters::GroupKeyManagement::Commands::KeySetReadAllIndicesResponse::DecodableType & dataResponse) +void CHIPLevelControlClusterStopCallback::CallbackFn( + void * context, const chip::app::Clusters::LevelControl::Commands::Stop::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -2327,38 +2044,35 @@ void CHIPGroupKeyManagementClusterKeySetReadAllIndicesResponseCallback::Callback VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/ArrayList;)V", &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;)V", + &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject GroupKeySetIDs; - chip::JniReferences::GetInstance().CreateArrayList(GroupKeySetIDs); - - auto iter_GroupKeySetIDs_0 = dataResponse.groupKeySetIDs.begin(); - while (iter_GroupKeySetIDs_0.Next()) - { - auto & entry_0 = iter_GroupKeySetIDs_0.GetValue(); - jobject newElement_0; - std::string newElement_0ClassName = "java/lang/Integer"; - std::string newElement_0CtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0ClassName.c_str(), - newElement_0CtorSignature.c_str(), entry_0, newElement_0); - chip::JniReferences::GetInstance().AddToList(GroupKeySetIDs, newElement_0); - } - - env->CallVoidMethod(javaCallbackRef, javaMethod, GroupKeySetIDs); + jobject OptionsMask; + std::string OptionsMaskClassName = "java/lang/Integer"; + std::string OptionsMaskCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), + dataResponse.optionsMask.Raw(), OptionsMask); + jobject OptionsOverride; + std::string OptionsOverrideClassName = "java/lang/Integer"; + std::string OptionsOverrideCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OptionsOverrideClassName.c_str(), + OptionsOverrideCtorSignature.c_str(), + dataResponse.optionsOverride.Raw(), OptionsOverride); + + env->CallVoidMethod(javaCallbackRef, javaMethod, OptionsMask, OptionsOverride); } -CHIPDoorLockClusterGetWeekDayScheduleResponseCallback::CHIPDoorLockClusterGetWeekDayScheduleResponseCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPLevelControlClusterMoveToLevelWithOnOffCallback::CHIPLevelControlClusterMoveToLevelWithOnOffCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2374,7 +2088,7 @@ CHIPDoorLockClusterGetWeekDayScheduleResponseCallback::CHIPDoorLockClusterGetWee } } -CHIPDoorLockClusterGetWeekDayScheduleResponseCallback::~CHIPDoorLockClusterGetWeekDayScheduleResponseCallback() +CHIPLevelControlClusterMoveToLevelWithOnOffCallback::~CHIPLevelControlClusterMoveToLevelWithOnOffCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2385,8 +2099,8 @@ CHIPDoorLockClusterGetWeekDayScheduleResponseCallback::~CHIPDoorLockClusterGetWe env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPDoorLockClusterGetWeekDayScheduleResponseCallback::CallbackFn( - void * context, const chip::app::Clusters::DoorLock::Commands::GetWeekDayScheduleResponse::DecodableType & dataResponse) +void CHIPLevelControlClusterMoveToLevelWithOnOffCallback::CallbackFn( + void * context, const chip::app::Clusters::LevelControl::Commands::MoveToLevelWithOnOff::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -2396,119 +2110,55 @@ void CHIPDoorLockClusterGetWeekDayScheduleResponseCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod( - env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/" - "Optional;Ljava/util/Optional;Ljava/util/Optional;)V", - &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", + &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject WeekDayIndex; - std::string WeekDayIndexClassName = "java/lang/Integer"; - std::string WeekDayIndexCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(WeekDayIndexClassName.c_str(), WeekDayIndexCtorSignature.c_str(), - dataResponse.weekDayIndex, WeekDayIndex); - jobject UserIndex; - std::string UserIndexClassName = "java/lang/Integer"; - std::string UserIndexCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(UserIndexClassName.c_str(), UserIndexCtorSignature.c_str(), - dataResponse.userIndex, UserIndex); - jobject Status; - std::string StatusClassName = "java/lang/Integer"; - std::string StatusCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), - static_cast(dataResponse.status), Status); - jobject DaysMask; - if (!dataResponse.daysMask.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, DaysMask); - } - else - { - jobject DaysMaskInsideOptional; - std::string DaysMaskInsideOptionalClassName = "java/lang/Integer"; - std::string DaysMaskInsideOptionalCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(DaysMaskInsideOptionalClassName.c_str(), - DaysMaskInsideOptionalCtorSignature.c_str(), - dataResponse.daysMask.Value().Raw(), DaysMaskInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(DaysMaskInsideOptional, DaysMask); - } - jobject StartHour; - if (!dataResponse.startHour.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, StartHour); - } - else - { - jobject StartHourInsideOptional; - std::string StartHourInsideOptionalClassName = "java/lang/Integer"; - std::string StartHourInsideOptionalCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(StartHourInsideOptionalClassName.c_str(), - StartHourInsideOptionalCtorSignature.c_str(), - dataResponse.startHour.Value(), StartHourInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(StartHourInsideOptional, StartHour); - } - jobject StartMinute; - if (!dataResponse.startMinute.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, StartMinute); - } - else - { - jobject StartMinuteInsideOptional; - std::string StartMinuteInsideOptionalClassName = "java/lang/Integer"; - std::string StartMinuteInsideOptionalCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(StartMinuteInsideOptionalClassName.c_str(), - StartMinuteInsideOptionalCtorSignature.c_str(), - dataResponse.startMinute.Value(), StartMinuteInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(StartMinuteInsideOptional, StartMinute); - } - jobject EndHour; - if (!dataResponse.endHour.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, EndHour); - } - else - { - jobject EndHourInsideOptional; - std::string EndHourInsideOptionalClassName = "java/lang/Integer"; - std::string EndHourInsideOptionalCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(EndHourInsideOptionalClassName.c_str(), - EndHourInsideOptionalCtorSignature.c_str(), - dataResponse.endHour.Value(), EndHourInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(EndHourInsideOptional, EndHour); - } - jobject EndMinute; - if (!dataResponse.endMinute.HasValue()) + jobject Level; + std::string LevelClassName = "java/lang/Integer"; + std::string LevelCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(LevelClassName.c_str(), LevelCtorSignature.c_str(), + dataResponse.level, Level); + jobject TransitionTime; + if (dataResponse.transitionTime.IsNull()) { - chip::JniReferences::GetInstance().CreateOptional(nullptr, EndMinute); + TransitionTime = nullptr; } else { - jobject EndMinuteInsideOptional; - std::string EndMinuteInsideOptionalClassName = "java/lang/Integer"; - std::string EndMinuteInsideOptionalCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(EndMinuteInsideOptionalClassName.c_str(), - EndMinuteInsideOptionalCtorSignature.c_str(), - dataResponse.endMinute.Value(), EndMinuteInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(EndMinuteInsideOptional, EndMinute); - } - - env->CallVoidMethod(javaCallbackRef, javaMethod, WeekDayIndex, UserIndex, Status, DaysMask, StartHour, StartMinute, EndHour, - EndMinute); + std::string TransitionTimeClassName = "java/lang/Integer"; + std::string TransitionTimeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(TransitionTimeClassName.c_str(), + TransitionTimeCtorSignature.c_str(), + dataResponse.transitionTime.Value(), TransitionTime); + } + jobject OptionsMask; + std::string OptionsMaskClassName = "java/lang/Integer"; + std::string OptionsMaskCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), + dataResponse.optionsMask.Raw(), OptionsMask); + jobject OptionsOverride; + std::string OptionsOverrideClassName = "java/lang/Integer"; + std::string OptionsOverrideCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OptionsOverrideClassName.c_str(), + OptionsOverrideCtorSignature.c_str(), + dataResponse.optionsOverride.Raw(), OptionsOverride); + + env->CallVoidMethod(javaCallbackRef, javaMethod, Level, TransitionTime, OptionsMask, OptionsOverride); } -CHIPDoorLockClusterGetYearDayScheduleResponseCallback::CHIPDoorLockClusterGetYearDayScheduleResponseCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPLevelControlClusterMoveWithOnOffCallback::CHIPLevelControlClusterMoveWithOnOffCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2524,7 +2174,7 @@ CHIPDoorLockClusterGetYearDayScheduleResponseCallback::CHIPDoorLockClusterGetYea } } -CHIPDoorLockClusterGetYearDayScheduleResponseCallback::~CHIPDoorLockClusterGetYearDayScheduleResponseCallback() +CHIPLevelControlClusterMoveWithOnOffCallback::~CHIPLevelControlClusterMoveWithOnOffCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2535,8 +2185,8 @@ CHIPDoorLockClusterGetYearDayScheduleResponseCallback::~CHIPDoorLockClusterGetYe env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPDoorLockClusterGetYearDayScheduleResponseCallback::CallbackFn( - void * context, const chip::app::Clusters::DoorLock::Commands::GetYearDayScheduleResponse::DecodableType & dataResponse) +void CHIPLevelControlClusterMoveWithOnOffCallback::CallbackFn( + void * context, const chip::app::Clusters::LevelControl::Commands::MoveWithOnOff::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -2546,71 +2196,53 @@ void CHIPDoorLockClusterGetYearDayScheduleResponseCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod( - env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/util/Optional;Ljava/util/Optional;)V", &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", + &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject YearDayIndex; - std::string YearDayIndexClassName = "java/lang/Integer"; - std::string YearDayIndexCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(YearDayIndexClassName.c_str(), YearDayIndexCtorSignature.c_str(), - dataResponse.yearDayIndex, YearDayIndex); - jobject UserIndex; - std::string UserIndexClassName = "java/lang/Integer"; - std::string UserIndexCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(UserIndexClassName.c_str(), UserIndexCtorSignature.c_str(), - dataResponse.userIndex, UserIndex); - jobject Status; - std::string StatusClassName = "java/lang/Integer"; - std::string StatusCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), - static_cast(dataResponse.status), Status); - jobject LocalStartTime; - if (!dataResponse.localStartTime.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, LocalStartTime); - } - else + jobject MoveMode; + std::string MoveModeClassName = "java/lang/Integer"; + std::string MoveModeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(MoveModeClassName.c_str(), MoveModeCtorSignature.c_str(), + static_cast(dataResponse.moveMode), MoveMode); + jobject Rate; + if (dataResponse.rate.IsNull()) { - jobject LocalStartTimeInsideOptional; - std::string LocalStartTimeInsideOptionalClassName = "java/lang/Long"; - std::string LocalStartTimeInsideOptionalCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - LocalStartTimeInsideOptionalClassName.c_str(), LocalStartTimeInsideOptionalCtorSignature.c_str(), - dataResponse.localStartTime.Value(), LocalStartTimeInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(LocalStartTimeInsideOptional, LocalStartTime); - } - jobject LocalEndTime; - if (!dataResponse.localEndTime.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, LocalEndTime); + Rate = nullptr; } else { - jobject LocalEndTimeInsideOptional; - std::string LocalEndTimeInsideOptionalClassName = "java/lang/Long"; - std::string LocalEndTimeInsideOptionalCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - LocalEndTimeInsideOptionalClassName.c_str(), LocalEndTimeInsideOptionalCtorSignature.c_str(), - dataResponse.localEndTime.Value(), LocalEndTimeInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(LocalEndTimeInsideOptional, LocalEndTime); - } - - env->CallVoidMethod(javaCallbackRef, javaMethod, YearDayIndex, UserIndex, Status, LocalStartTime, LocalEndTime); + std::string RateClassName = "java/lang/Integer"; + std::string RateCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(RateClassName.c_str(), RateCtorSignature.c_str(), + dataResponse.rate.Value(), Rate); + } + jobject OptionsMask; + std::string OptionsMaskClassName = "java/lang/Integer"; + std::string OptionsMaskCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), + dataResponse.optionsMask.Raw(), OptionsMask); + jobject OptionsOverride; + std::string OptionsOverrideClassName = "java/lang/Integer"; + std::string OptionsOverrideCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OptionsOverrideClassName.c_str(), + OptionsOverrideCtorSignature.c_str(), + dataResponse.optionsOverride.Raw(), OptionsOverride); + + env->CallVoidMethod(javaCallbackRef, javaMethod, MoveMode, Rate, OptionsMask, OptionsOverride); } -CHIPDoorLockClusterGetHolidayScheduleResponseCallback::CHIPDoorLockClusterGetHolidayScheduleResponseCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPLevelControlClusterStepWithOnOffCallback::CHIPLevelControlClusterStepWithOnOffCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2626,7 +2258,7 @@ CHIPDoorLockClusterGetHolidayScheduleResponseCallback::CHIPDoorLockClusterGetHol } } -CHIPDoorLockClusterGetHolidayScheduleResponseCallback::~CHIPDoorLockClusterGetHolidayScheduleResponseCallback() +CHIPLevelControlClusterStepWithOnOffCallback::~CHIPLevelControlClusterStepWithOnOffCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2637,8 +2269,8 @@ CHIPDoorLockClusterGetHolidayScheduleResponseCallback::~CHIPDoorLockClusterGetHo env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPDoorLockClusterGetHolidayScheduleResponseCallback::CallbackFn( - void * context, const chip::app::Clusters::DoorLock::Commands::GetHolidayScheduleResponse::DecodableType & dataResponse) +void CHIPLevelControlClusterStepWithOnOffCallback::CallbackFn( + void * context, const chip::app::Clusters::LevelControl::Commands::StepWithOnOff::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -2648,10 +2280,9 @@ void CHIPDoorLockClusterGetHolidayScheduleResponseCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; @@ -2660,69 +2291,114 @@ void CHIPDoorLockClusterGetHolidayScheduleResponseCallback::CallbackFn( err = JniReferences::GetInstance().FindMethod( env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;)V", &javaMethod); + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject HolidayIndex; - std::string HolidayIndexClassName = "java/lang/Integer"; - std::string HolidayIndexCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(HolidayIndexClassName.c_str(), HolidayIndexCtorSignature.c_str(), - dataResponse.holidayIndex, HolidayIndex); - jobject Status; - std::string StatusClassName = "java/lang/Integer"; - std::string StatusCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), - static_cast(dataResponse.status), Status); - jobject LocalStartTime; - if (!dataResponse.localStartTime.HasValue()) + jobject StepMode; + std::string StepModeClassName = "java/lang/Integer"; + std::string StepModeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(StepModeClassName.c_str(), StepModeCtorSignature.c_str(), + static_cast(dataResponse.stepMode), StepMode); + jobject StepSize; + std::string StepSizeClassName = "java/lang/Integer"; + std::string StepSizeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(StepSizeClassName.c_str(), StepSizeCtorSignature.c_str(), + dataResponse.stepSize, StepSize); + jobject TransitionTime; + if (dataResponse.transitionTime.IsNull()) { - chip::JniReferences::GetInstance().CreateOptional(nullptr, LocalStartTime); + TransitionTime = nullptr; } else { - jobject LocalStartTimeInsideOptional; - std::string LocalStartTimeInsideOptionalClassName = "java/lang/Long"; - std::string LocalStartTimeInsideOptionalCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - LocalStartTimeInsideOptionalClassName.c_str(), LocalStartTimeInsideOptionalCtorSignature.c_str(), - dataResponse.localStartTime.Value(), LocalStartTimeInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(LocalStartTimeInsideOptional, LocalStartTime); - } - jobject LocalEndTime; - if (!dataResponse.localEndTime.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, LocalEndTime); - } - else + std::string TransitionTimeClassName = "java/lang/Integer"; + std::string TransitionTimeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(TransitionTimeClassName.c_str(), + TransitionTimeCtorSignature.c_str(), + dataResponse.transitionTime.Value(), TransitionTime); + } + jobject OptionsMask; + std::string OptionsMaskClassName = "java/lang/Integer"; + std::string OptionsMaskCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), + dataResponse.optionsMask.Raw(), OptionsMask); + jobject OptionsOverride; + std::string OptionsOverrideClassName = "java/lang/Integer"; + std::string OptionsOverrideCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OptionsOverrideClassName.c_str(), + OptionsOverrideCtorSignature.c_str(), + dataResponse.optionsOverride.Raw(), OptionsOverride); + + env->CallVoidMethod(javaCallbackRef, javaMethod, StepMode, StepSize, TransitionTime, OptionsMask, OptionsOverride); +} +CHIPLevelControlClusterStopWithOnOffCallback::CHIPLevelControlClusterStopWithOnOffCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) { - jobject LocalEndTimeInsideOptional; - std::string LocalEndTimeInsideOptionalClassName = "java/lang/Long"; - std::string LocalEndTimeInsideOptionalCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - LocalEndTimeInsideOptionalClassName.c_str(), LocalEndTimeInsideOptionalCtorSignature.c_str(), - dataResponse.localEndTime.Value(), LocalEndTimeInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(LocalEndTimeInsideOptional, LocalEndTime); + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; } - jobject OperatingMode; - if (!dataResponse.operatingMode.HasValue()) + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) { - chip::JniReferences::GetInstance().CreateOptional(nullptr, OperatingMode); + ChipLogError(Zcl, "Could not create global reference for Java callback"); } - else +} + +CHIPLevelControlClusterStopWithOnOffCallback::~CHIPLevelControlClusterStopWithOnOffCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) { - jobject OperatingModeInsideOptional; - std::string OperatingModeInsideOptionalClassName = "java/lang/Integer"; - std::string OperatingModeInsideOptionalCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - OperatingModeInsideOptionalClassName.c_str(), OperatingModeInsideOptionalCtorSignature.c_str(), - static_cast(dataResponse.operatingMode.Value()), OperatingModeInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(OperatingModeInsideOptional, OperatingMode); + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPLevelControlClusterStopWithOnOffCallback::CallbackFn( + void * context, const chip::app::Clusters::LevelControl::Commands::StopWithOnOff::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;)V", + &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - env->CallVoidMethod(javaCallbackRef, javaMethod, HolidayIndex, Status, LocalStartTime, LocalEndTime, OperatingMode); + jobject OptionsMask; + std::string OptionsMaskClassName = "java/lang/Integer"; + std::string OptionsMaskCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), + dataResponse.optionsMask.Raw(), OptionsMask); + jobject OptionsOverride; + std::string OptionsOverrideClassName = "java/lang/Integer"; + std::string OptionsOverrideCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OptionsOverrideClassName.c_str(), + OptionsOverrideCtorSignature.c_str(), + dataResponse.optionsOverride.Raw(), OptionsOverride); + + env->CallVoidMethod(javaCallbackRef, javaMethod, OptionsMask, OptionsOverride); } -CHIPDoorLockClusterGetUserResponseCallback::CHIPDoorLockClusterGetUserResponseCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPLevelControlClusterMoveToClosestFrequencyCallback::CHIPLevelControlClusterMoveToClosestFrequencyCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2738,7 +2414,7 @@ CHIPDoorLockClusterGetUserResponseCallback::CHIPDoorLockClusterGetUserResponseCa } } -CHIPDoorLockClusterGetUserResponseCallback::~CHIPDoorLockClusterGetUserResponseCallback() +CHIPLevelControlClusterMoveToClosestFrequencyCallback::~CHIPLevelControlClusterMoveToClosestFrequencyCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2749,8 +2425,8 @@ CHIPDoorLockClusterGetUserResponseCallback::~CHIPDoorLockClusterGetUserResponseC env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPDoorLockClusterGetUserResponseCallback::CallbackFn( - void * context, const chip::app::Clusters::DoorLock::Commands::GetUserResponse::DecodableType & dataResponse) +void CHIPLevelControlClusterMoveToClosestFrequencyCallback::CallbackFn( + void * context, const chip::app::Clusters::LevelControl::Commands::MoveToClosestFrequency::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -2760,180 +2436,104 @@ void CHIPDoorLockClusterGetUserResponseCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod( - env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/util/" - "ArrayList;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", - &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject UserIndex; - std::string UserIndexClassName = "java/lang/Integer"; - std::string UserIndexCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(UserIndexClassName.c_str(), UserIndexCtorSignature.c_str(), - dataResponse.userIndex, UserIndex); - jobject UserName; - if (dataResponse.userName.IsNull()) - { - UserName = nullptr; - } - else - { - UserName = - env->NewStringUTF(std::string(dataResponse.userName.Value().data(), dataResponse.userName.Value().size()).c_str()); - } - jobject UserUniqueID; - if (dataResponse.userUniqueID.IsNull()) - { - UserUniqueID = nullptr; - } - else - { - std::string UserUniqueIDClassName = "java/lang/Long"; - std::string UserUniqueIDCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - UserUniqueIDClassName.c_str(), UserUniqueIDCtorSignature.c_str(), dataResponse.userUniqueID.Value(), UserUniqueID); - } - jobject UserStatus; - if (dataResponse.userStatus.IsNull()) - { - UserStatus = nullptr; - } - else - { - std::string UserStatusClassName = "java/lang/Integer"; - std::string UserStatusCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(UserStatusClassName.c_str(), UserStatusCtorSignature.c_str(), - static_cast(dataResponse.userStatus.Value()), - UserStatus); - } - jobject UserType; - if (dataResponse.userType.IsNull()) - { - UserType = nullptr; - } - else - { - std::string UserTypeClassName = "java/lang/Integer"; - std::string UserTypeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(UserTypeClassName.c_str(), UserTypeCtorSignature.c_str(), - static_cast(dataResponse.userType.Value()), - UserType); - } - jobject CredentialRule; - if (dataResponse.credentialRule.IsNull()) + jobject Frequency; + std::string FrequencyClassName = "java/lang/Integer"; + std::string FrequencyCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(FrequencyClassName.c_str(), FrequencyCtorSignature.c_str(), + dataResponse.frequency, Frequency); + + env->CallVoidMethod(javaCallbackRef, javaMethod, Frequency); +} +CHIPActionsClusterInstantActionCallback::CHIPActionsClusterInstantActionCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) { - CredentialRule = nullptr; + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; } - else + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) { - std::string CredentialRuleClassName = "java/lang/Integer"; - std::string CredentialRuleCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - CredentialRuleClassName.c_str(), CredentialRuleCtorSignature.c_str(), - static_cast(dataResponse.credentialRule.Value()), CredentialRule); + ChipLogError(Zcl, "Could not create global reference for Java callback"); } - jobject Credentials; - if (dataResponse.credentials.IsNull()) +} + +CHIPActionsClusterInstantActionCallback::~CHIPActionsClusterInstantActionCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) { - Credentials = nullptr; + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; } - else - { - chip::JniReferences::GetInstance().CreateArrayList(Credentials); + env->DeleteGlobalRef(javaCallbackRef); +}; - auto iter_Credentials_1 = dataResponse.credentials.Value().begin(); - while (iter_Credentials_1.Next()) - { - auto & entry_1 = iter_Credentials_1.GetValue(); - jobject newElement_1; - jobject newElement_1_credentialType; - std::string newElement_1_credentialTypeClassName = "java/lang/Integer"; - std::string newElement_1_credentialTypeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_1_credentialTypeClassName.c_str(), newElement_1_credentialTypeCtorSignature.c_str(), - static_cast(entry_1.credentialType), newElement_1_credentialType); - jobject newElement_1_credentialIndex; - std::string newElement_1_credentialIndexClassName = "java/lang/Integer"; - std::string newElement_1_credentialIndexCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(newElement_1_credentialIndexClassName.c_str(), - newElement_1_credentialIndexCtorSignature.c_str(), - entry_1.credentialIndex, newElement_1_credentialIndex); - - jclass credentialStructStructClass_2; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$DoorLockClusterCredentialStruct", credentialStructStructClass_2); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$DoorLockClusterCredentialStruct"); - return; - } - jmethodID credentialStructStructCtor_2 = - env->GetMethodID(credentialStructStructClass_2, "", "(Ljava/lang/Integer;Ljava/lang/Integer;)V"); - if (credentialStructStructCtor_2 == nullptr) - { - ChipLogError(Zcl, "Could not find ChipStructs$DoorLockClusterCredentialStruct constructor"); - return; - } +void CHIPActionsClusterInstantActionCallback::CallbackFn( + void * context, const chip::app::Clusters::Actions::Commands::InstantAction::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; - newElement_1 = env->NewObject(credentialStructStructClass_2, credentialStructStructCtor_2, newElement_1_credentialType, - newElement_1_credentialIndex); - chip::JniReferences::GetInstance().AddToList(Credentials, newElement_1); - } - } - jobject CreatorFabricIndex; - if (dataResponse.creatorFabricIndex.IsNull()) - { - CreatorFabricIndex = nullptr; - } - else - { - std::string CreatorFabricIndexClassName = "java/lang/Integer"; - std::string CreatorFabricIndexCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(CreatorFabricIndexClassName.c_str(), - CreatorFabricIndexCtorSignature.c_str(), - dataResponse.creatorFabricIndex.Value(), CreatorFabricIndex); - } - jobject LastModifiedFabricIndex; - if (dataResponse.lastModifiedFabricIndex.IsNull()) - { - LastModifiedFabricIndex = nullptr; - } - else - { - std::string LastModifiedFabricIndexClassName = "java/lang/Integer"; - std::string LastModifiedFabricIndexCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - LastModifiedFabricIndexClassName.c_str(), LastModifiedFabricIndexCtorSignature.c_str(), - dataResponse.lastModifiedFabricIndex.Value(), LastModifiedFabricIndex); - } - jobject NextUserIndex; - if (dataResponse.nextUserIndex.IsNull()) + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/util/Optional;)V", + &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject ActionID; + std::string ActionIDClassName = "java/lang/Integer"; + std::string ActionIDCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(ActionIDClassName.c_str(), ActionIDCtorSignature.c_str(), + dataResponse.actionID, ActionID); + jobject InvokeID; + if (!dataResponse.invokeID.HasValue()) { - NextUserIndex = nullptr; + chip::JniReferences::GetInstance().CreateOptional(nullptr, InvokeID); } else { - std::string NextUserIndexClassName = "java/lang/Integer"; - std::string NextUserIndexCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - NextUserIndexClassName.c_str(), NextUserIndexCtorSignature.c_str(), dataResponse.nextUserIndex.Value(), NextUserIndex); + jobject InvokeIDInsideOptional; + std::string InvokeIDInsideOptionalClassName = "java/lang/Long"; + std::string InvokeIDInsideOptionalCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(InvokeIDInsideOptionalClassName.c_str(), + InvokeIDInsideOptionalCtorSignature.c_str(), + dataResponse.invokeID.Value(), InvokeIDInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(InvokeIDInsideOptional, InvokeID); } - env->CallVoidMethod(javaCallbackRef, javaMethod, UserIndex, UserName, UserUniqueID, UserStatus, UserType, CredentialRule, - Credentials, CreatorFabricIndex, LastModifiedFabricIndex, NextUserIndex); + env->CallVoidMethod(javaCallbackRef, javaMethod, ActionID, InvokeID); } -CHIPDoorLockClusterSetCredentialResponseCallback::CHIPDoorLockClusterSetCredentialResponseCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPActionsClusterInstantActionWithTransitionCallback::CHIPActionsClusterInstantActionWithTransitionCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2949,7 +2549,7 @@ CHIPDoorLockClusterSetCredentialResponseCallback::CHIPDoorLockClusterSetCredenti } } -CHIPDoorLockClusterSetCredentialResponseCallback::~CHIPDoorLockClusterSetCredentialResponseCallback() +CHIPActionsClusterInstantActionWithTransitionCallback::~CHIPActionsClusterInstantActionWithTransitionCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2960,8 +2560,8 @@ CHIPDoorLockClusterSetCredentialResponseCallback::~CHIPDoorLockClusterSetCredent env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPDoorLockClusterSetCredentialResponseCallback::CallbackFn( - void * context, const chip::app::Clusters::DoorLock::Commands::SetCredentialResponse::DecodableType & dataResponse) +void CHIPActionsClusterInstantActionWithTransitionCallback::CallbackFn( + void * context, const chip::app::Clusters::Actions::Commands::InstantActionWithTransition::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -2971,9 +2571,10 @@ void CHIPDoorLockClusterSetCredentialResponseCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; @@ -2981,45 +2582,39 @@ void CHIPDoorLockClusterSetCredentialResponseCallback::CallbackFn( VerifyOrReturn(javaCallbackRef != nullptr); err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", &javaMethod); + "(Ljava/lang/Integer;Ljava/util/Optional;Ljava/lang/Integer;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject Status; - std::string StatusClassName = "java/lang/Integer"; - std::string StatusCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), - static_cast(dataResponse.status), Status); - jobject UserIndex; - if (dataResponse.userIndex.IsNull()) - { - UserIndex = nullptr; - } - else - { - std::string UserIndexClassName = "java/lang/Integer"; - std::string UserIndexCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(UserIndexClassName.c_str(), UserIndexCtorSignature.c_str(), - dataResponse.userIndex.Value(), UserIndex); - } - jobject NextCredentialIndex; - if (dataResponse.nextCredentialIndex.IsNull()) + jobject ActionID; + std::string ActionIDClassName = "java/lang/Integer"; + std::string ActionIDCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(ActionIDClassName.c_str(), ActionIDCtorSignature.c_str(), + dataResponse.actionID, ActionID); + jobject InvokeID; + if (!dataResponse.invokeID.HasValue()) { - NextCredentialIndex = nullptr; + chip::JniReferences::GetInstance().CreateOptional(nullptr, InvokeID); } else { - std::string NextCredentialIndexClassName = "java/lang/Integer"; - std::string NextCredentialIndexCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - NextCredentialIndexClassName.c_str(), NextCredentialIndexCtorSignature.c_str(), - dataResponse.nextCredentialIndex.Value(), NextCredentialIndex); + jobject InvokeIDInsideOptional; + std::string InvokeIDInsideOptionalClassName = "java/lang/Long"; + std::string InvokeIDInsideOptionalCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(InvokeIDInsideOptionalClassName.c_str(), + InvokeIDInsideOptionalCtorSignature.c_str(), + dataResponse.invokeID.Value(), InvokeIDInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(InvokeIDInsideOptional, InvokeID); } + jobject TransitionTime; + std::string TransitionTimeClassName = "java/lang/Integer"; + std::string TransitionTimeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + TransitionTimeClassName.c_str(), TransitionTimeCtorSignature.c_str(), dataResponse.transitionTime, TransitionTime); - env->CallVoidMethod(javaCallbackRef, javaMethod, Status, UserIndex, NextCredentialIndex); + env->CallVoidMethod(javaCallbackRef, javaMethod, ActionID, InvokeID, TransitionTime); } -CHIPDoorLockClusterGetCredentialStatusResponseCallback::CHIPDoorLockClusterGetCredentialStatusResponseCallback( - jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPActionsClusterStartActionCallback::CHIPActionsClusterStartActionCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3035,7 +2630,7 @@ CHIPDoorLockClusterGetCredentialStatusResponseCallback::CHIPDoorLockClusterGetCr } } -CHIPDoorLockClusterGetCredentialStatusResponseCallback::~CHIPDoorLockClusterGetCredentialStatusResponseCallback() +CHIPActionsClusterStartActionCallback::~CHIPActionsClusterStartActionCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3046,8 +2641,8 @@ CHIPDoorLockClusterGetCredentialStatusResponseCallback::~CHIPDoorLockClusterGetC env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPDoorLockClusterGetCredentialStatusResponseCallback::CallbackFn( - void * context, const chip::app::Clusters::DoorLock::Commands::GetCredentialStatusResponse::DecodableType & dataResponse) +void CHIPActionsClusterStartActionCallback::CallbackFn( + void * context, const chip::app::Clusters::Actions::Commands::StartAction::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -3057,84 +2652,125 @@ void CHIPDoorLockClusterGetCredentialStatusResponseCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod( - env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Boolean;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/util/Optional;)V", + &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject CredentialExists; - std::string CredentialExistsClassName = "java/lang/Boolean"; - std::string CredentialExistsCtorSignature = "(Z)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - CredentialExistsClassName.c_str(), CredentialExistsCtorSignature.c_str(), dataResponse.credentialExists, CredentialExists); - jobject UserIndex; - if (dataResponse.userIndex.IsNull()) + jobject ActionID; + std::string ActionIDClassName = "java/lang/Integer"; + std::string ActionIDCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(ActionIDClassName.c_str(), ActionIDCtorSignature.c_str(), + dataResponse.actionID, ActionID); + jobject InvokeID; + if (!dataResponse.invokeID.HasValue()) { - UserIndex = nullptr; + chip::JniReferences::GetInstance().CreateOptional(nullptr, InvokeID); } else { - std::string UserIndexClassName = "java/lang/Integer"; - std::string UserIndexCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(UserIndexClassName.c_str(), UserIndexCtorSignature.c_str(), - dataResponse.userIndex.Value(), UserIndex); - } - jobject CreatorFabricIndex; - if (dataResponse.creatorFabricIndex.IsNull()) - { - CreatorFabricIndex = nullptr; + jobject InvokeIDInsideOptional; + std::string InvokeIDInsideOptionalClassName = "java/lang/Long"; + std::string InvokeIDInsideOptionalCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(InvokeIDInsideOptionalClassName.c_str(), + InvokeIDInsideOptionalCtorSignature.c_str(), + dataResponse.invokeID.Value(), InvokeIDInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(InvokeIDInsideOptional, InvokeID); } - else + + env->CallVoidMethod(javaCallbackRef, javaMethod, ActionID, InvokeID); +} +CHIPActionsClusterStartActionWithDurationCallback::CHIPActionsClusterStartActionWithDurationCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) { - std::string CreatorFabricIndexClassName = "java/lang/Integer"; - std::string CreatorFabricIndexCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(CreatorFabricIndexClassName.c_str(), - CreatorFabricIndexCtorSignature.c_str(), - dataResponse.creatorFabricIndex.Value(), CreatorFabricIndex); + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; } - jobject LastModifiedFabricIndex; - if (dataResponse.lastModifiedFabricIndex.IsNull()) + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) { - LastModifiedFabricIndex = nullptr; + ChipLogError(Zcl, "Could not create global reference for Java callback"); } - else +} + +CHIPActionsClusterStartActionWithDurationCallback::~CHIPActionsClusterStartActionWithDurationCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) { - std::string LastModifiedFabricIndexClassName = "java/lang/Integer"; - std::string LastModifiedFabricIndexCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - LastModifiedFabricIndexClassName.c_str(), LastModifiedFabricIndexCtorSignature.c_str(), - dataResponse.lastModifiedFabricIndex.Value(), LastModifiedFabricIndex); + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; } - jobject NextCredentialIndex; - if (dataResponse.nextCredentialIndex.IsNull()) + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPActionsClusterStartActionWithDurationCallback::CallbackFn( + void * context, const chip::app::Clusters::Actions::Commands::StartActionWithDuration::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/util/Optional;Ljava/lang/Long;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject ActionID; + std::string ActionIDClassName = "java/lang/Integer"; + std::string ActionIDCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(ActionIDClassName.c_str(), ActionIDCtorSignature.c_str(), + dataResponse.actionID, ActionID); + jobject InvokeID; + if (!dataResponse.invokeID.HasValue()) { - NextCredentialIndex = nullptr; + chip::JniReferences::GetInstance().CreateOptional(nullptr, InvokeID); } else { - std::string NextCredentialIndexClassName = "java/lang/Integer"; - std::string NextCredentialIndexCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - NextCredentialIndexClassName.c_str(), NextCredentialIndexCtorSignature.c_str(), - dataResponse.nextCredentialIndex.Value(), NextCredentialIndex); - } - - env->CallVoidMethod(javaCallbackRef, javaMethod, CredentialExists, UserIndex, CreatorFabricIndex, LastModifiedFabricIndex, - NextCredentialIndex); + jobject InvokeIDInsideOptional; + std::string InvokeIDInsideOptionalClassName = "java/lang/Long"; + std::string InvokeIDInsideOptionalCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(InvokeIDInsideOptionalClassName.c_str(), + InvokeIDInsideOptionalCtorSignature.c_str(), + dataResponse.invokeID.Value(), InvokeIDInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(InvokeIDInsideOptional, InvokeID); + } + jobject Duration; + std::string DurationClassName = "java/lang/Long"; + std::string DurationCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(DurationClassName.c_str(), DurationCtorSignature.c_str(), + dataResponse.duration, Duration); + + env->CallVoidMethod(javaCallbackRef, javaMethod, ActionID, InvokeID, Duration); } -CHIPThermostatClusterGetWeeklyScheduleResponseCallback::CHIPThermostatClusterGetWeeklyScheduleResponseCallback( - jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPActionsClusterStopActionCallback::CHIPActionsClusterStopActionCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3150,7 +2786,7 @@ CHIPThermostatClusterGetWeeklyScheduleResponseCallback::CHIPThermostatClusterGet } } -CHIPThermostatClusterGetWeeklyScheduleResponseCallback::~CHIPThermostatClusterGetWeeklyScheduleResponseCallback() +CHIPActionsClusterStopActionCallback::~CHIPActionsClusterStopActionCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3161,8 +2797,8 @@ CHIPThermostatClusterGetWeeklyScheduleResponseCallback::~CHIPThermostatClusterGe env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPThermostatClusterGetWeeklyScheduleResponseCallback::CallbackFn( - void * context, const chip::app::Clusters::Thermostat::Commands::GetWeeklyScheduleResponse::DecodableType & dataResponse) +void CHIPActionsClusterStopActionCallback::CallbackFn( + void * context, const chip::app::Clusters::Actions::Commands::StopAction::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -3172,107 +2808,44 @@ void CHIPThermostatClusterGetWeeklyScheduleResponseCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod( - env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/util/ArrayList;)V", - &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/util/Optional;)V", + &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject NumberOfTransitionsForSequence; - std::string NumberOfTransitionsForSequenceClassName = "java/lang/Integer"; - std::string NumberOfTransitionsForSequenceCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - NumberOfTransitionsForSequenceClassName.c_str(), NumberOfTransitionsForSequenceCtorSignature.c_str(), - dataResponse.numberOfTransitionsForSequence, NumberOfTransitionsForSequence); - jobject DayOfWeekForSequence; - std::string DayOfWeekForSequenceClassName = "java/lang/Integer"; - std::string DayOfWeekForSequenceCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(DayOfWeekForSequenceClassName.c_str(), - DayOfWeekForSequenceCtorSignature.c_str(), - dataResponse.dayOfWeekForSequence.Raw(), DayOfWeekForSequence); - jobject ModeForSequence; - std::string ModeForSequenceClassName = "java/lang/Integer"; - std::string ModeForSequenceCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(ModeForSequenceClassName.c_str(), - ModeForSequenceCtorSignature.c_str(), - dataResponse.modeForSequence.Raw(), ModeForSequence); - jobject Transitions; - chip::JniReferences::GetInstance().CreateArrayList(Transitions); - - auto iter_Transitions_0 = dataResponse.transitions.begin(); - while (iter_Transitions_0.Next()) + jobject ActionID; + std::string ActionIDClassName = "java/lang/Integer"; + std::string ActionIDCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(ActionIDClassName.c_str(), ActionIDCtorSignature.c_str(), + dataResponse.actionID, ActionID); + jobject InvokeID; + if (!dataResponse.invokeID.HasValue()) { - auto & entry_0 = iter_Transitions_0.GetValue(); - jobject newElement_0; - jobject newElement_0_transitionTime; - std::string newElement_0_transitionTimeClassName = "java/lang/Integer"; - std::string newElement_0_transitionTimeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0_transitionTimeClassName.c_str(), - newElement_0_transitionTimeCtorSignature.c_str(), - entry_0.transitionTime, newElement_0_transitionTime); - jobject newElement_0_heatSetpoint; - if (entry_0.heatSetpoint.IsNull()) - { - newElement_0_heatSetpoint = nullptr; - } - else - { - std::string newElement_0_heatSetpointClassName = "java/lang/Integer"; - std::string newElement_0_heatSetpointCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0_heatSetpointClassName.c_str(), - newElement_0_heatSetpointCtorSignature.c_str(), - entry_0.heatSetpoint.Value(), newElement_0_heatSetpoint); - } - jobject newElement_0_coolSetpoint; - if (entry_0.coolSetpoint.IsNull()) - { - newElement_0_coolSetpoint = nullptr; - } - else - { - std::string newElement_0_coolSetpointClassName = "java/lang/Integer"; - std::string newElement_0_coolSetpointCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0_coolSetpointClassName.c_str(), - newElement_0_coolSetpointCtorSignature.c_str(), - entry_0.coolSetpoint.Value(), newElement_0_coolSetpoint); - } - - jclass thermostatScheduleTransitionStructClass_1; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$ThermostatClusterThermostatScheduleTransition", - thermostatScheduleTransitionStructClass_1); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$ThermostatClusterThermostatScheduleTransition"); - return; - } - jmethodID thermostatScheduleTransitionStructCtor_1 = env->GetMethodID( - thermostatScheduleTransitionStructClass_1, "", "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V"); - if (thermostatScheduleTransitionStructCtor_1 == nullptr) - { - ChipLogError(Zcl, "Could not find ChipStructs$ThermostatClusterThermostatScheduleTransition constructor"); - return; - } - - newElement_0 = env->NewObject(thermostatScheduleTransitionStructClass_1, thermostatScheduleTransitionStructCtor_1, - newElement_0_transitionTime, newElement_0_heatSetpoint, newElement_0_coolSetpoint); - chip::JniReferences::GetInstance().AddToList(Transitions, newElement_0); + chip::JniReferences::GetInstance().CreateOptional(nullptr, InvokeID); + } + else + { + jobject InvokeIDInsideOptional; + std::string InvokeIDInsideOptionalClassName = "java/lang/Long"; + std::string InvokeIDInsideOptionalCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(InvokeIDInsideOptionalClassName.c_str(), + InvokeIDInsideOptionalCtorSignature.c_str(), + dataResponse.invokeID.Value(), InvokeIDInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(InvokeIDInsideOptional, InvokeID); } - env->CallVoidMethod(javaCallbackRef, javaMethod, NumberOfTransitionsForSequence, DayOfWeekForSequence, ModeForSequence, - Transitions); + env->CallVoidMethod(javaCallbackRef, javaMethod, ActionID, InvokeID); } -CHIPChannelClusterChangeChannelResponseCallback::CHIPChannelClusterChangeChannelResponseCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPActionsClusterPauseActionCallback::CHIPActionsClusterPauseActionCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3288,7 +2861,7 @@ CHIPChannelClusterChangeChannelResponseCallback::CHIPChannelClusterChangeChannel } } -CHIPChannelClusterChangeChannelResponseCallback::~CHIPChannelClusterChangeChannelResponseCallback() +CHIPActionsClusterPauseActionCallback::~CHIPActionsClusterPauseActionCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3299,8 +2872,8 @@ CHIPChannelClusterChangeChannelResponseCallback::~CHIPChannelClusterChangeChanne env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPChannelClusterChangeChannelResponseCallback::CallbackFn( - void * context, const chip::app::Clusters::Channel::Commands::ChangeChannelResponse::DecodableType & dataResponse) +void CHIPActionsClusterPauseActionCallback::CallbackFn( + void * context, const chip::app::Clusters::Actions::Commands::PauseAction::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -3310,9 +2883,9 @@ void CHIPChannelClusterChangeChannelResponseCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; @@ -3323,29 +2896,112 @@ void CHIPChannelClusterChangeChannelResponseCallback::CallbackFn( &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject Status; - std::string StatusClassName = "java/lang/Integer"; - std::string StatusCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), - static_cast(dataResponse.status), Status); - jobject Data; - if (!dataResponse.data.HasValue()) + jobject ActionID; + std::string ActionIDClassName = "java/lang/Integer"; + std::string ActionIDCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(ActionIDClassName.c_str(), ActionIDCtorSignature.c_str(), + dataResponse.actionID, ActionID); + jobject InvokeID; + if (!dataResponse.invokeID.HasValue()) { - chip::JniReferences::GetInstance().CreateOptional(nullptr, Data); + chip::JniReferences::GetInstance().CreateOptional(nullptr, InvokeID); } else { - jobject DataInsideOptional; - DataInsideOptional = - env->NewStringUTF(std::string(dataResponse.data.Value().data(), dataResponse.data.Value().size()).c_str()); - chip::JniReferences::GetInstance().CreateOptional(DataInsideOptional, Data); + jobject InvokeIDInsideOptional; + std::string InvokeIDInsideOptionalClassName = "java/lang/Long"; + std::string InvokeIDInsideOptionalCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(InvokeIDInsideOptionalClassName.c_str(), + InvokeIDInsideOptionalCtorSignature.c_str(), + dataResponse.invokeID.Value(), InvokeIDInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(InvokeIDInsideOptional, InvokeID); } - env->CallVoidMethod(javaCallbackRef, javaMethod, Status, Data); + env->CallVoidMethod(javaCallbackRef, javaMethod, ActionID, InvokeID); } -CHIPTargetNavigatorClusterNavigateTargetResponseCallback::CHIPTargetNavigatorClusterNavigateTargetResponseCallback( - jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPActionsClusterPauseActionWithDurationCallback::CHIPActionsClusterPauseActionWithDurationCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPActionsClusterPauseActionWithDurationCallback::~CHIPActionsClusterPauseActionWithDurationCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPActionsClusterPauseActionWithDurationCallback::CallbackFn( + void * context, const chip::app::Clusters::Actions::Commands::PauseActionWithDuration::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/util/Optional;Ljava/lang/Long;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject ActionID; + std::string ActionIDClassName = "java/lang/Integer"; + std::string ActionIDCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(ActionIDClassName.c_str(), ActionIDCtorSignature.c_str(), + dataResponse.actionID, ActionID); + jobject InvokeID; + if (!dataResponse.invokeID.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, InvokeID); + } + else + { + jobject InvokeIDInsideOptional; + std::string InvokeIDInsideOptionalClassName = "java/lang/Long"; + std::string InvokeIDInsideOptionalCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(InvokeIDInsideOptionalClassName.c_str(), + InvokeIDInsideOptionalCtorSignature.c_str(), + dataResponse.invokeID.Value(), InvokeIDInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(InvokeIDInsideOptional, InvokeID); + } + jobject Duration; + std::string DurationClassName = "java/lang/Long"; + std::string DurationCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(DurationClassName.c_str(), DurationCtorSignature.c_str(), + dataResponse.duration, Duration); + + env->CallVoidMethod(javaCallbackRef, javaMethod, ActionID, InvokeID, Duration); +} +CHIPActionsClusterResumeActionCallback::CHIPActionsClusterResumeActionCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3361,7 +3017,7 @@ CHIPTargetNavigatorClusterNavigateTargetResponseCallback::CHIPTargetNavigatorClu } } -CHIPTargetNavigatorClusterNavigateTargetResponseCallback::~CHIPTargetNavigatorClusterNavigateTargetResponseCallback() +CHIPActionsClusterResumeActionCallback::~CHIPActionsClusterResumeActionCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3372,8 +3028,8 @@ CHIPTargetNavigatorClusterNavigateTargetResponseCallback::~CHIPTargetNavigatorCl env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPTargetNavigatorClusterNavigateTargetResponseCallback::CallbackFn( - void * context, const chip::app::Clusters::TargetNavigator::Commands::NavigateTargetResponse::DecodableType & dataResponse) +void CHIPActionsClusterResumeActionCallback::CallbackFn( + void * context, const chip::app::Clusters::Actions::Commands::ResumeAction::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -3383,10 +3039,9 @@ void CHIPTargetNavigatorClusterNavigateTargetResponseCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; @@ -3397,28 +3052,31 @@ void CHIPTargetNavigatorClusterNavigateTargetResponseCallback::CallbackFn( &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject Status; - std::string StatusClassName = "java/lang/Integer"; - std::string StatusCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), - static_cast(dataResponse.status), Status); - jobject Data; - if (!dataResponse.data.HasValue()) + jobject ActionID; + std::string ActionIDClassName = "java/lang/Integer"; + std::string ActionIDCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(ActionIDClassName.c_str(), ActionIDCtorSignature.c_str(), + dataResponse.actionID, ActionID); + jobject InvokeID; + if (!dataResponse.invokeID.HasValue()) { - chip::JniReferences::GetInstance().CreateOptional(nullptr, Data); + chip::JniReferences::GetInstance().CreateOptional(nullptr, InvokeID); } else { - jobject DataInsideOptional; - DataInsideOptional = - env->NewStringUTF(std::string(dataResponse.data.Value().data(), dataResponse.data.Value().size()).c_str()); - chip::JniReferences::GetInstance().CreateOptional(DataInsideOptional, Data); + jobject InvokeIDInsideOptional; + std::string InvokeIDInsideOptionalClassName = "java/lang/Long"; + std::string InvokeIDInsideOptionalCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(InvokeIDInsideOptionalClassName.c_str(), + InvokeIDInsideOptionalCtorSignature.c_str(), + dataResponse.invokeID.Value(), InvokeIDInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(InvokeIDInsideOptional, InvokeID); } - env->CallVoidMethod(javaCallbackRef, javaMethod, Status, Data); + env->CallVoidMethod(javaCallbackRef, javaMethod, ActionID, InvokeID); } -CHIPMediaPlaybackClusterPlaybackResponseCallback::CHIPMediaPlaybackClusterPlaybackResponseCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPActionsClusterEnableActionCallback::CHIPActionsClusterEnableActionCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3434,7 +3092,7 @@ CHIPMediaPlaybackClusterPlaybackResponseCallback::CHIPMediaPlaybackClusterPlayba } } -CHIPMediaPlaybackClusterPlaybackResponseCallback::~CHIPMediaPlaybackClusterPlaybackResponseCallback() +CHIPActionsClusterEnableActionCallback::~CHIPActionsClusterEnableActionCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3445,8 +3103,8 @@ CHIPMediaPlaybackClusterPlaybackResponseCallback::~CHIPMediaPlaybackClusterPlayb env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPMediaPlaybackClusterPlaybackResponseCallback::CallbackFn( - void * context, const chip::app::Clusters::MediaPlayback::Commands::PlaybackResponse::DecodableType & dataResponse) +void CHIPActionsClusterEnableActionCallback::CallbackFn( + void * context, const chip::app::Clusters::Actions::Commands::EnableAction::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -3456,9 +3114,9 @@ void CHIPMediaPlaybackClusterPlaybackResponseCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; @@ -3469,28 +3127,31 @@ void CHIPMediaPlaybackClusterPlaybackResponseCallback::CallbackFn( &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject Status; - std::string StatusClassName = "java/lang/Integer"; - std::string StatusCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), - static_cast(dataResponse.status), Status); - jobject Data; - if (!dataResponse.data.HasValue()) + jobject ActionID; + std::string ActionIDClassName = "java/lang/Integer"; + std::string ActionIDCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(ActionIDClassName.c_str(), ActionIDCtorSignature.c_str(), + dataResponse.actionID, ActionID); + jobject InvokeID; + if (!dataResponse.invokeID.HasValue()) { - chip::JniReferences::GetInstance().CreateOptional(nullptr, Data); + chip::JniReferences::GetInstance().CreateOptional(nullptr, InvokeID); } else { - jobject DataInsideOptional; - DataInsideOptional = - env->NewStringUTF(std::string(dataResponse.data.Value().data(), dataResponse.data.Value().size()).c_str()); - chip::JniReferences::GetInstance().CreateOptional(DataInsideOptional, Data); + jobject InvokeIDInsideOptional; + std::string InvokeIDInsideOptionalClassName = "java/lang/Long"; + std::string InvokeIDInsideOptionalCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(InvokeIDInsideOptionalClassName.c_str(), + InvokeIDInsideOptionalCtorSignature.c_str(), + dataResponse.invokeID.Value(), InvokeIDInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(InvokeIDInsideOptional, InvokeID); } - env->CallVoidMethod(javaCallbackRef, javaMethod, Status, Data); + env->CallVoidMethod(javaCallbackRef, javaMethod, ActionID, InvokeID); } -CHIPKeypadInputClusterSendKeyResponseCallback::CHIPKeypadInputClusterSendKeyResponseCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPActionsClusterEnableActionWithDurationCallback::CHIPActionsClusterEnableActionWithDurationCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3506,7 +3167,7 @@ CHIPKeypadInputClusterSendKeyResponseCallback::CHIPKeypadInputClusterSendKeyResp } } -CHIPKeypadInputClusterSendKeyResponseCallback::~CHIPKeypadInputClusterSendKeyResponseCallback() +CHIPActionsClusterEnableActionWithDurationCallback::~CHIPActionsClusterEnableActionWithDurationCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3517,8 +3178,8 @@ CHIPKeypadInputClusterSendKeyResponseCallback::~CHIPKeypadInputClusterSendKeyRes env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPKeypadInputClusterSendKeyResponseCallback::CallbackFn( - void * context, const chip::app::Clusters::KeypadInput::Commands::SendKeyResponse::DecodableType & dataResponse) +void CHIPActionsClusterEnableActionWithDurationCallback::CallbackFn( + void * context, const chip::app::Clusters::Actions::Commands::EnableActionWithDuration::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -3528,28 +3189,50 @@ void CHIPKeypadInputClusterSendKeyResponseCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/util/Optional;Ljava/lang/Long;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject Status; - std::string StatusClassName = "java/lang/Integer"; - std::string StatusCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), - static_cast(dataResponse.status), Status); - - env->CallVoidMethod(javaCallbackRef, javaMethod, Status); + jobject ActionID; + std::string ActionIDClassName = "java/lang/Integer"; + std::string ActionIDCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(ActionIDClassName.c_str(), ActionIDCtorSignature.c_str(), + dataResponse.actionID, ActionID); + jobject InvokeID; + if (!dataResponse.invokeID.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, InvokeID); + } + else + { + jobject InvokeIDInsideOptional; + std::string InvokeIDInsideOptionalClassName = "java/lang/Long"; + std::string InvokeIDInsideOptionalCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(InvokeIDInsideOptionalClassName.c_str(), + InvokeIDInsideOptionalCtorSignature.c_str(), + dataResponse.invokeID.Value(), InvokeIDInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(InvokeIDInsideOptional, InvokeID); + } + jobject Duration; + std::string DurationClassName = "java/lang/Long"; + std::string DurationCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(DurationClassName.c_str(), DurationCtorSignature.c_str(), + dataResponse.duration, Duration); + + env->CallVoidMethod(javaCallbackRef, javaMethod, ActionID, InvokeID, Duration); } -CHIPContentLauncherClusterLauncherResponseCallback::CHIPContentLauncherClusterLauncherResponseCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPActionsClusterDisableActionCallback::CHIPActionsClusterDisableActionCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3565,7 +3248,7 @@ CHIPContentLauncherClusterLauncherResponseCallback::CHIPContentLauncherClusterLa } } -CHIPContentLauncherClusterLauncherResponseCallback::~CHIPContentLauncherClusterLauncherResponseCallback() +CHIPActionsClusterDisableActionCallback::~CHIPActionsClusterDisableActionCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3576,8 +3259,8 @@ CHIPContentLauncherClusterLauncherResponseCallback::~CHIPContentLauncherClusterL env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPContentLauncherClusterLauncherResponseCallback::CallbackFn( - void * context, const chip::app::Clusters::ContentLauncher::Commands::LauncherResponse::DecodableType & dataResponse) +void CHIPActionsClusterDisableActionCallback::CallbackFn( + void * context, const chip::app::Clusters::Actions::Commands::DisableAction::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -3587,10 +3270,9 @@ void CHIPContentLauncherClusterLauncherResponseCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; @@ -3601,29 +3283,31 @@ void CHIPContentLauncherClusterLauncherResponseCallback::CallbackFn( &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject Status; - std::string StatusClassName = "java/lang/Integer"; - std::string StatusCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), - static_cast(dataResponse.status), Status); - jobject Data; - if (!dataResponse.data.HasValue()) + jobject ActionID; + std::string ActionIDClassName = "java/lang/Integer"; + std::string ActionIDCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(ActionIDClassName.c_str(), ActionIDCtorSignature.c_str(), + dataResponse.actionID, ActionID); + jobject InvokeID; + if (!dataResponse.invokeID.HasValue()) { - chip::JniReferences::GetInstance().CreateOptional(nullptr, Data); + chip::JniReferences::GetInstance().CreateOptional(nullptr, InvokeID); } else { - jobject DataInsideOptional; - DataInsideOptional = - env->NewStringUTF(std::string(dataResponse.data.Value().data(), dataResponse.data.Value().size()).c_str()); - chip::JniReferences::GetInstance().CreateOptional(DataInsideOptional, Data); + jobject InvokeIDInsideOptional; + std::string InvokeIDInsideOptionalClassName = "java/lang/Long"; + std::string InvokeIDInsideOptionalCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(InvokeIDInsideOptionalClassName.c_str(), + InvokeIDInsideOptionalCtorSignature.c_str(), + dataResponse.invokeID.Value(), InvokeIDInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(InvokeIDInsideOptional, InvokeID); } - env->CallVoidMethod(javaCallbackRef, javaMethod, Status, Data); + env->CallVoidMethod(javaCallbackRef, javaMethod, ActionID, InvokeID); } -CHIPApplicationLauncherClusterLauncherResponseCallback::CHIPApplicationLauncherClusterLauncherResponseCallback( - jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPActionsClusterDisableActionWithDurationCallback::CHIPActionsClusterDisableActionWithDurationCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3639,7 +3323,7 @@ CHIPApplicationLauncherClusterLauncherResponseCallback::CHIPApplicationLauncherC } } -CHIPApplicationLauncherClusterLauncherResponseCallback::~CHIPApplicationLauncherClusterLauncherResponseCallback() +CHIPActionsClusterDisableActionWithDurationCallback::~CHIPActionsClusterDisableActionWithDurationCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3650,8 +3334,8 @@ CHIPApplicationLauncherClusterLauncherResponseCallback::~CHIPApplicationLauncher env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPApplicationLauncherClusterLauncherResponseCallback::CallbackFn( - void * context, const chip::app::Clusters::ApplicationLauncher::Commands::LauncherResponse::DecodableType & dataResponse) +void CHIPActionsClusterDisableActionWithDurationCallback::CallbackFn( + void * context, const chip::app::Clusters::Actions::Commands::DisableActionWithDuration::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -3661,44 +3345,50 @@ void CHIPApplicationLauncherClusterLauncherResponseCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/util/Optional;)V", - &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/util/Optional;Ljava/lang/Long;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject Status; - std::string StatusClassName = "java/lang/Integer"; - std::string StatusCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), - static_cast(dataResponse.status), Status); - jobject Data; - if (!dataResponse.data.HasValue()) + jobject ActionID; + std::string ActionIDClassName = "java/lang/Integer"; + std::string ActionIDCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(ActionIDClassName.c_str(), ActionIDCtorSignature.c_str(), + dataResponse.actionID, ActionID); + jobject InvokeID; + if (!dataResponse.invokeID.HasValue()) { - chip::JniReferences::GetInstance().CreateOptional(nullptr, Data); + chip::JniReferences::GetInstance().CreateOptional(nullptr, InvokeID); } else { - jobject DataInsideOptional; - jbyteArray DataInsideOptionalByteArray = env->NewByteArray(static_cast(dataResponse.data.Value().size())); - env->SetByteArrayRegion(DataInsideOptionalByteArray, 0, static_cast(dataResponse.data.Value().size()), - reinterpret_cast(dataResponse.data.Value().data())); - DataInsideOptional = DataInsideOptionalByteArray; - chip::JniReferences::GetInstance().CreateOptional(DataInsideOptional, Data); - } - - env->CallVoidMethod(javaCallbackRef, javaMethod, Status, Data); + jobject InvokeIDInsideOptional; + std::string InvokeIDInsideOptionalClassName = "java/lang/Long"; + std::string InvokeIDInsideOptionalCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(InvokeIDInsideOptionalClassName.c_str(), + InvokeIDInsideOptionalCtorSignature.c_str(), + dataResponse.invokeID.Value(), InvokeIDInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(InvokeIDInsideOptional, InvokeID); + } + jobject Duration; + std::string DurationClassName = "java/lang/Long"; + std::string DurationCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(DurationClassName.c_str(), DurationCtorSignature.c_str(), + dataResponse.duration, Duration); + + env->CallVoidMethod(javaCallbackRef, javaMethod, ActionID, InvokeID, Duration); } -CHIPAccountLoginClusterGetSetupPINResponseCallback::CHIPAccountLoginClusterGetSetupPINResponseCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPBasicInformationClusterMfgSpecificPingCallback::CHIPBasicInformationClusterMfgSpecificPingCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3714,7 +3404,7 @@ CHIPAccountLoginClusterGetSetupPINResponseCallback::CHIPAccountLoginClusterGetSe } } -CHIPAccountLoginClusterGetSetupPINResponseCallback::~CHIPAccountLoginClusterGetSetupPINResponseCallback() +CHIPBasicInformationClusterMfgSpecificPingCallback::~CHIPBasicInformationClusterMfgSpecificPingCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3725,8 +3415,8 @@ CHIPAccountLoginClusterGetSetupPINResponseCallback::~CHIPAccountLoginClusterGetS env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPAccountLoginClusterGetSetupPINResponseCallback::CallbackFn( - void * context, const chip::app::Clusters::AccountLogin::Commands::GetSetupPINResponse::DecodableType & dataResponse) +void CHIPBasicInformationClusterMfgSpecificPingCallback::CallbackFn( + void * context, const chip::app::Clusters::BasicInformation::Commands::MfgSpecificPing::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -3736,26 +3426,24 @@ void CHIPAccountLoginClusterGetSetupPINResponseCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/String;)V", &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject SetupPIN; - SetupPIN = env->NewStringUTF(std::string(dataResponse.setupPIN.data(), dataResponse.setupPIN.size()).c_str()); - - env->CallVoidMethod(javaCallbackRef, javaMethod, SetupPIN); + env->CallVoidMethod(javaCallbackRef, javaMethod); } -CHIPUnitTestingClusterTestSpecificResponseCallback::CHIPUnitTestingClusterTestSpecificResponseCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPOtaSoftwareUpdateProviderClusterQueryImageCallback::CHIPOtaSoftwareUpdateProviderClusterQueryImageCallback( + jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3771,7 +3459,7 @@ CHIPUnitTestingClusterTestSpecificResponseCallback::CHIPUnitTestingClusterTestSp } } -CHIPUnitTestingClusterTestSpecificResponseCallback::~CHIPUnitTestingClusterTestSpecificResponseCallback() +CHIPOtaSoftwareUpdateProviderClusterQueryImageCallback::~CHIPOtaSoftwareUpdateProviderClusterQueryImageCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3782,8 +3470,8 @@ CHIPUnitTestingClusterTestSpecificResponseCallback::~CHIPUnitTestingClusterTestS env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPUnitTestingClusterTestSpecificResponseCallback::CallbackFn( - void * context, const chip::app::Clusters::UnitTesting::Commands::TestSpecificResponse::DecodableType & dataResponse) +void CHIPOtaSoftwareUpdateProviderClusterQueryImageCallback::CallbackFn( + void * context, const chip::app::Clusters::OtaSoftwareUpdateProvider::Commands::QueryImage::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -3793,30 +3481,117 @@ void CHIPUnitTestingClusterTestSpecificResponseCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + err = + JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Long;Ljava/util/ArrayList;Ljava/" + "util/Optional;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;)V", + &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject returnValue; - std::string returnValueClassName = "java/lang/Integer"; - std::string returnValueCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(returnValueClassName.c_str(), returnValueCtorSignature.c_str(), - dataResponse.returnValue, returnValue); + jobject VendorID; + std::string VendorIDClassName = "java/lang/Integer"; + std::string VendorIDCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(VendorIDClassName.c_str(), VendorIDCtorSignature.c_str(), + static_cast(dataResponse.vendorID), VendorID); + jobject ProductID; + std::string ProductIDClassName = "java/lang/Integer"; + std::string ProductIDCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(ProductIDClassName.c_str(), ProductIDCtorSignature.c_str(), + dataResponse.productID, ProductID); + jobject SoftwareVersion; + std::string SoftwareVersionClassName = "java/lang/Long"; + std::string SoftwareVersionCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + SoftwareVersionClassName.c_str(), SoftwareVersionCtorSignature.c_str(), dataResponse.softwareVersion, SoftwareVersion); + jobject ProtocolsSupported; + chip::JniReferences::GetInstance().CreateArrayList(ProtocolsSupported); + + auto iter_ProtocolsSupported_0 = dataResponse.protocolsSupported.begin(); + while (iter_ProtocolsSupported_0.Next()) + { + auto & entry_0 = iter_ProtocolsSupported_0.GetValue(); + jobject newElement_0; + std::string newElement_0ClassName = "java/lang/Integer"; + std::string newElement_0CtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), static_cast(entry_0), newElement_0); + chip::JniReferences::GetInstance().AddToList(ProtocolsSupported, newElement_0); + } + jobject HardwareVersion; + if (!dataResponse.hardwareVersion.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, HardwareVersion); + } + else + { + jobject HardwareVersionInsideOptional; + std::string HardwareVersionInsideOptionalClassName = "java/lang/Integer"; + std::string HardwareVersionInsideOptionalCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + HardwareVersionInsideOptionalClassName.c_str(), HardwareVersionInsideOptionalCtorSignature.c_str(), + dataResponse.hardwareVersion.Value(), HardwareVersionInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(HardwareVersionInsideOptional, HardwareVersion); + } + jobject Location; + if (!dataResponse.location.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, Location); + } + else + { + jobject LocationInsideOptional; + LocationInsideOptional = + env->NewStringUTF(std::string(dataResponse.location.Value().data(), dataResponse.location.Value().size()).c_str()); + chip::JniReferences::GetInstance().CreateOptional(LocationInsideOptional, Location); + } + jobject RequestorCanConsent; + if (!dataResponse.requestorCanConsent.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, RequestorCanConsent); + } + else + { + jobject RequestorCanConsentInsideOptional; + std::string RequestorCanConsentInsideOptionalClassName = "java/lang/Boolean"; + std::string RequestorCanConsentInsideOptionalCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + RequestorCanConsentInsideOptionalClassName.c_str(), RequestorCanConsentInsideOptionalCtorSignature.c_str(), + dataResponse.requestorCanConsent.Value(), RequestorCanConsentInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(RequestorCanConsentInsideOptional, RequestorCanConsent); + } + jobject MetadataForProvider; + if (!dataResponse.metadataForProvider.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, MetadataForProvider); + } + else + { + jobject MetadataForProviderInsideOptional; + jbyteArray MetadataForProviderInsideOptionalByteArray = + env->NewByteArray(static_cast(dataResponse.metadataForProvider.Value().size())); + env->SetByteArrayRegion(MetadataForProviderInsideOptionalByteArray, 0, + static_cast(dataResponse.metadataForProvider.Value().size()), + reinterpret_cast(dataResponse.metadataForProvider.Value().data())); + MetadataForProviderInsideOptional = MetadataForProviderInsideOptionalByteArray; + chip::JniReferences::GetInstance().CreateOptional(MetadataForProviderInsideOptional, MetadataForProvider); + } - env->CallVoidMethod(javaCallbackRef, javaMethod, returnValue); + env->CallVoidMethod(javaCallbackRef, javaMethod, VendorID, ProductID, SoftwareVersion, ProtocolsSupported, HardwareVersion, + Location, RequestorCanConsent, MetadataForProvider); } -CHIPUnitTestingClusterTestAddArgumentsResponseCallback::CHIPUnitTestingClusterTestAddArgumentsResponseCallback( +CHIPOtaSoftwareUpdateProviderClusterApplyUpdateRequestCallback::CHIPOtaSoftwareUpdateProviderClusterApplyUpdateRequestCallback( jobject javaCallback) : - Callback::Callback(CallbackFn, this) + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3832,52 +3607,11645 @@ CHIPUnitTestingClusterTestAddArgumentsResponseCallback::CHIPUnitTestingClusterTe } } -CHIPUnitTestingClusterTestAddArgumentsResponseCallback::~CHIPUnitTestingClusterTestAddArgumentsResponseCallback() +CHIPOtaSoftwareUpdateProviderClusterApplyUpdateRequestCallback::~CHIPOtaSoftwareUpdateProviderClusterApplyUpdateRequestCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPOtaSoftwareUpdateProviderClusterApplyUpdateRequestCallback::CallbackFn( + void * context, + const chip::app::Clusters::OtaSoftwareUpdateProvider::Commands::ApplyUpdateRequest::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "([BLjava/lang/Long;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject UpdateToken; + jbyteArray UpdateTokenByteArray = env->NewByteArray(static_cast(dataResponse.updateToken.size())); + env->SetByteArrayRegion(UpdateTokenByteArray, 0, static_cast(dataResponse.updateToken.size()), + reinterpret_cast(dataResponse.updateToken.data())); + UpdateToken = UpdateTokenByteArray; + jobject NewVersion; + std::string NewVersionClassName = "java/lang/Long"; + std::string NewVersionCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(NewVersionClassName.c_str(), NewVersionCtorSignature.c_str(), + dataResponse.newVersion, NewVersion); + + env->CallVoidMethod(javaCallbackRef, javaMethod, UpdateToken, NewVersion); +} +CHIPOtaSoftwareUpdateProviderClusterNotifyUpdateAppliedCallback::CHIPOtaSoftwareUpdateProviderClusterNotifyUpdateAppliedCallback( + jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; + 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"); + } +} + +CHIPOtaSoftwareUpdateProviderClusterNotifyUpdateAppliedCallback::~CHIPOtaSoftwareUpdateProviderClusterNotifyUpdateAppliedCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPOtaSoftwareUpdateProviderClusterNotifyUpdateAppliedCallback::CallbackFn( + void * context, + const chip::app::Clusters::OtaSoftwareUpdateProvider::Commands::NotifyUpdateApplied::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "([BLjava/lang/Long;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject UpdateToken; + jbyteArray UpdateTokenByteArray = env->NewByteArray(static_cast(dataResponse.updateToken.size())); + env->SetByteArrayRegion(UpdateTokenByteArray, 0, static_cast(dataResponse.updateToken.size()), + reinterpret_cast(dataResponse.updateToken.data())); + UpdateToken = UpdateTokenByteArray; + jobject SoftwareVersion; + std::string SoftwareVersionClassName = "java/lang/Long"; + std::string SoftwareVersionCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + SoftwareVersionClassName.c_str(), SoftwareVersionCtorSignature.c_str(), dataResponse.softwareVersion, SoftwareVersion); + + env->CallVoidMethod(javaCallbackRef, javaMethod, UpdateToken, SoftwareVersion); +} +CHIPOtaSoftwareUpdateRequestorClusterAnnounceOTAProviderCallback::CHIPOtaSoftwareUpdateRequestorClusterAnnounceOTAProviderCallback( + jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPOtaSoftwareUpdateRequestorClusterAnnounceOTAProviderCallback:: + ~CHIPOtaSoftwareUpdateRequestorClusterAnnounceOTAProviderCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPOtaSoftwareUpdateRequestorClusterAnnounceOTAProviderCallback::CallbackFn( + void * context, + const chip::app::Clusters::OtaSoftwareUpdateRequestor::Commands::AnnounceOTAProvider::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod( + env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Long;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/util/Optional;Ljava/lang/Integer;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject ProviderNodeID; + std::string ProviderNodeIDClassName = "java/lang/Long"; + std::string ProviderNodeIDCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + ProviderNodeIDClassName.c_str(), ProviderNodeIDCtorSignature.c_str(), dataResponse.providerNodeID, ProviderNodeID); + jobject VendorID; + std::string VendorIDClassName = "java/lang/Integer"; + std::string VendorIDCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(VendorIDClassName.c_str(), VendorIDCtorSignature.c_str(), + static_cast(dataResponse.vendorID), VendorID); + jobject AnnouncementReason; + std::string AnnouncementReasonClassName = "java/lang/Integer"; + std::string AnnouncementReasonCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + AnnouncementReasonClassName.c_str(), AnnouncementReasonCtorSignature.c_str(), + static_cast(dataResponse.announcementReason), AnnouncementReason); + jobject MetadataForNode; + if (!dataResponse.metadataForNode.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, MetadataForNode); + } + else + { + jobject MetadataForNodeInsideOptional; + jbyteArray MetadataForNodeInsideOptionalByteArray = + env->NewByteArray(static_cast(dataResponse.metadataForNode.Value().size())); + env->SetByteArrayRegion(MetadataForNodeInsideOptionalByteArray, 0, + static_cast(dataResponse.metadataForNode.Value().size()), + reinterpret_cast(dataResponse.metadataForNode.Value().data())); + MetadataForNodeInsideOptional = MetadataForNodeInsideOptionalByteArray; + chip::JniReferences::GetInstance().CreateOptional(MetadataForNodeInsideOptional, MetadataForNode); + } + jobject Endpoint; + std::string EndpointClassName = "java/lang/Integer"; + std::string EndpointCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(EndpointClassName.c_str(), EndpointCtorSignature.c_str(), + dataResponse.endpoint, Endpoint); + + env->CallVoidMethod(javaCallbackRef, javaMethod, ProviderNodeID, VendorID, AnnouncementReason, MetadataForNode, Endpoint); +} +CHIPGeneralCommissioningClusterArmFailSafeCallback::CHIPGeneralCommissioningClusterArmFailSafeCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPGeneralCommissioningClusterArmFailSafeCallback::~CHIPGeneralCommissioningClusterArmFailSafeCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPGeneralCommissioningClusterArmFailSafeCallback::CallbackFn( + void * context, const chip::app::Clusters::GeneralCommissioning::Commands::ArmFailSafe::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Long;)V", + &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject ExpiryLengthSeconds; + std::string ExpiryLengthSecondsClassName = "java/lang/Integer"; + std::string ExpiryLengthSecondsCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(ExpiryLengthSecondsClassName.c_str(), + ExpiryLengthSecondsCtorSignature.c_str(), + dataResponse.expiryLengthSeconds, ExpiryLengthSeconds); + jobject Breadcrumb; + std::string BreadcrumbClassName = "java/lang/Long"; + std::string BreadcrumbCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(BreadcrumbClassName.c_str(), BreadcrumbCtorSignature.c_str(), + dataResponse.breadcrumb, Breadcrumb); + + env->CallVoidMethod(javaCallbackRef, javaMethod, ExpiryLengthSeconds, Breadcrumb); +} +CHIPGeneralCommissioningClusterSetRegulatoryConfigCallback::CHIPGeneralCommissioningClusterSetRegulatoryConfigCallback( + jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPGeneralCommissioningClusterSetRegulatoryConfigCallback::~CHIPGeneralCommissioningClusterSetRegulatoryConfigCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPGeneralCommissioningClusterSetRegulatoryConfigCallback::CallbackFn( + void * context, const chip::app::Clusters::GeneralCommissioning::Commands::SetRegulatoryConfig::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/Long;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject NewRegulatoryConfig; + std::string NewRegulatoryConfigClassName = "java/lang/Integer"; + std::string NewRegulatoryConfigCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + NewRegulatoryConfigClassName.c_str(), NewRegulatoryConfigCtorSignature.c_str(), + static_cast(dataResponse.newRegulatoryConfig), NewRegulatoryConfig); + jobject CountryCode; + CountryCode = env->NewStringUTF(std::string(dataResponse.countryCode.data(), dataResponse.countryCode.size()).c_str()); + jobject Breadcrumb; + std::string BreadcrumbClassName = "java/lang/Long"; + std::string BreadcrumbCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(BreadcrumbClassName.c_str(), BreadcrumbCtorSignature.c_str(), + dataResponse.breadcrumb, Breadcrumb); + + env->CallVoidMethod(javaCallbackRef, javaMethod, NewRegulatoryConfig, CountryCode, Breadcrumb); +} +CHIPGeneralCommissioningClusterCommissioningCompleteCallback::CHIPGeneralCommissioningClusterCommissioningCompleteCallback( + jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPGeneralCommissioningClusterCommissioningCompleteCallback::~CHIPGeneralCommissioningClusterCommissioningCompleteCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPGeneralCommissioningClusterCommissioningCompleteCallback::CallbackFn( + void * context, const chip::app::Clusters::GeneralCommissioning::Commands::CommissioningComplete::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + env->CallVoidMethod(javaCallbackRef, javaMethod); +} +CHIPNetworkCommissioningClusterScanNetworksCallback::CHIPNetworkCommissioningClusterScanNetworksCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPNetworkCommissioningClusterScanNetworksCallback::~CHIPNetworkCommissioningClusterScanNetworksCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPNetworkCommissioningClusterScanNetworksCallback::CallbackFn( + void * context, const chip::app::Clusters::NetworkCommissioning::Commands::ScanNetworks::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/Optional;Ljava/util/Optional;)V", + &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject SSID; + if (!dataResponse.ssid.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, SSID); + } + else + { + jobject SSIDInsideOptional; + if (dataResponse.ssid.Value().IsNull()) + { + SSIDInsideOptional = nullptr; + } + else + { + jbyteArray SSIDInsideOptionalByteArray = + env->NewByteArray(static_cast(dataResponse.ssid.Value().Value().size())); + env->SetByteArrayRegion(SSIDInsideOptionalByteArray, 0, static_cast(dataResponse.ssid.Value().Value().size()), + reinterpret_cast(dataResponse.ssid.Value().Value().data())); + SSIDInsideOptional = SSIDInsideOptionalByteArray; + } + chip::JniReferences::GetInstance().CreateOptional(SSIDInsideOptional, SSID); + } + jobject Breadcrumb; + if (!dataResponse.breadcrumb.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, Breadcrumb); + } + else + { + jobject BreadcrumbInsideOptional; + std::string BreadcrumbInsideOptionalClassName = "java/lang/Long"; + std::string BreadcrumbInsideOptionalCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(BreadcrumbInsideOptionalClassName.c_str(), + BreadcrumbInsideOptionalCtorSignature.c_str(), + dataResponse.breadcrumb.Value(), BreadcrumbInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(BreadcrumbInsideOptional, Breadcrumb); + } + + env->CallVoidMethod(javaCallbackRef, javaMethod, SSID, Breadcrumb); +} +CHIPNetworkCommissioningClusterAddOrUpdateWiFiNetworkCallback::CHIPNetworkCommissioningClusterAddOrUpdateWiFiNetworkCallback( + jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPNetworkCommissioningClusterAddOrUpdateWiFiNetworkCallback::~CHIPNetworkCommissioningClusterAddOrUpdateWiFiNetworkCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPNetworkCommissioningClusterAddOrUpdateWiFiNetworkCallback::CallbackFn( + void * context, const chip::app::Clusters::NetworkCommissioning::Commands::AddOrUpdateWiFiNetwork::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "([B[BLjava/util/Optional;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject SSID; + jbyteArray SSIDByteArray = env->NewByteArray(static_cast(dataResponse.ssid.size())); + env->SetByteArrayRegion(SSIDByteArray, 0, static_cast(dataResponse.ssid.size()), + reinterpret_cast(dataResponse.ssid.data())); + SSID = SSIDByteArray; + jobject Credentials; + jbyteArray CredentialsByteArray = env->NewByteArray(static_cast(dataResponse.credentials.size())); + env->SetByteArrayRegion(CredentialsByteArray, 0, static_cast(dataResponse.credentials.size()), + reinterpret_cast(dataResponse.credentials.data())); + Credentials = CredentialsByteArray; + jobject breadcrumb; + if (!dataResponse.breadcrumb.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, breadcrumb); + } + else + { + jobject breadcrumbInsideOptional; + std::string breadcrumbInsideOptionalClassName = "java/lang/Long"; + std::string breadcrumbInsideOptionalCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(breadcrumbInsideOptionalClassName.c_str(), + breadcrumbInsideOptionalCtorSignature.c_str(), + dataResponse.breadcrumb.Value(), breadcrumbInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(breadcrumbInsideOptional, breadcrumb); + } + + env->CallVoidMethod(javaCallbackRef, javaMethod, SSID, Credentials, breadcrumb); +} +CHIPNetworkCommissioningClusterAddOrUpdateThreadNetworkCallback::CHIPNetworkCommissioningClusterAddOrUpdateThreadNetworkCallback( + jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPNetworkCommissioningClusterAddOrUpdateThreadNetworkCallback::~CHIPNetworkCommissioningClusterAddOrUpdateThreadNetworkCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPNetworkCommissioningClusterAddOrUpdateThreadNetworkCallback::CallbackFn( + void * context, + const chip::app::Clusters::NetworkCommissioning::Commands::AddOrUpdateThreadNetwork::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "([BLjava/util/Optional;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject OperationalDataset; + jbyteArray OperationalDatasetByteArray = env->NewByteArray(static_cast(dataResponse.operationalDataset.size())); + env->SetByteArrayRegion(OperationalDatasetByteArray, 0, static_cast(dataResponse.operationalDataset.size()), + reinterpret_cast(dataResponse.operationalDataset.data())); + OperationalDataset = OperationalDatasetByteArray; + jobject Breadcrumb; + if (!dataResponse.breadcrumb.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, Breadcrumb); + } + else + { + jobject BreadcrumbInsideOptional; + std::string BreadcrumbInsideOptionalClassName = "java/lang/Long"; + std::string BreadcrumbInsideOptionalCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(BreadcrumbInsideOptionalClassName.c_str(), + BreadcrumbInsideOptionalCtorSignature.c_str(), + dataResponse.breadcrumb.Value(), BreadcrumbInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(BreadcrumbInsideOptional, Breadcrumb); + } + + env->CallVoidMethod(javaCallbackRef, javaMethod, OperationalDataset, Breadcrumb); +} +CHIPNetworkCommissioningClusterRemoveNetworkCallback::CHIPNetworkCommissioningClusterRemoveNetworkCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPNetworkCommissioningClusterRemoveNetworkCallback::~CHIPNetworkCommissioningClusterRemoveNetworkCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPNetworkCommissioningClusterRemoveNetworkCallback::CallbackFn( + void * context, const chip::app::Clusters::NetworkCommissioning::Commands::RemoveNetwork::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "([BLjava/util/Optional;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject NetworkID; + jbyteArray NetworkIDByteArray = env->NewByteArray(static_cast(dataResponse.networkID.size())); + env->SetByteArrayRegion(NetworkIDByteArray, 0, static_cast(dataResponse.networkID.size()), + reinterpret_cast(dataResponse.networkID.data())); + NetworkID = NetworkIDByteArray; + jobject Breadcrumb; + if (!dataResponse.breadcrumb.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, Breadcrumb); + } + else + { + jobject BreadcrumbInsideOptional; + std::string BreadcrumbInsideOptionalClassName = "java/lang/Long"; + std::string BreadcrumbInsideOptionalCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(BreadcrumbInsideOptionalClassName.c_str(), + BreadcrumbInsideOptionalCtorSignature.c_str(), + dataResponse.breadcrumb.Value(), BreadcrumbInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(BreadcrumbInsideOptional, Breadcrumb); + } + + env->CallVoidMethod(javaCallbackRef, javaMethod, NetworkID, Breadcrumb); +} +CHIPNetworkCommissioningClusterConnectNetworkCallback::CHIPNetworkCommissioningClusterConnectNetworkCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPNetworkCommissioningClusterConnectNetworkCallback::~CHIPNetworkCommissioningClusterConnectNetworkCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPNetworkCommissioningClusterConnectNetworkCallback::CallbackFn( + void * context, const chip::app::Clusters::NetworkCommissioning::Commands::ConnectNetwork::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "([BLjava/util/Optional;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject NetworkID; + jbyteArray NetworkIDByteArray = env->NewByteArray(static_cast(dataResponse.networkID.size())); + env->SetByteArrayRegion(NetworkIDByteArray, 0, static_cast(dataResponse.networkID.size()), + reinterpret_cast(dataResponse.networkID.data())); + NetworkID = NetworkIDByteArray; + jobject Breadcrumb; + if (!dataResponse.breadcrumb.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, Breadcrumb); + } + else + { + jobject BreadcrumbInsideOptional; + std::string BreadcrumbInsideOptionalClassName = "java/lang/Long"; + std::string BreadcrumbInsideOptionalCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(BreadcrumbInsideOptionalClassName.c_str(), + BreadcrumbInsideOptionalCtorSignature.c_str(), + dataResponse.breadcrumb.Value(), BreadcrumbInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(BreadcrumbInsideOptional, Breadcrumb); + } + + env->CallVoidMethod(javaCallbackRef, javaMethod, NetworkID, Breadcrumb); +} +CHIPNetworkCommissioningClusterReorderNetworkCallback::CHIPNetworkCommissioningClusterReorderNetworkCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPNetworkCommissioningClusterReorderNetworkCallback::~CHIPNetworkCommissioningClusterReorderNetworkCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPNetworkCommissioningClusterReorderNetworkCallback::CallbackFn( + void * context, const chip::app::Clusters::NetworkCommissioning::Commands::ReorderNetwork::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "([BLjava/lang/Integer;Ljava/util/Optional;)V", + &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject NetworkID; + jbyteArray NetworkIDByteArray = env->NewByteArray(static_cast(dataResponse.networkID.size())); + env->SetByteArrayRegion(NetworkIDByteArray, 0, static_cast(dataResponse.networkID.size()), + reinterpret_cast(dataResponse.networkID.data())); + NetworkID = NetworkIDByteArray; + jobject NetworkIndex; + std::string NetworkIndexClassName = "java/lang/Integer"; + std::string NetworkIndexCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(NetworkIndexClassName.c_str(), NetworkIndexCtorSignature.c_str(), + dataResponse.networkIndex, NetworkIndex); + jobject Breadcrumb; + if (!dataResponse.breadcrumb.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, Breadcrumb); + } + else + { + jobject BreadcrumbInsideOptional; + std::string BreadcrumbInsideOptionalClassName = "java/lang/Long"; + std::string BreadcrumbInsideOptionalCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(BreadcrumbInsideOptionalClassName.c_str(), + BreadcrumbInsideOptionalCtorSignature.c_str(), + dataResponse.breadcrumb.Value(), BreadcrumbInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(BreadcrumbInsideOptional, Breadcrumb); + } + + env->CallVoidMethod(javaCallbackRef, javaMethod, NetworkID, NetworkIndex, Breadcrumb); +} +CHIPDiagnosticLogsClusterRetrieveLogsRequestCallback::CHIPDiagnosticLogsClusterRetrieveLogsRequestCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPDiagnosticLogsClusterRetrieveLogsRequestCallback::~CHIPDiagnosticLogsClusterRetrieveLogsRequestCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPDiagnosticLogsClusterRetrieveLogsRequestCallback::CallbackFn( + void * context, const chip::app::Clusters::DiagnosticLogs::Commands::RetrieveLogsRequest::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/util/Optional;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject Intent; + std::string IntentClassName = "java/lang/Integer"; + std::string IntentCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(IntentClassName.c_str(), IntentCtorSignature.c_str(), + static_cast(dataResponse.intent), Intent); + jobject RequestedProtocol; + std::string RequestedProtocolClassName = "java/lang/Integer"; + std::string RequestedProtocolCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + RequestedProtocolClassName.c_str(), RequestedProtocolCtorSignature.c_str(), + static_cast(dataResponse.requestedProtocol), RequestedProtocol); + jobject TransferFileDesignator; + if (!dataResponse.transferFileDesignator.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, TransferFileDesignator); + } + else + { + jobject TransferFileDesignatorInsideOptional; + TransferFileDesignatorInsideOptional = env->NewStringUTF( + std::string(dataResponse.transferFileDesignator.Value().data(), dataResponse.transferFileDesignator.Value().size()) + .c_str()); + chip::JniReferences::GetInstance().CreateOptional(TransferFileDesignatorInsideOptional, TransferFileDesignator); + } + + env->CallVoidMethod(javaCallbackRef, javaMethod, Intent, RequestedProtocol, TransferFileDesignator); +} +CHIPGeneralDiagnosticsClusterTestEventTriggerCallback::CHIPGeneralDiagnosticsClusterTestEventTriggerCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPGeneralDiagnosticsClusterTestEventTriggerCallback::~CHIPGeneralDiagnosticsClusterTestEventTriggerCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPGeneralDiagnosticsClusterTestEventTriggerCallback::CallbackFn( + void * context, const chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "([BLjava/lang/Long;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject EnableKey; + jbyteArray EnableKeyByteArray = env->NewByteArray(static_cast(dataResponse.enableKey.size())); + env->SetByteArrayRegion(EnableKeyByteArray, 0, static_cast(dataResponse.enableKey.size()), + reinterpret_cast(dataResponse.enableKey.data())); + EnableKey = EnableKeyByteArray; + jobject EventTrigger; + std::string EventTriggerClassName = "java/lang/Long"; + std::string EventTriggerCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(EventTriggerClassName.c_str(), EventTriggerCtorSignature.c_str(), + dataResponse.eventTrigger, EventTrigger); + + env->CallVoidMethod(javaCallbackRef, javaMethod, EnableKey, EventTrigger); +} +CHIPSoftwareDiagnosticsClusterResetWatermarksCallback::CHIPSoftwareDiagnosticsClusterResetWatermarksCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPSoftwareDiagnosticsClusterResetWatermarksCallback::~CHIPSoftwareDiagnosticsClusterResetWatermarksCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPSoftwareDiagnosticsClusterResetWatermarksCallback::CallbackFn( + void * context, const chip::app::Clusters::SoftwareDiagnostics::Commands::ResetWatermarks::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + env->CallVoidMethod(javaCallbackRef, javaMethod); +} +CHIPThreadNetworkDiagnosticsClusterResetCountsCallback::CHIPThreadNetworkDiagnosticsClusterResetCountsCallback( + jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPThreadNetworkDiagnosticsClusterResetCountsCallback::~CHIPThreadNetworkDiagnosticsClusterResetCountsCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPThreadNetworkDiagnosticsClusterResetCountsCallback::CallbackFn( + void * context, const chip::app::Clusters::ThreadNetworkDiagnostics::Commands::ResetCounts::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + env->CallVoidMethod(javaCallbackRef, javaMethod); +} +CHIPWiFiNetworkDiagnosticsClusterResetCountsCallback::CHIPWiFiNetworkDiagnosticsClusterResetCountsCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPWiFiNetworkDiagnosticsClusterResetCountsCallback::~CHIPWiFiNetworkDiagnosticsClusterResetCountsCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPWiFiNetworkDiagnosticsClusterResetCountsCallback::CallbackFn( + void * context, const chip::app::Clusters::WiFiNetworkDiagnostics::Commands::ResetCounts::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + env->CallVoidMethod(javaCallbackRef, javaMethod); +} +CHIPEthernetNetworkDiagnosticsClusterResetCountsCallback::CHIPEthernetNetworkDiagnosticsClusterResetCountsCallback( + jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPEthernetNetworkDiagnosticsClusterResetCountsCallback::~CHIPEthernetNetworkDiagnosticsClusterResetCountsCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPEthernetNetworkDiagnosticsClusterResetCountsCallback::CallbackFn( + void * context, const chip::app::Clusters::EthernetNetworkDiagnostics::Commands::ResetCounts::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + env->CallVoidMethod(javaCallbackRef, javaMethod); +} +CHIPAdministratorCommissioningClusterOpenCommissioningWindowCallback:: + CHIPAdministratorCommissioningClusterOpenCommissioningWindowCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPAdministratorCommissioningClusterOpenCommissioningWindowCallback:: + ~CHIPAdministratorCommissioningClusterOpenCommissioningWindowCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPAdministratorCommissioningClusterOpenCommissioningWindowCallback::CallbackFn( + void * context, + const chip::app::Clusters::AdministratorCommissioning::Commands::OpenCommissioningWindow::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;[BLjava/lang/Integer;Ljava/lang/Long;[B)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject CommissioningTimeout; + std::string CommissioningTimeoutClassName = "java/lang/Integer"; + std::string CommissioningTimeoutCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(CommissioningTimeoutClassName.c_str(), + CommissioningTimeoutCtorSignature.c_str(), + dataResponse.commissioningTimeout, CommissioningTimeout); + jobject PAKEPasscodeVerifier; + jbyteArray PAKEPasscodeVerifierByteArray = env->NewByteArray(static_cast(dataResponse.PAKEPasscodeVerifier.size())); + env->SetByteArrayRegion(PAKEPasscodeVerifierByteArray, 0, static_cast(dataResponse.PAKEPasscodeVerifier.size()), + reinterpret_cast(dataResponse.PAKEPasscodeVerifier.data())); + PAKEPasscodeVerifier = PAKEPasscodeVerifierByteArray; + jobject Discriminator; + std::string DiscriminatorClassName = "java/lang/Integer"; + std::string DiscriminatorCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + DiscriminatorClassName.c_str(), DiscriminatorCtorSignature.c_str(), dataResponse.discriminator, Discriminator); + jobject Iterations; + std::string IterationsClassName = "java/lang/Long"; + std::string IterationsCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(IterationsClassName.c_str(), IterationsCtorSignature.c_str(), + dataResponse.iterations, Iterations); + jobject Salt; + jbyteArray SaltByteArray = env->NewByteArray(static_cast(dataResponse.salt.size())); + env->SetByteArrayRegion(SaltByteArray, 0, static_cast(dataResponse.salt.size()), + reinterpret_cast(dataResponse.salt.data())); + Salt = SaltByteArray; + + env->CallVoidMethod(javaCallbackRef, javaMethod, CommissioningTimeout, PAKEPasscodeVerifier, Discriminator, Iterations, Salt); +} +CHIPAdministratorCommissioningClusterOpenBasicCommissioningWindowCallback:: + CHIPAdministratorCommissioningClusterOpenBasicCommissioningWindowCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPAdministratorCommissioningClusterOpenBasicCommissioningWindowCallback:: + ~CHIPAdministratorCommissioningClusterOpenBasicCommissioningWindowCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPAdministratorCommissioningClusterOpenBasicCommissioningWindowCallback::CallbackFn( + void * context, + const chip::app::Clusters::AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject CommissioningTimeout; + std::string CommissioningTimeoutClassName = "java/lang/Integer"; + std::string CommissioningTimeoutCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(CommissioningTimeoutClassName.c_str(), + CommissioningTimeoutCtorSignature.c_str(), + dataResponse.commissioningTimeout, CommissioningTimeout); + + env->CallVoidMethod(javaCallbackRef, javaMethod, CommissioningTimeout); +} +CHIPAdministratorCommissioningClusterRevokeCommissioningCallback::CHIPAdministratorCommissioningClusterRevokeCommissioningCallback( + jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPAdministratorCommissioningClusterRevokeCommissioningCallback:: + ~CHIPAdministratorCommissioningClusterRevokeCommissioningCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPAdministratorCommissioningClusterRevokeCommissioningCallback::CallbackFn( + void * context, + const chip::app::Clusters::AdministratorCommissioning::Commands::RevokeCommissioning::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + env->CallVoidMethod(javaCallbackRef, javaMethod); +} +CHIPOperationalCredentialsClusterAttestationRequestCallback::CHIPOperationalCredentialsClusterAttestationRequestCallback( + jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPOperationalCredentialsClusterAttestationRequestCallback::~CHIPOperationalCredentialsClusterAttestationRequestCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPOperationalCredentialsClusterAttestationRequestCallback::CallbackFn( + void * context, const chip::app::Clusters::OperationalCredentials::Commands::AttestationRequest::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "([B)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject AttestationNonce; + jbyteArray AttestationNonceByteArray = env->NewByteArray(static_cast(dataResponse.attestationNonce.size())); + env->SetByteArrayRegion(AttestationNonceByteArray, 0, static_cast(dataResponse.attestationNonce.size()), + reinterpret_cast(dataResponse.attestationNonce.data())); + AttestationNonce = AttestationNonceByteArray; + + env->CallVoidMethod(javaCallbackRef, javaMethod, AttestationNonce); +} +CHIPOperationalCredentialsClusterCertificateChainRequestCallback::CHIPOperationalCredentialsClusterCertificateChainRequestCallback( + jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPOperationalCredentialsClusterCertificateChainRequestCallback:: + ~CHIPOperationalCredentialsClusterCertificateChainRequestCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPOperationalCredentialsClusterCertificateChainRequestCallback::CallbackFn( + void * context, + const chip::app::Clusters::OperationalCredentials::Commands::CertificateChainRequest::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject CertificateType; + std::string CertificateTypeClassName = "java/lang/Integer"; + std::string CertificateTypeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + CertificateTypeClassName.c_str(), CertificateTypeCtorSignature.c_str(), static_cast(dataResponse.certificateType), + CertificateType); + + env->CallVoidMethod(javaCallbackRef, javaMethod, CertificateType); +} +CHIPOperationalCredentialsClusterCSRRequestCallback::CHIPOperationalCredentialsClusterCSRRequestCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPOperationalCredentialsClusterCSRRequestCallback::~CHIPOperationalCredentialsClusterCSRRequestCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPOperationalCredentialsClusterCSRRequestCallback::CallbackFn( + void * context, const chip::app::Clusters::OperationalCredentials::Commands::CSRRequest::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "([BLjava/util/Optional;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject CSRNonce; + jbyteArray CSRNonceByteArray = env->NewByteArray(static_cast(dataResponse.CSRNonce.size())); + env->SetByteArrayRegion(CSRNonceByteArray, 0, static_cast(dataResponse.CSRNonce.size()), + reinterpret_cast(dataResponse.CSRNonce.data())); + CSRNonce = CSRNonceByteArray; + jobject IsForUpdateNOC; + if (!dataResponse.isForUpdateNOC.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, IsForUpdateNOC); + } + else + { + jobject IsForUpdateNOCInsideOptional; + std::string IsForUpdateNOCInsideOptionalClassName = "java/lang/Boolean"; + std::string IsForUpdateNOCInsideOptionalCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + IsForUpdateNOCInsideOptionalClassName.c_str(), IsForUpdateNOCInsideOptionalCtorSignature.c_str(), + dataResponse.isForUpdateNOC.Value(), IsForUpdateNOCInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(IsForUpdateNOCInsideOptional, IsForUpdateNOC); + } + + env->CallVoidMethod(javaCallbackRef, javaMethod, CSRNonce, IsForUpdateNOC); +} +CHIPOperationalCredentialsClusterAddNOCCallback::CHIPOperationalCredentialsClusterAddNOCCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPOperationalCredentialsClusterAddNOCCallback::~CHIPOperationalCredentialsClusterAddNOCCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPOperationalCredentialsClusterAddNOCCallback::CallbackFn( + void * context, const chip::app::Clusters::OperationalCredentials::Commands::AddNOC::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", + "([BLjava/util/Optional;[BLjava/lang/Long;Ljava/lang/Integer;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject NOCValue; + jbyteArray NOCValueByteArray = env->NewByteArray(static_cast(dataResponse.NOCValue.size())); + env->SetByteArrayRegion(NOCValueByteArray, 0, static_cast(dataResponse.NOCValue.size()), + reinterpret_cast(dataResponse.NOCValue.data())); + NOCValue = NOCValueByteArray; + jobject ICACValue; + if (!dataResponse.ICACValue.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, ICACValue); + } + else + { + jobject ICACValueInsideOptional; + jbyteArray ICACValueInsideOptionalByteArray = env->NewByteArray(static_cast(dataResponse.ICACValue.Value().size())); + env->SetByteArrayRegion(ICACValueInsideOptionalByteArray, 0, static_cast(dataResponse.ICACValue.Value().size()), + reinterpret_cast(dataResponse.ICACValue.Value().data())); + ICACValueInsideOptional = ICACValueInsideOptionalByteArray; + chip::JniReferences::GetInstance().CreateOptional(ICACValueInsideOptional, ICACValue); + } + jobject IPKValue; + jbyteArray IPKValueByteArray = env->NewByteArray(static_cast(dataResponse.IPKValue.size())); + env->SetByteArrayRegion(IPKValueByteArray, 0, static_cast(dataResponse.IPKValue.size()), + reinterpret_cast(dataResponse.IPKValue.data())); + IPKValue = IPKValueByteArray; + jobject CaseAdminSubject; + std::string CaseAdminSubjectClassName = "java/lang/Long"; + std::string CaseAdminSubjectCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + CaseAdminSubjectClassName.c_str(), CaseAdminSubjectCtorSignature.c_str(), dataResponse.caseAdminSubject, CaseAdminSubject); + jobject AdminVendorId; + std::string AdminVendorIdClassName = "java/lang/Integer"; + std::string AdminVendorIdCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + AdminVendorIdClassName.c_str(), AdminVendorIdCtorSignature.c_str(), static_cast(dataResponse.adminVendorId), + AdminVendorId); + + env->CallVoidMethod(javaCallbackRef, javaMethod, NOCValue, ICACValue, IPKValue, CaseAdminSubject, AdminVendorId); +} +CHIPOperationalCredentialsClusterUpdateNOCCallback::CHIPOperationalCredentialsClusterUpdateNOCCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPOperationalCredentialsClusterUpdateNOCCallback::~CHIPOperationalCredentialsClusterUpdateNOCCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPOperationalCredentialsClusterUpdateNOCCallback::CallbackFn( + void * context, const chip::app::Clusters::OperationalCredentials::Commands::UpdateNOC::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "([BLjava/util/Optional;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject NOCValue; + jbyteArray NOCValueByteArray = env->NewByteArray(static_cast(dataResponse.NOCValue.size())); + env->SetByteArrayRegion(NOCValueByteArray, 0, static_cast(dataResponse.NOCValue.size()), + reinterpret_cast(dataResponse.NOCValue.data())); + NOCValue = NOCValueByteArray; + jobject ICACValue; + if (!dataResponse.ICACValue.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, ICACValue); + } + else + { + jobject ICACValueInsideOptional; + jbyteArray ICACValueInsideOptionalByteArray = env->NewByteArray(static_cast(dataResponse.ICACValue.Value().size())); + env->SetByteArrayRegion(ICACValueInsideOptionalByteArray, 0, static_cast(dataResponse.ICACValue.Value().size()), + reinterpret_cast(dataResponse.ICACValue.Value().data())); + ICACValueInsideOptional = ICACValueInsideOptionalByteArray; + chip::JniReferences::GetInstance().CreateOptional(ICACValueInsideOptional, ICACValue); + } + + env->CallVoidMethod(javaCallbackRef, javaMethod, NOCValue, ICACValue); +} +CHIPOperationalCredentialsClusterUpdateFabricLabelCallback::CHIPOperationalCredentialsClusterUpdateFabricLabelCallback( + jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPOperationalCredentialsClusterUpdateFabricLabelCallback::~CHIPOperationalCredentialsClusterUpdateFabricLabelCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPOperationalCredentialsClusterUpdateFabricLabelCallback::CallbackFn( + void * context, const chip::app::Clusters::OperationalCredentials::Commands::UpdateFabricLabel::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/String;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject Label; + Label = env->NewStringUTF(std::string(dataResponse.label.data(), dataResponse.label.size()).c_str()); + + env->CallVoidMethod(javaCallbackRef, javaMethod, Label); +} +CHIPOperationalCredentialsClusterRemoveFabricCallback::CHIPOperationalCredentialsClusterRemoveFabricCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPOperationalCredentialsClusterRemoveFabricCallback::~CHIPOperationalCredentialsClusterRemoveFabricCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPOperationalCredentialsClusterRemoveFabricCallback::CallbackFn( + void * context, const chip::app::Clusters::OperationalCredentials::Commands::RemoveFabric::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject FabricIndex; + std::string FabricIndexClassName = "java/lang/Integer"; + std::string FabricIndexCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(FabricIndexClassName.c_str(), FabricIndexCtorSignature.c_str(), + dataResponse.fabricIndex, FabricIndex); + + env->CallVoidMethod(javaCallbackRef, javaMethod, FabricIndex); +} +CHIPOperationalCredentialsClusterAddTrustedRootCertificateCallback:: + CHIPOperationalCredentialsClusterAddTrustedRootCertificateCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPOperationalCredentialsClusterAddTrustedRootCertificateCallback:: + ~CHIPOperationalCredentialsClusterAddTrustedRootCertificateCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPOperationalCredentialsClusterAddTrustedRootCertificateCallback::CallbackFn( + void * context, + const chip::app::Clusters::OperationalCredentials::Commands::AddTrustedRootCertificate::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "([B)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject RootCACertificate; + jbyteArray RootCACertificateByteArray = env->NewByteArray(static_cast(dataResponse.rootCACertificate.size())); + env->SetByteArrayRegion(RootCACertificateByteArray, 0, static_cast(dataResponse.rootCACertificate.size()), + reinterpret_cast(dataResponse.rootCACertificate.data())); + RootCACertificate = RootCACertificateByteArray; + + env->CallVoidMethod(javaCallbackRef, javaMethod, RootCACertificate); +} +CHIPGroupKeyManagementClusterKeySetWriteCallback::CHIPGroupKeyManagementClusterKeySetWriteCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPGroupKeyManagementClusterKeySetWriteCallback::~CHIPGroupKeyManagementClusterKeySetWriteCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPGroupKeyManagementClusterKeySetWriteCallback::CallbackFn( + void * context, const chip::app::Clusters::GroupKeyManagement::Commands::KeySetWrite::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod( + env, javaCallbackRef, "onSuccess", "(Lchip/devicecontroller/ChipStructs$GroupKeyManagementClusterGroupKeySetStruct;)V", + &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject GroupKeySet; + jobject GroupKeySet_groupKeySetID; + std::string GroupKeySet_groupKeySetIDClassName = "java/lang/Integer"; + std::string GroupKeySet_groupKeySetIDCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + GroupKeySet_groupKeySetIDClassName.c_str(), GroupKeySet_groupKeySetIDCtorSignature.c_str(), + dataResponse.groupKeySet.groupKeySetID, GroupKeySet_groupKeySetID); + jobject GroupKeySet_groupKeySecurityPolicy; + std::string GroupKeySet_groupKeySecurityPolicyClassName = "java/lang/Integer"; + std::string GroupKeySet_groupKeySecurityPolicyCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + GroupKeySet_groupKeySecurityPolicyClassName.c_str(), GroupKeySet_groupKeySecurityPolicyCtorSignature.c_str(), + static_cast(dataResponse.groupKeySet.groupKeySecurityPolicy), GroupKeySet_groupKeySecurityPolicy); + jobject GroupKeySet_epochKey0; + if (dataResponse.groupKeySet.epochKey0.IsNull()) + { + GroupKeySet_epochKey0 = nullptr; + } + else + { + jbyteArray GroupKeySet_epochKey0ByteArray = + env->NewByteArray(static_cast(dataResponse.groupKeySet.epochKey0.Value().size())); + env->SetByteArrayRegion(GroupKeySet_epochKey0ByteArray, 0, + static_cast(dataResponse.groupKeySet.epochKey0.Value().size()), + reinterpret_cast(dataResponse.groupKeySet.epochKey0.Value().data())); + GroupKeySet_epochKey0 = GroupKeySet_epochKey0ByteArray; + } + jobject GroupKeySet_epochStartTime0; + if (dataResponse.groupKeySet.epochStartTime0.IsNull()) + { + GroupKeySet_epochStartTime0 = nullptr; + } + else + { + std::string GroupKeySet_epochStartTime0ClassName = "java/lang/Long"; + std::string GroupKeySet_epochStartTime0CtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + GroupKeySet_epochStartTime0ClassName.c_str(), GroupKeySet_epochStartTime0CtorSignature.c_str(), + dataResponse.groupKeySet.epochStartTime0.Value(), GroupKeySet_epochStartTime0); + } + jobject GroupKeySet_epochKey1; + if (dataResponse.groupKeySet.epochKey1.IsNull()) + { + GroupKeySet_epochKey1 = nullptr; + } + else + { + jbyteArray GroupKeySet_epochKey1ByteArray = + env->NewByteArray(static_cast(dataResponse.groupKeySet.epochKey1.Value().size())); + env->SetByteArrayRegion(GroupKeySet_epochKey1ByteArray, 0, + static_cast(dataResponse.groupKeySet.epochKey1.Value().size()), + reinterpret_cast(dataResponse.groupKeySet.epochKey1.Value().data())); + GroupKeySet_epochKey1 = GroupKeySet_epochKey1ByteArray; + } + jobject GroupKeySet_epochStartTime1; + if (dataResponse.groupKeySet.epochStartTime1.IsNull()) + { + GroupKeySet_epochStartTime1 = nullptr; + } + else + { + std::string GroupKeySet_epochStartTime1ClassName = "java/lang/Long"; + std::string GroupKeySet_epochStartTime1CtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + GroupKeySet_epochStartTime1ClassName.c_str(), GroupKeySet_epochStartTime1CtorSignature.c_str(), + dataResponse.groupKeySet.epochStartTime1.Value(), GroupKeySet_epochStartTime1); + } + jobject GroupKeySet_epochKey2; + if (dataResponse.groupKeySet.epochKey2.IsNull()) + { + GroupKeySet_epochKey2 = nullptr; + } + else + { + jbyteArray GroupKeySet_epochKey2ByteArray = + env->NewByteArray(static_cast(dataResponse.groupKeySet.epochKey2.Value().size())); + env->SetByteArrayRegion(GroupKeySet_epochKey2ByteArray, 0, + static_cast(dataResponse.groupKeySet.epochKey2.Value().size()), + reinterpret_cast(dataResponse.groupKeySet.epochKey2.Value().data())); + GroupKeySet_epochKey2 = GroupKeySet_epochKey2ByteArray; + } + jobject GroupKeySet_epochStartTime2; + if (dataResponse.groupKeySet.epochStartTime2.IsNull()) + { + GroupKeySet_epochStartTime2 = nullptr; + } + else + { + std::string GroupKeySet_epochStartTime2ClassName = "java/lang/Long"; + std::string GroupKeySet_epochStartTime2CtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + GroupKeySet_epochStartTime2ClassName.c_str(), GroupKeySet_epochStartTime2CtorSignature.c_str(), + dataResponse.groupKeySet.epochStartTime2.Value(), GroupKeySet_epochStartTime2); + } + + jclass groupKeySetStructStructClass_0; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$GroupKeyManagementClusterGroupKeySetStruct", groupKeySetStructStructClass_0); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$GroupKeyManagementClusterGroupKeySetStruct"); + return; + } + jmethodID groupKeySetStructStructCtor_0 = + env->GetMethodID(groupKeySetStructStructClass_0, "", + "(Ljava/lang/Integer;Ljava/lang/Integer;[BLjava/lang/Long;[BLjava/lang/Long;[BLjava/lang/Long;)V"); + if (groupKeySetStructStructCtor_0 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$GroupKeyManagementClusterGroupKeySetStruct constructor"); + return; + } + + GroupKeySet = + env->NewObject(groupKeySetStructStructClass_0, groupKeySetStructStructCtor_0, GroupKeySet_groupKeySetID, + GroupKeySet_groupKeySecurityPolicy, GroupKeySet_epochKey0, GroupKeySet_epochStartTime0, + GroupKeySet_epochKey1, GroupKeySet_epochStartTime1, GroupKeySet_epochKey2, GroupKeySet_epochStartTime2); + + env->CallVoidMethod(javaCallbackRef, javaMethod, GroupKeySet); +} +CHIPGroupKeyManagementClusterKeySetReadCallback::CHIPGroupKeyManagementClusterKeySetReadCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPGroupKeyManagementClusterKeySetReadCallback::~CHIPGroupKeyManagementClusterKeySetReadCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPGroupKeyManagementClusterKeySetReadCallback::CallbackFn( + void * context, const chip::app::Clusters::GroupKeyManagement::Commands::KeySetRead::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject GroupKeySetID; + std::string GroupKeySetIDClassName = "java/lang/Integer"; + std::string GroupKeySetIDCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + GroupKeySetIDClassName.c_str(), GroupKeySetIDCtorSignature.c_str(), dataResponse.groupKeySetID, GroupKeySetID); + + env->CallVoidMethod(javaCallbackRef, javaMethod, GroupKeySetID); +} +CHIPGroupKeyManagementClusterKeySetRemoveCallback::CHIPGroupKeyManagementClusterKeySetRemoveCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPGroupKeyManagementClusterKeySetRemoveCallback::~CHIPGroupKeyManagementClusterKeySetRemoveCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPGroupKeyManagementClusterKeySetRemoveCallback::CallbackFn( + void * context, const chip::app::Clusters::GroupKeyManagement::Commands::KeySetRemove::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject GroupKeySetID; + std::string GroupKeySetIDClassName = "java/lang/Integer"; + std::string GroupKeySetIDCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + GroupKeySetIDClassName.c_str(), GroupKeySetIDCtorSignature.c_str(), dataResponse.groupKeySetID, GroupKeySetID); + + env->CallVoidMethod(javaCallbackRef, javaMethod, GroupKeySetID); +} +CHIPGroupKeyManagementClusterKeySetReadAllIndicesCallback::CHIPGroupKeyManagementClusterKeySetReadAllIndicesCallback( + jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPGroupKeyManagementClusterKeySetReadAllIndicesCallback::~CHIPGroupKeyManagementClusterKeySetReadAllIndicesCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPGroupKeyManagementClusterKeySetReadAllIndicesCallback::CallbackFn( + void * context, const chip::app::Clusters::GroupKeyManagement::Commands::KeySetReadAllIndices::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/ArrayList;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject GroupKeySetIDs; + chip::JniReferences::GetInstance().CreateArrayList(GroupKeySetIDs); + + auto iter_GroupKeySetIDs_0 = dataResponse.groupKeySetIDs.begin(); + while (iter_GroupKeySetIDs_0.Next()) + { + auto & entry_0 = iter_GroupKeySetIDs_0.GetValue(); + jobject newElement_0; + std::string newElement_0ClassName = "java/lang/Integer"; + std::string newElement_0CtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0ClassName.c_str(), + newElement_0CtorSignature.c_str(), entry_0, newElement_0); + chip::JniReferences::GetInstance().AddToList(GroupKeySetIDs, newElement_0); + } + + env->CallVoidMethod(javaCallbackRef, javaMethod, GroupKeySetIDs); +} +CHIPModeSelectClusterChangeToModeCallback::CHIPModeSelectClusterChangeToModeCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPModeSelectClusterChangeToModeCallback::~CHIPModeSelectClusterChangeToModeCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPModeSelectClusterChangeToModeCallback::CallbackFn( + void * context, const chip::app::Clusters::ModeSelect::Commands::ChangeToMode::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject NewMode; + std::string NewModeClassName = "java/lang/Integer"; + std::string NewModeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(NewModeClassName.c_str(), NewModeCtorSignature.c_str(), + dataResponse.newMode, NewMode); + + env->CallVoidMethod(javaCallbackRef, javaMethod, NewMode); +} +CHIPDoorLockClusterLockDoorCallback::CHIPDoorLockClusterLockDoorCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPDoorLockClusterLockDoorCallback::~CHIPDoorLockClusterLockDoorCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPDoorLockClusterLockDoorCallback::CallbackFn( + void * context, const chip::app::Clusters::DoorLock::Commands::LockDoor::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/Optional;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject PINCode; + if (!dataResponse.PINCode.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, PINCode); + } + else + { + jobject PINCodeInsideOptional; + jbyteArray PINCodeInsideOptionalByteArray = env->NewByteArray(static_cast(dataResponse.PINCode.Value().size())); + env->SetByteArrayRegion(PINCodeInsideOptionalByteArray, 0, static_cast(dataResponse.PINCode.Value().size()), + reinterpret_cast(dataResponse.PINCode.Value().data())); + PINCodeInsideOptional = PINCodeInsideOptionalByteArray; + chip::JniReferences::GetInstance().CreateOptional(PINCodeInsideOptional, PINCode); + } + + env->CallVoidMethod(javaCallbackRef, javaMethod, PINCode); +} +CHIPDoorLockClusterUnlockDoorCallback::CHIPDoorLockClusterUnlockDoorCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPDoorLockClusterUnlockDoorCallback::~CHIPDoorLockClusterUnlockDoorCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPDoorLockClusterUnlockDoorCallback::CallbackFn( + void * context, const chip::app::Clusters::DoorLock::Commands::UnlockDoor::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/Optional;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject PINCode; + if (!dataResponse.PINCode.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, PINCode); + } + else + { + jobject PINCodeInsideOptional; + jbyteArray PINCodeInsideOptionalByteArray = env->NewByteArray(static_cast(dataResponse.PINCode.Value().size())); + env->SetByteArrayRegion(PINCodeInsideOptionalByteArray, 0, static_cast(dataResponse.PINCode.Value().size()), + reinterpret_cast(dataResponse.PINCode.Value().data())); + PINCodeInsideOptional = PINCodeInsideOptionalByteArray; + chip::JniReferences::GetInstance().CreateOptional(PINCodeInsideOptional, PINCode); + } + + env->CallVoidMethod(javaCallbackRef, javaMethod, PINCode); +} +CHIPDoorLockClusterUnlockWithTimeoutCallback::CHIPDoorLockClusterUnlockWithTimeoutCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPDoorLockClusterUnlockWithTimeoutCallback::~CHIPDoorLockClusterUnlockWithTimeoutCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPDoorLockClusterUnlockWithTimeoutCallback::CallbackFn( + void * context, const chip::app::Clusters::DoorLock::Commands::UnlockWithTimeout::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/util/Optional;)V", + &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject Timeout; + std::string TimeoutClassName = "java/lang/Integer"; + std::string TimeoutCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(TimeoutClassName.c_str(), TimeoutCtorSignature.c_str(), + dataResponse.timeout, Timeout); + jobject PINCode; + if (!dataResponse.PINCode.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, PINCode); + } + else + { + jobject PINCodeInsideOptional; + jbyteArray PINCodeInsideOptionalByteArray = env->NewByteArray(static_cast(dataResponse.PINCode.Value().size())); + env->SetByteArrayRegion(PINCodeInsideOptionalByteArray, 0, static_cast(dataResponse.PINCode.Value().size()), + reinterpret_cast(dataResponse.PINCode.Value().data())); + PINCodeInsideOptional = PINCodeInsideOptionalByteArray; + chip::JniReferences::GetInstance().CreateOptional(PINCodeInsideOptional, PINCode); + } + + env->CallVoidMethod(javaCallbackRef, javaMethod, Timeout, PINCode); +} +CHIPDoorLockClusterSetWeekDayScheduleCallback::CHIPDoorLockClusterSetWeekDayScheduleCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPDoorLockClusterSetWeekDayScheduleCallback::~CHIPDoorLockClusterSetWeekDayScheduleCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPDoorLockClusterSetWeekDayScheduleCallback::CallbackFn( + void * context, const chip::app::Clusters::DoorLock::Commands::SetWeekDaySchedule::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/" + "Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", + &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject WeekDayIndex; + std::string WeekDayIndexClassName = "java/lang/Integer"; + std::string WeekDayIndexCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(WeekDayIndexClassName.c_str(), WeekDayIndexCtorSignature.c_str(), + dataResponse.weekDayIndex, WeekDayIndex); + jobject UserIndex; + std::string UserIndexClassName = "java/lang/Integer"; + std::string UserIndexCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(UserIndexClassName.c_str(), UserIndexCtorSignature.c_str(), + dataResponse.userIndex, UserIndex); + jobject DaysMask; + std::string DaysMaskClassName = "java/lang/Integer"; + std::string DaysMaskCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(DaysMaskClassName.c_str(), DaysMaskCtorSignature.c_str(), + dataResponse.daysMask.Raw(), DaysMask); + jobject StartHour; + std::string StartHourClassName = "java/lang/Integer"; + std::string StartHourCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(StartHourClassName.c_str(), StartHourCtorSignature.c_str(), + dataResponse.startHour, StartHour); + jobject StartMinute; + std::string StartMinuteClassName = "java/lang/Integer"; + std::string StartMinuteCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(StartMinuteClassName.c_str(), StartMinuteCtorSignature.c_str(), + dataResponse.startMinute, StartMinute); + jobject EndHour; + std::string EndHourClassName = "java/lang/Integer"; + std::string EndHourCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(EndHourClassName.c_str(), EndHourCtorSignature.c_str(), + dataResponse.endHour, EndHour); + jobject EndMinute; + std::string EndMinuteClassName = "java/lang/Integer"; + std::string EndMinuteCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(EndMinuteClassName.c_str(), EndMinuteCtorSignature.c_str(), + dataResponse.endMinute, EndMinute); + + env->CallVoidMethod(javaCallbackRef, javaMethod, WeekDayIndex, UserIndex, DaysMask, StartHour, StartMinute, EndHour, EndMinute); +} +CHIPDoorLockClusterGetWeekDayScheduleCallback::CHIPDoorLockClusterGetWeekDayScheduleCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPDoorLockClusterGetWeekDayScheduleCallback::~CHIPDoorLockClusterGetWeekDayScheduleCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPDoorLockClusterGetWeekDayScheduleCallback::CallbackFn( + void * context, const chip::app::Clusters::DoorLock::Commands::GetWeekDaySchedule::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;)V", + &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject WeekDayIndex; + std::string WeekDayIndexClassName = "java/lang/Integer"; + std::string WeekDayIndexCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(WeekDayIndexClassName.c_str(), WeekDayIndexCtorSignature.c_str(), + dataResponse.weekDayIndex, WeekDayIndex); + jobject UserIndex; + std::string UserIndexClassName = "java/lang/Integer"; + std::string UserIndexCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(UserIndexClassName.c_str(), UserIndexCtorSignature.c_str(), + dataResponse.userIndex, UserIndex); + + env->CallVoidMethod(javaCallbackRef, javaMethod, WeekDayIndex, UserIndex); +} +CHIPDoorLockClusterClearWeekDayScheduleCallback::CHIPDoorLockClusterClearWeekDayScheduleCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPDoorLockClusterClearWeekDayScheduleCallback::~CHIPDoorLockClusterClearWeekDayScheduleCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPDoorLockClusterClearWeekDayScheduleCallback::CallbackFn( + void * context, const chip::app::Clusters::DoorLock::Commands::ClearWeekDaySchedule::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;)V", + &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject WeekDayIndex; + std::string WeekDayIndexClassName = "java/lang/Integer"; + std::string WeekDayIndexCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(WeekDayIndexClassName.c_str(), WeekDayIndexCtorSignature.c_str(), + dataResponse.weekDayIndex, WeekDayIndex); + jobject UserIndex; + std::string UserIndexClassName = "java/lang/Integer"; + std::string UserIndexCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(UserIndexClassName.c_str(), UserIndexCtorSignature.c_str(), + dataResponse.userIndex, UserIndex); + + env->CallVoidMethod(javaCallbackRef, javaMethod, WeekDayIndex, UserIndex); +} +CHIPDoorLockClusterSetYearDayScheduleCallback::CHIPDoorLockClusterSetYearDayScheduleCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPDoorLockClusterSetYearDayScheduleCallback::~CHIPDoorLockClusterSetYearDayScheduleCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPDoorLockClusterSetYearDayScheduleCallback::CallbackFn( + void * context, const chip::app::Clusters::DoorLock::Commands::SetYearDaySchedule::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Long;Ljava/lang/Long;)V", + &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject YearDayIndex; + std::string YearDayIndexClassName = "java/lang/Integer"; + std::string YearDayIndexCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(YearDayIndexClassName.c_str(), YearDayIndexCtorSignature.c_str(), + dataResponse.yearDayIndex, YearDayIndex); + jobject UserIndex; + std::string UserIndexClassName = "java/lang/Integer"; + std::string UserIndexCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(UserIndexClassName.c_str(), UserIndexCtorSignature.c_str(), + dataResponse.userIndex, UserIndex); + jobject LocalStartTime; + std::string LocalStartTimeClassName = "java/lang/Long"; + std::string LocalStartTimeCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + LocalStartTimeClassName.c_str(), LocalStartTimeCtorSignature.c_str(), dataResponse.localStartTime, LocalStartTime); + jobject LocalEndTime; + std::string LocalEndTimeClassName = "java/lang/Long"; + std::string LocalEndTimeCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(LocalEndTimeClassName.c_str(), LocalEndTimeCtorSignature.c_str(), + dataResponse.localEndTime, LocalEndTime); + + env->CallVoidMethod(javaCallbackRef, javaMethod, YearDayIndex, UserIndex, LocalStartTime, LocalEndTime); +} +CHIPDoorLockClusterGetYearDayScheduleCallback::CHIPDoorLockClusterGetYearDayScheduleCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPDoorLockClusterGetYearDayScheduleCallback::~CHIPDoorLockClusterGetYearDayScheduleCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPDoorLockClusterGetYearDayScheduleCallback::CallbackFn( + void * context, const chip::app::Clusters::DoorLock::Commands::GetYearDaySchedule::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;)V", + &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject YearDayIndex; + std::string YearDayIndexClassName = "java/lang/Integer"; + std::string YearDayIndexCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(YearDayIndexClassName.c_str(), YearDayIndexCtorSignature.c_str(), + dataResponse.yearDayIndex, YearDayIndex); + jobject UserIndex; + std::string UserIndexClassName = "java/lang/Integer"; + std::string UserIndexCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(UserIndexClassName.c_str(), UserIndexCtorSignature.c_str(), + dataResponse.userIndex, UserIndex); + + env->CallVoidMethod(javaCallbackRef, javaMethod, YearDayIndex, UserIndex); +} +CHIPDoorLockClusterClearYearDayScheduleCallback::CHIPDoorLockClusterClearYearDayScheduleCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPDoorLockClusterClearYearDayScheduleCallback::~CHIPDoorLockClusterClearYearDayScheduleCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPDoorLockClusterClearYearDayScheduleCallback::CallbackFn( + void * context, const chip::app::Clusters::DoorLock::Commands::ClearYearDaySchedule::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;)V", + &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject YearDayIndex; + std::string YearDayIndexClassName = "java/lang/Integer"; + std::string YearDayIndexCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(YearDayIndexClassName.c_str(), YearDayIndexCtorSignature.c_str(), + dataResponse.yearDayIndex, YearDayIndex); + jobject UserIndex; + std::string UserIndexClassName = "java/lang/Integer"; + std::string UserIndexCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(UserIndexClassName.c_str(), UserIndexCtorSignature.c_str(), + dataResponse.userIndex, UserIndex); + + env->CallVoidMethod(javaCallbackRef, javaMethod, YearDayIndex, UserIndex); +} +CHIPDoorLockClusterSetHolidayScheduleCallback::CHIPDoorLockClusterSetHolidayScheduleCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPDoorLockClusterSetHolidayScheduleCallback::~CHIPDoorLockClusterSetHolidayScheduleCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPDoorLockClusterSetHolidayScheduleCallback::CallbackFn( + void * context, const chip::app::Clusters::DoorLock::Commands::SetHolidaySchedule::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Integer;)V", + &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject HolidayIndex; + std::string HolidayIndexClassName = "java/lang/Integer"; + std::string HolidayIndexCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(HolidayIndexClassName.c_str(), HolidayIndexCtorSignature.c_str(), + dataResponse.holidayIndex, HolidayIndex); + jobject LocalStartTime; + std::string LocalStartTimeClassName = "java/lang/Long"; + std::string LocalStartTimeCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + LocalStartTimeClassName.c_str(), LocalStartTimeCtorSignature.c_str(), dataResponse.localStartTime, LocalStartTime); + jobject LocalEndTime; + std::string LocalEndTimeClassName = "java/lang/Long"; + std::string LocalEndTimeCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(LocalEndTimeClassName.c_str(), LocalEndTimeCtorSignature.c_str(), + dataResponse.localEndTime, LocalEndTime); + jobject OperatingMode; + std::string OperatingModeClassName = "java/lang/Integer"; + std::string OperatingModeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OperatingModeClassName.c_str(), + OperatingModeCtorSignature.c_str(), + static_cast(dataResponse.operatingMode), OperatingMode); + + env->CallVoidMethod(javaCallbackRef, javaMethod, HolidayIndex, LocalStartTime, LocalEndTime, OperatingMode); +} +CHIPDoorLockClusterGetHolidayScheduleCallback::CHIPDoorLockClusterGetHolidayScheduleCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPDoorLockClusterGetHolidayScheduleCallback::~CHIPDoorLockClusterGetHolidayScheduleCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPDoorLockClusterGetHolidayScheduleCallback::CallbackFn( + void * context, const chip::app::Clusters::DoorLock::Commands::GetHolidaySchedule::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject HolidayIndex; + std::string HolidayIndexClassName = "java/lang/Integer"; + std::string HolidayIndexCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(HolidayIndexClassName.c_str(), HolidayIndexCtorSignature.c_str(), + dataResponse.holidayIndex, HolidayIndex); + + env->CallVoidMethod(javaCallbackRef, javaMethod, HolidayIndex); +} +CHIPDoorLockClusterClearHolidayScheduleCallback::CHIPDoorLockClusterClearHolidayScheduleCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPDoorLockClusterClearHolidayScheduleCallback::~CHIPDoorLockClusterClearHolidayScheduleCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPDoorLockClusterClearHolidayScheduleCallback::CallbackFn( + void * context, const chip::app::Clusters::DoorLock::Commands::ClearHolidaySchedule::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject HolidayIndex; + std::string HolidayIndexClassName = "java/lang/Integer"; + std::string HolidayIndexCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(HolidayIndexClassName.c_str(), HolidayIndexCtorSignature.c_str(), + dataResponse.holidayIndex, HolidayIndex); + + env->CallVoidMethod(javaCallbackRef, javaMethod, HolidayIndex); +} +CHIPDoorLockClusterSetUserCallback::CHIPDoorLockClusterSetUserCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPDoorLockClusterSetUserCallback::~CHIPDoorLockClusterSetUserCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPDoorLockClusterSetUserCallback::CallbackFn( + void * context, const chip::app::Clusters::DoorLock::Commands::SetUser::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/Long;Ljava/" + "lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", + &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject OperationType; + std::string OperationTypeClassName = "java/lang/Integer"; + std::string OperationTypeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OperationTypeClassName.c_str(), + OperationTypeCtorSignature.c_str(), + static_cast(dataResponse.operationType), OperationType); + jobject UserIndex; + std::string UserIndexClassName = "java/lang/Integer"; + std::string UserIndexCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(UserIndexClassName.c_str(), UserIndexCtorSignature.c_str(), + dataResponse.userIndex, UserIndex); + jobject UserName; + if (dataResponse.userName.IsNull()) + { + UserName = nullptr; + } + else + { + UserName = + env->NewStringUTF(std::string(dataResponse.userName.Value().data(), dataResponse.userName.Value().size()).c_str()); + } + jobject UserUniqueID; + if (dataResponse.userUniqueID.IsNull()) + { + UserUniqueID = nullptr; + } + else + { + std::string UserUniqueIDClassName = "java/lang/Long"; + std::string UserUniqueIDCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + UserUniqueIDClassName.c_str(), UserUniqueIDCtorSignature.c_str(), dataResponse.userUniqueID.Value(), UserUniqueID); + } + jobject UserStatus; + if (dataResponse.userStatus.IsNull()) + { + UserStatus = nullptr; + } + else + { + std::string UserStatusClassName = "java/lang/Integer"; + std::string UserStatusCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(UserStatusClassName.c_str(), UserStatusCtorSignature.c_str(), + static_cast(dataResponse.userStatus.Value()), + UserStatus); + } + jobject UserType; + if (dataResponse.userType.IsNull()) + { + UserType = nullptr; + } + else + { + std::string UserTypeClassName = "java/lang/Integer"; + std::string UserTypeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(UserTypeClassName.c_str(), UserTypeCtorSignature.c_str(), + static_cast(dataResponse.userType.Value()), + UserType); + } + jobject CredentialRule; + if (dataResponse.credentialRule.IsNull()) + { + CredentialRule = nullptr; + } + else + { + std::string CredentialRuleClassName = "java/lang/Integer"; + std::string CredentialRuleCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + CredentialRuleClassName.c_str(), CredentialRuleCtorSignature.c_str(), + static_cast(dataResponse.credentialRule.Value()), CredentialRule); + } + + env->CallVoidMethod(javaCallbackRef, javaMethod, OperationType, UserIndex, UserName, UserUniqueID, UserStatus, UserType, + CredentialRule); +} +CHIPDoorLockClusterGetUserCallback::CHIPDoorLockClusterGetUserCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPDoorLockClusterGetUserCallback::~CHIPDoorLockClusterGetUserCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPDoorLockClusterGetUserCallback::CallbackFn( + void * context, const chip::app::Clusters::DoorLock::Commands::GetUser::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject UserIndex; + std::string UserIndexClassName = "java/lang/Integer"; + std::string UserIndexCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(UserIndexClassName.c_str(), UserIndexCtorSignature.c_str(), + dataResponse.userIndex, UserIndex); + + env->CallVoidMethod(javaCallbackRef, javaMethod, UserIndex); +} +CHIPDoorLockClusterClearUserCallback::CHIPDoorLockClusterClearUserCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPDoorLockClusterClearUserCallback::~CHIPDoorLockClusterClearUserCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPDoorLockClusterClearUserCallback::CallbackFn( + void * context, const chip::app::Clusters::DoorLock::Commands::ClearUser::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject UserIndex; + std::string UserIndexClassName = "java/lang/Integer"; + std::string UserIndexCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(UserIndexClassName.c_str(), UserIndexCtorSignature.c_str(), + dataResponse.userIndex, UserIndex); + + env->CallVoidMethod(javaCallbackRef, javaMethod, UserIndex); +} +CHIPDoorLockClusterSetCredentialCallback::CHIPDoorLockClusterSetCredentialCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPDoorLockClusterSetCredentialCallback::~CHIPDoorLockClusterSetCredentialCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPDoorLockClusterSetCredentialCallback::CallbackFn( + void * context, const chip::app::Clusters::DoorLock::Commands::SetCredential::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod( + env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Lchip/devicecontroller/ChipStructs$DoorLockClusterCredentialStruct;[BLjava/lang/Integer;Ljava/lang/" + "Integer;Ljava/lang/Integer;)V", + &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject OperationType; + std::string OperationTypeClassName = "java/lang/Integer"; + std::string OperationTypeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OperationTypeClassName.c_str(), + OperationTypeCtorSignature.c_str(), + static_cast(dataResponse.operationType), OperationType); + jobject Credential; + jobject Credential_credentialType; + std::string Credential_credentialTypeClassName = "java/lang/Integer"; + std::string Credential_credentialTypeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + Credential_credentialTypeClassName.c_str(), Credential_credentialTypeCtorSignature.c_str(), + static_cast(dataResponse.credential.credentialType), Credential_credentialType); + jobject Credential_credentialIndex; + std::string Credential_credentialIndexClassName = "java/lang/Integer"; + std::string Credential_credentialIndexCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + Credential_credentialIndexClassName.c_str(), Credential_credentialIndexCtorSignature.c_str(), + dataResponse.credential.credentialIndex, Credential_credentialIndex); + + jclass credentialStructStructClass_0; + err = chip::JniReferences::GetInstance().GetClassRef(env, "chip/devicecontroller/ChipStructs$DoorLockClusterCredentialStruct", + credentialStructStructClass_0); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$DoorLockClusterCredentialStruct"); + return; + } + jmethodID credentialStructStructCtor_0 = + env->GetMethodID(credentialStructStructClass_0, "", "(Ljava/lang/Integer;Ljava/lang/Integer;)V"); + if (credentialStructStructCtor_0 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$DoorLockClusterCredentialStruct constructor"); + return; + } + + Credential = env->NewObject(credentialStructStructClass_0, credentialStructStructCtor_0, Credential_credentialType, + Credential_credentialIndex); + jobject CredentialData; + jbyteArray CredentialDataByteArray = env->NewByteArray(static_cast(dataResponse.credentialData.size())); + env->SetByteArrayRegion(CredentialDataByteArray, 0, static_cast(dataResponse.credentialData.size()), + reinterpret_cast(dataResponse.credentialData.data())); + CredentialData = CredentialDataByteArray; + jobject UserIndex; + if (dataResponse.userIndex.IsNull()) + { + UserIndex = nullptr; + } + else + { + std::string UserIndexClassName = "java/lang/Integer"; + std::string UserIndexCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(UserIndexClassName.c_str(), UserIndexCtorSignature.c_str(), + dataResponse.userIndex.Value(), UserIndex); + } + jobject UserStatus; + if (dataResponse.userStatus.IsNull()) + { + UserStatus = nullptr; + } + else + { + std::string UserStatusClassName = "java/lang/Integer"; + std::string UserStatusCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(UserStatusClassName.c_str(), UserStatusCtorSignature.c_str(), + static_cast(dataResponse.userStatus.Value()), + UserStatus); + } + jobject UserType; + if (dataResponse.userType.IsNull()) + { + UserType = nullptr; + } + else + { + std::string UserTypeClassName = "java/lang/Integer"; + std::string UserTypeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(UserTypeClassName.c_str(), UserTypeCtorSignature.c_str(), + static_cast(dataResponse.userType.Value()), + UserType); + } + + env->CallVoidMethod(javaCallbackRef, javaMethod, OperationType, Credential, CredentialData, UserIndex, UserStatus, UserType); +} +CHIPDoorLockClusterGetCredentialStatusCallback::CHIPDoorLockClusterGetCredentialStatusCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPDoorLockClusterGetCredentialStatusCallback::~CHIPDoorLockClusterGetCredentialStatusCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPDoorLockClusterGetCredentialStatusCallback::CallbackFn( + void * context, const chip::app::Clusters::DoorLock::Commands::GetCredentialStatus::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod( + env, javaCallbackRef, "onSuccess", "(Lchip/devicecontroller/ChipStructs$DoorLockClusterCredentialStruct;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject Credential; + jobject Credential_credentialType; + std::string Credential_credentialTypeClassName = "java/lang/Integer"; + std::string Credential_credentialTypeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + Credential_credentialTypeClassName.c_str(), Credential_credentialTypeCtorSignature.c_str(), + static_cast(dataResponse.credential.credentialType), Credential_credentialType); + jobject Credential_credentialIndex; + std::string Credential_credentialIndexClassName = "java/lang/Integer"; + std::string Credential_credentialIndexCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + Credential_credentialIndexClassName.c_str(), Credential_credentialIndexCtorSignature.c_str(), + dataResponse.credential.credentialIndex, Credential_credentialIndex); + + jclass credentialStructStructClass_0; + err = chip::JniReferences::GetInstance().GetClassRef(env, "chip/devicecontroller/ChipStructs$DoorLockClusterCredentialStruct", + credentialStructStructClass_0); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$DoorLockClusterCredentialStruct"); + return; + } + jmethodID credentialStructStructCtor_0 = + env->GetMethodID(credentialStructStructClass_0, "", "(Ljava/lang/Integer;Ljava/lang/Integer;)V"); + if (credentialStructStructCtor_0 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$DoorLockClusterCredentialStruct constructor"); + return; + } + + Credential = env->NewObject(credentialStructStructClass_0, credentialStructStructCtor_0, Credential_credentialType, + Credential_credentialIndex); + + env->CallVoidMethod(javaCallbackRef, javaMethod, Credential); +} +CHIPDoorLockClusterClearCredentialCallback::CHIPDoorLockClusterClearCredentialCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPDoorLockClusterClearCredentialCallback::~CHIPDoorLockClusterClearCredentialCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPDoorLockClusterClearCredentialCallback::CallbackFn( + void * context, const chip::app::Clusters::DoorLock::Commands::ClearCredential::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod( + env, javaCallbackRef, "onSuccess", "(Lchip/devicecontroller/ChipStructs$DoorLockClusterCredentialStruct;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject Credential; + if (dataResponse.credential.IsNull()) + { + Credential = nullptr; + } + else + { + jobject Credential_credentialType; + std::string Credential_credentialTypeClassName = "java/lang/Integer"; + std::string Credential_credentialTypeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + Credential_credentialTypeClassName.c_str(), Credential_credentialTypeCtorSignature.c_str(), + static_cast(dataResponse.credential.Value().credentialType), Credential_credentialType); + jobject Credential_credentialIndex; + std::string Credential_credentialIndexClassName = "java/lang/Integer"; + std::string Credential_credentialIndexCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + Credential_credentialIndexClassName.c_str(), Credential_credentialIndexCtorSignature.c_str(), + dataResponse.credential.Value().credentialIndex, Credential_credentialIndex); + + jclass credentialStructStructClass_1; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$DoorLockClusterCredentialStruct", credentialStructStructClass_1); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$DoorLockClusterCredentialStruct"); + return; + } + jmethodID credentialStructStructCtor_1 = + env->GetMethodID(credentialStructStructClass_1, "", "(Ljava/lang/Integer;Ljava/lang/Integer;)V"); + if (credentialStructStructCtor_1 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$DoorLockClusterCredentialStruct constructor"); + return; + } + + Credential = env->NewObject(credentialStructStructClass_1, credentialStructStructCtor_1, Credential_credentialType, + Credential_credentialIndex); + } + + env->CallVoidMethod(javaCallbackRef, javaMethod, Credential); +} +CHIPWindowCoveringClusterUpOrOpenCallback::CHIPWindowCoveringClusterUpOrOpenCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPWindowCoveringClusterUpOrOpenCallback::~CHIPWindowCoveringClusterUpOrOpenCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPWindowCoveringClusterUpOrOpenCallback::CallbackFn( + void * context, const chip::app::Clusters::WindowCovering::Commands::UpOrOpen::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + env->CallVoidMethod(javaCallbackRef, javaMethod); +} +CHIPWindowCoveringClusterDownOrCloseCallback::CHIPWindowCoveringClusterDownOrCloseCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPWindowCoveringClusterDownOrCloseCallback::~CHIPWindowCoveringClusterDownOrCloseCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPWindowCoveringClusterDownOrCloseCallback::CallbackFn( + void * context, const chip::app::Clusters::WindowCovering::Commands::DownOrClose::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + env->CallVoidMethod(javaCallbackRef, javaMethod); +} +CHIPWindowCoveringClusterStopMotionCallback::CHIPWindowCoveringClusterStopMotionCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPWindowCoveringClusterStopMotionCallback::~CHIPWindowCoveringClusterStopMotionCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPWindowCoveringClusterStopMotionCallback::CallbackFn( + void * context, const chip::app::Clusters::WindowCovering::Commands::StopMotion::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + env->CallVoidMethod(javaCallbackRef, javaMethod); +} +CHIPWindowCoveringClusterGoToLiftValueCallback::CHIPWindowCoveringClusterGoToLiftValueCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPWindowCoveringClusterGoToLiftValueCallback::~CHIPWindowCoveringClusterGoToLiftValueCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPWindowCoveringClusterGoToLiftValueCallback::CallbackFn( + void * context, const chip::app::Clusters::WindowCovering::Commands::GoToLiftValue::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject liftValue; + std::string liftValueClassName = "java/lang/Integer"; + std::string liftValueCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(liftValueClassName.c_str(), liftValueCtorSignature.c_str(), + dataResponse.liftValue, liftValue); + + env->CallVoidMethod(javaCallbackRef, javaMethod, liftValue); +} +CHIPWindowCoveringClusterGoToLiftPercentageCallback::CHIPWindowCoveringClusterGoToLiftPercentageCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPWindowCoveringClusterGoToLiftPercentageCallback::~CHIPWindowCoveringClusterGoToLiftPercentageCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPWindowCoveringClusterGoToLiftPercentageCallback::CallbackFn( + void * context, const chip::app::Clusters::WindowCovering::Commands::GoToLiftPercentage::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject liftPercent100thsValue; + std::string liftPercent100thsValueClassName = "java/lang/Integer"; + std::string liftPercent100thsValueCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(liftPercent100thsValueClassName.c_str(), + liftPercent100thsValueCtorSignature.c_str(), + dataResponse.liftPercent100thsValue, liftPercent100thsValue); + + env->CallVoidMethod(javaCallbackRef, javaMethod, liftPercent100thsValue); +} +CHIPWindowCoveringClusterGoToTiltValueCallback::CHIPWindowCoveringClusterGoToTiltValueCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPWindowCoveringClusterGoToTiltValueCallback::~CHIPWindowCoveringClusterGoToTiltValueCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPWindowCoveringClusterGoToTiltValueCallback::CallbackFn( + void * context, const chip::app::Clusters::WindowCovering::Commands::GoToTiltValue::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject tiltValue; + std::string tiltValueClassName = "java/lang/Integer"; + std::string tiltValueCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(tiltValueClassName.c_str(), tiltValueCtorSignature.c_str(), + dataResponse.tiltValue, tiltValue); + + env->CallVoidMethod(javaCallbackRef, javaMethod, tiltValue); +} +CHIPWindowCoveringClusterGoToTiltPercentageCallback::CHIPWindowCoveringClusterGoToTiltPercentageCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPWindowCoveringClusterGoToTiltPercentageCallback::~CHIPWindowCoveringClusterGoToTiltPercentageCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPWindowCoveringClusterGoToTiltPercentageCallback::CallbackFn( + void * context, const chip::app::Clusters::WindowCovering::Commands::GoToTiltPercentage::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject tiltPercent100thsValue; + std::string tiltPercent100thsValueClassName = "java/lang/Integer"; + std::string tiltPercent100thsValueCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(tiltPercent100thsValueClassName.c_str(), + tiltPercent100thsValueCtorSignature.c_str(), + dataResponse.tiltPercent100thsValue, tiltPercent100thsValue); + + env->CallVoidMethod(javaCallbackRef, javaMethod, tiltPercent100thsValue); +} +CHIPBarrierControlClusterBarrierControlGoToPercentCallback::CHIPBarrierControlClusterBarrierControlGoToPercentCallback( + jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPBarrierControlClusterBarrierControlGoToPercentCallback::~CHIPBarrierControlClusterBarrierControlGoToPercentCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPBarrierControlClusterBarrierControlGoToPercentCallback::CallbackFn( + void * context, const chip::app::Clusters::BarrierControl::Commands::BarrierControlGoToPercent::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject percentOpen; + std::string percentOpenClassName = "java/lang/Integer"; + std::string percentOpenCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(percentOpenClassName.c_str(), percentOpenCtorSignature.c_str(), + dataResponse.percentOpen, percentOpen); + + env->CallVoidMethod(javaCallbackRef, javaMethod, percentOpen); +} +CHIPBarrierControlClusterBarrierControlStopCallback::CHIPBarrierControlClusterBarrierControlStopCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPBarrierControlClusterBarrierControlStopCallback::~CHIPBarrierControlClusterBarrierControlStopCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPBarrierControlClusterBarrierControlStopCallback::CallbackFn( + void * context, const chip::app::Clusters::BarrierControl::Commands::BarrierControlStop::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + env->CallVoidMethod(javaCallbackRef, javaMethod); +} +CHIPThermostatClusterSetpointRaiseLowerCallback::CHIPThermostatClusterSetpointRaiseLowerCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPThermostatClusterSetpointRaiseLowerCallback::~CHIPThermostatClusterSetpointRaiseLowerCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPThermostatClusterSetpointRaiseLowerCallback::CallbackFn( + void * context, const chip::app::Clusters::Thermostat::Commands::SetpointRaiseLower::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;)V", + &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject Mode; + std::string ModeClassName = "java/lang/Integer"; + std::string ModeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(ModeClassName.c_str(), ModeCtorSignature.c_str(), + static_cast(dataResponse.mode), Mode); + jobject Amount; + std::string AmountClassName = "java/lang/Integer"; + std::string AmountCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(AmountClassName.c_str(), AmountCtorSignature.c_str(), + dataResponse.amount, Amount); + + env->CallVoidMethod(javaCallbackRef, javaMethod, Mode, Amount); +} +CHIPThermostatClusterSetWeeklyScheduleCallback::CHIPThermostatClusterSetWeeklyScheduleCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPThermostatClusterSetWeeklyScheduleCallback::~CHIPThermostatClusterSetWeeklyScheduleCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPThermostatClusterSetWeeklyScheduleCallback::CallbackFn( + void * context, const chip::app::Clusters::Thermostat::Commands::SetWeeklySchedule::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod( + env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/util/ArrayList;)V", + &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject NumberOfTransitionsForSequence; + std::string NumberOfTransitionsForSequenceClassName = "java/lang/Integer"; + std::string NumberOfTransitionsForSequenceCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + NumberOfTransitionsForSequenceClassName.c_str(), NumberOfTransitionsForSequenceCtorSignature.c_str(), + dataResponse.numberOfTransitionsForSequence, NumberOfTransitionsForSequence); + jobject DayOfWeekForSequence; + std::string DayOfWeekForSequenceClassName = "java/lang/Integer"; + std::string DayOfWeekForSequenceCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(DayOfWeekForSequenceClassName.c_str(), + DayOfWeekForSequenceCtorSignature.c_str(), + dataResponse.dayOfWeekForSequence.Raw(), DayOfWeekForSequence); + jobject ModeForSequence; + std::string ModeForSequenceClassName = "java/lang/Integer"; + std::string ModeForSequenceCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(ModeForSequenceClassName.c_str(), + ModeForSequenceCtorSignature.c_str(), + dataResponse.modeForSequence.Raw(), ModeForSequence); + jobject Transitions; + chip::JniReferences::GetInstance().CreateArrayList(Transitions); + + auto iter_Transitions_0 = dataResponse.transitions.begin(); + while (iter_Transitions_0.Next()) + { + auto & entry_0 = iter_Transitions_0.GetValue(); + jobject newElement_0; + jobject newElement_0_transitionTime; + std::string newElement_0_transitionTimeClassName = "java/lang/Integer"; + std::string newElement_0_transitionTimeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0_transitionTimeClassName.c_str(), + newElement_0_transitionTimeCtorSignature.c_str(), + entry_0.transitionTime, newElement_0_transitionTime); + jobject newElement_0_heatSetpoint; + if (entry_0.heatSetpoint.IsNull()) + { + newElement_0_heatSetpoint = nullptr; + } + else + { + std::string newElement_0_heatSetpointClassName = "java/lang/Integer"; + std::string newElement_0_heatSetpointCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0_heatSetpointClassName.c_str(), + newElement_0_heatSetpointCtorSignature.c_str(), + entry_0.heatSetpoint.Value(), newElement_0_heatSetpoint); + } + jobject newElement_0_coolSetpoint; + if (entry_0.coolSetpoint.IsNull()) + { + newElement_0_coolSetpoint = nullptr; + } + else + { + std::string newElement_0_coolSetpointClassName = "java/lang/Integer"; + std::string newElement_0_coolSetpointCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0_coolSetpointClassName.c_str(), + newElement_0_coolSetpointCtorSignature.c_str(), + entry_0.coolSetpoint.Value(), newElement_0_coolSetpoint); + } + + jclass thermostatScheduleTransitionStructClass_1; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$ThermostatClusterThermostatScheduleTransition", + thermostatScheduleTransitionStructClass_1); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$ThermostatClusterThermostatScheduleTransition"); + return; + } + jmethodID thermostatScheduleTransitionStructCtor_1 = env->GetMethodID( + thermostatScheduleTransitionStructClass_1, "", "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V"); + if (thermostatScheduleTransitionStructCtor_1 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$ThermostatClusterThermostatScheduleTransition constructor"); + return; + } + + newElement_0 = env->NewObject(thermostatScheduleTransitionStructClass_1, thermostatScheduleTransitionStructCtor_1, + newElement_0_transitionTime, newElement_0_heatSetpoint, newElement_0_coolSetpoint); + chip::JniReferences::GetInstance().AddToList(Transitions, newElement_0); + } + + env->CallVoidMethod(javaCallbackRef, javaMethod, NumberOfTransitionsForSequence, DayOfWeekForSequence, ModeForSequence, + Transitions); +} +CHIPThermostatClusterGetWeeklyScheduleCallback::CHIPThermostatClusterGetWeeklyScheduleCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPThermostatClusterGetWeeklyScheduleCallback::~CHIPThermostatClusterGetWeeklyScheduleCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPThermostatClusterGetWeeklyScheduleCallback::CallbackFn( + void * context, const chip::app::Clusters::Thermostat::Commands::GetWeeklySchedule::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;)V", + &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject DaysToReturn; + std::string DaysToReturnClassName = "java/lang/Integer"; + std::string DaysToReturnCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(DaysToReturnClassName.c_str(), DaysToReturnCtorSignature.c_str(), + dataResponse.daysToReturn.Raw(), DaysToReturn); + jobject ModeToReturn; + std::string ModeToReturnClassName = "java/lang/Integer"; + std::string ModeToReturnCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(ModeToReturnClassName.c_str(), ModeToReturnCtorSignature.c_str(), + dataResponse.modeToReturn.Raw(), ModeToReturn); + + env->CallVoidMethod(javaCallbackRef, javaMethod, DaysToReturn, ModeToReturn); +} +CHIPThermostatClusterClearWeeklyScheduleCallback::CHIPThermostatClusterClearWeeklyScheduleCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPThermostatClusterClearWeeklyScheduleCallback::~CHIPThermostatClusterClearWeeklyScheduleCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPThermostatClusterClearWeeklyScheduleCallback::CallbackFn( + void * context, const chip::app::Clusters::Thermostat::Commands::ClearWeeklySchedule::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + env->CallVoidMethod(javaCallbackRef, javaMethod); +} +CHIPColorControlClusterMoveToHueCallback::CHIPColorControlClusterMoveToHueCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPColorControlClusterMoveToHueCallback::~CHIPColorControlClusterMoveToHueCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPColorControlClusterMoveToHueCallback::CallbackFn( + void * context, const chip::app::Clusters::ColorControl::Commands::MoveToHue::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod( + env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject Hue; + std::string HueClassName = "java/lang/Integer"; + std::string HueCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(HueClassName.c_str(), HueCtorSignature.c_str(), dataResponse.hue, + Hue); + jobject Direction; + std::string DirectionClassName = "java/lang/Integer"; + std::string DirectionCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(DirectionClassName.c_str(), DirectionCtorSignature.c_str(), + static_cast(dataResponse.direction), Direction); + jobject TransitionTime; + std::string TransitionTimeClassName = "java/lang/Integer"; + std::string TransitionTimeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + TransitionTimeClassName.c_str(), TransitionTimeCtorSignature.c_str(), dataResponse.transitionTime, TransitionTime); + jobject OptionsMask; + std::string OptionsMaskClassName = "java/lang/Integer"; + std::string OptionsMaskCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), + dataResponse.optionsMask, OptionsMask); + jobject OptionsOverride; + std::string OptionsOverrideClassName = "java/lang/Integer"; + std::string OptionsOverrideCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + OptionsOverrideClassName.c_str(), OptionsOverrideCtorSignature.c_str(), dataResponse.optionsOverride, OptionsOverride); + + env->CallVoidMethod(javaCallbackRef, javaMethod, Hue, Direction, TransitionTime, OptionsMask, OptionsOverride); +} +CHIPColorControlClusterMoveHueCallback::CHIPColorControlClusterMoveHueCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPColorControlClusterMoveHueCallback::~CHIPColorControlClusterMoveHueCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPColorControlClusterMoveHueCallback::CallbackFn( + void * context, const chip::app::Clusters::ColorControl::Commands::MoveHue::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", + &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject MoveMode; + std::string MoveModeClassName = "java/lang/Integer"; + std::string MoveModeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(MoveModeClassName.c_str(), MoveModeCtorSignature.c_str(), + static_cast(dataResponse.moveMode), MoveMode); + jobject Rate; + std::string RateClassName = "java/lang/Integer"; + std::string RateCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(RateClassName.c_str(), RateCtorSignature.c_str(), + dataResponse.rate, Rate); + jobject OptionsMask; + std::string OptionsMaskClassName = "java/lang/Integer"; + std::string OptionsMaskCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), + dataResponse.optionsMask, OptionsMask); + jobject OptionsOverride; + std::string OptionsOverrideClassName = "java/lang/Integer"; + std::string OptionsOverrideCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + OptionsOverrideClassName.c_str(), OptionsOverrideCtorSignature.c_str(), dataResponse.optionsOverride, OptionsOverride); + + env->CallVoidMethod(javaCallbackRef, javaMethod, MoveMode, Rate, OptionsMask, OptionsOverride); +} +CHIPColorControlClusterStepHueCallback::CHIPColorControlClusterStepHueCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPColorControlClusterStepHueCallback::~CHIPColorControlClusterStepHueCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPColorControlClusterStepHueCallback::CallbackFn( + void * context, const chip::app::Clusters::ColorControl::Commands::StepHue::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod( + env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject StepMode; + std::string StepModeClassName = "java/lang/Integer"; + std::string StepModeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(StepModeClassName.c_str(), StepModeCtorSignature.c_str(), + static_cast(dataResponse.stepMode), StepMode); + jobject StepSize; + std::string StepSizeClassName = "java/lang/Integer"; + std::string StepSizeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(StepSizeClassName.c_str(), StepSizeCtorSignature.c_str(), + dataResponse.stepSize, StepSize); + jobject TransitionTime; + std::string TransitionTimeClassName = "java/lang/Integer"; + std::string TransitionTimeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + TransitionTimeClassName.c_str(), TransitionTimeCtorSignature.c_str(), dataResponse.transitionTime, TransitionTime); + jobject OptionsMask; + std::string OptionsMaskClassName = "java/lang/Integer"; + std::string OptionsMaskCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), + dataResponse.optionsMask, OptionsMask); + jobject OptionsOverride; + std::string OptionsOverrideClassName = "java/lang/Integer"; + std::string OptionsOverrideCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + OptionsOverrideClassName.c_str(), OptionsOverrideCtorSignature.c_str(), dataResponse.optionsOverride, OptionsOverride); + + env->CallVoidMethod(javaCallbackRef, javaMethod, StepMode, StepSize, TransitionTime, OptionsMask, OptionsOverride); +} +CHIPColorControlClusterMoveToSaturationCallback::CHIPColorControlClusterMoveToSaturationCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPColorControlClusterMoveToSaturationCallback::~CHIPColorControlClusterMoveToSaturationCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPColorControlClusterMoveToSaturationCallback::CallbackFn( + void * context, const chip::app::Clusters::ColorControl::Commands::MoveToSaturation::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", + &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject Saturation; + std::string SaturationClassName = "java/lang/Integer"; + std::string SaturationCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(SaturationClassName.c_str(), SaturationCtorSignature.c_str(), + dataResponse.saturation, Saturation); + jobject TransitionTime; + std::string TransitionTimeClassName = "java/lang/Integer"; + std::string TransitionTimeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + TransitionTimeClassName.c_str(), TransitionTimeCtorSignature.c_str(), dataResponse.transitionTime, TransitionTime); + jobject OptionsMask; + std::string OptionsMaskClassName = "java/lang/Integer"; + std::string OptionsMaskCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), + dataResponse.optionsMask, OptionsMask); + jobject OptionsOverride; + std::string OptionsOverrideClassName = "java/lang/Integer"; + std::string OptionsOverrideCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + OptionsOverrideClassName.c_str(), OptionsOverrideCtorSignature.c_str(), dataResponse.optionsOverride, OptionsOverride); + + env->CallVoidMethod(javaCallbackRef, javaMethod, Saturation, TransitionTime, OptionsMask, OptionsOverride); +} +CHIPColorControlClusterMoveSaturationCallback::CHIPColorControlClusterMoveSaturationCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPColorControlClusterMoveSaturationCallback::~CHIPColorControlClusterMoveSaturationCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPColorControlClusterMoveSaturationCallback::CallbackFn( + void * context, const chip::app::Clusters::ColorControl::Commands::MoveSaturation::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", + &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject MoveMode; + std::string MoveModeClassName = "java/lang/Integer"; + std::string MoveModeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(MoveModeClassName.c_str(), MoveModeCtorSignature.c_str(), + static_cast(dataResponse.moveMode), MoveMode); + jobject Rate; + std::string RateClassName = "java/lang/Integer"; + std::string RateCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(RateClassName.c_str(), RateCtorSignature.c_str(), + dataResponse.rate, Rate); + jobject OptionsMask; + std::string OptionsMaskClassName = "java/lang/Integer"; + std::string OptionsMaskCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), + dataResponse.optionsMask, OptionsMask); + jobject OptionsOverride; + std::string OptionsOverrideClassName = "java/lang/Integer"; + std::string OptionsOverrideCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + OptionsOverrideClassName.c_str(), OptionsOverrideCtorSignature.c_str(), dataResponse.optionsOverride, OptionsOverride); + + env->CallVoidMethod(javaCallbackRef, javaMethod, MoveMode, Rate, OptionsMask, OptionsOverride); +} +CHIPColorControlClusterStepSaturationCallback::CHIPColorControlClusterStepSaturationCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPColorControlClusterStepSaturationCallback::~CHIPColorControlClusterStepSaturationCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPColorControlClusterStepSaturationCallback::CallbackFn( + void * context, const chip::app::Clusters::ColorControl::Commands::StepSaturation::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod( + env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject StepMode; + std::string StepModeClassName = "java/lang/Integer"; + std::string StepModeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(StepModeClassName.c_str(), StepModeCtorSignature.c_str(), + static_cast(dataResponse.stepMode), StepMode); + jobject StepSize; + std::string StepSizeClassName = "java/lang/Integer"; + std::string StepSizeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(StepSizeClassName.c_str(), StepSizeCtorSignature.c_str(), + dataResponse.stepSize, StepSize); + jobject TransitionTime; + std::string TransitionTimeClassName = "java/lang/Integer"; + std::string TransitionTimeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + TransitionTimeClassName.c_str(), TransitionTimeCtorSignature.c_str(), dataResponse.transitionTime, TransitionTime); + jobject OptionsMask; + std::string OptionsMaskClassName = "java/lang/Integer"; + std::string OptionsMaskCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), + dataResponse.optionsMask, OptionsMask); + jobject OptionsOverride; + std::string OptionsOverrideClassName = "java/lang/Integer"; + std::string OptionsOverrideCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + OptionsOverrideClassName.c_str(), OptionsOverrideCtorSignature.c_str(), dataResponse.optionsOverride, OptionsOverride); + + env->CallVoidMethod(javaCallbackRef, javaMethod, StepMode, StepSize, TransitionTime, OptionsMask, OptionsOverride); +} +CHIPColorControlClusterMoveToHueAndSaturationCallback::CHIPColorControlClusterMoveToHueAndSaturationCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPColorControlClusterMoveToHueAndSaturationCallback::~CHIPColorControlClusterMoveToHueAndSaturationCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPColorControlClusterMoveToHueAndSaturationCallback::CallbackFn( + void * context, const chip::app::Clusters::ColorControl::Commands::MoveToHueAndSaturation::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod( + env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject Hue; + std::string HueClassName = "java/lang/Integer"; + std::string HueCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(HueClassName.c_str(), HueCtorSignature.c_str(), dataResponse.hue, + Hue); + jobject Saturation; + std::string SaturationClassName = "java/lang/Integer"; + std::string SaturationCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(SaturationClassName.c_str(), SaturationCtorSignature.c_str(), + dataResponse.saturation, Saturation); + jobject TransitionTime; + std::string TransitionTimeClassName = "java/lang/Integer"; + std::string TransitionTimeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + TransitionTimeClassName.c_str(), TransitionTimeCtorSignature.c_str(), dataResponse.transitionTime, TransitionTime); + jobject OptionsMask; + std::string OptionsMaskClassName = "java/lang/Integer"; + std::string OptionsMaskCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), + dataResponse.optionsMask, OptionsMask); + jobject OptionsOverride; + std::string OptionsOverrideClassName = "java/lang/Integer"; + std::string OptionsOverrideCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + OptionsOverrideClassName.c_str(), OptionsOverrideCtorSignature.c_str(), dataResponse.optionsOverride, OptionsOverride); + + env->CallVoidMethod(javaCallbackRef, javaMethod, Hue, Saturation, TransitionTime, OptionsMask, OptionsOverride); +} +CHIPColorControlClusterMoveToColorCallback::CHIPColorControlClusterMoveToColorCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPColorControlClusterMoveToColorCallback::~CHIPColorControlClusterMoveToColorCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPColorControlClusterMoveToColorCallback::CallbackFn( + void * context, const chip::app::Clusters::ColorControl::Commands::MoveToColor::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod( + env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject ColorX; + std::string ColorXClassName = "java/lang/Integer"; + std::string ColorXCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(ColorXClassName.c_str(), ColorXCtorSignature.c_str(), + dataResponse.colorX, ColorX); + jobject ColorY; + std::string ColorYClassName = "java/lang/Integer"; + std::string ColorYCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(ColorYClassName.c_str(), ColorYCtorSignature.c_str(), + dataResponse.colorY, ColorY); + jobject TransitionTime; + std::string TransitionTimeClassName = "java/lang/Integer"; + std::string TransitionTimeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + TransitionTimeClassName.c_str(), TransitionTimeCtorSignature.c_str(), dataResponse.transitionTime, TransitionTime); + jobject OptionsMask; + std::string OptionsMaskClassName = "java/lang/Integer"; + std::string OptionsMaskCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), + dataResponse.optionsMask, OptionsMask); + jobject OptionsOverride; + std::string OptionsOverrideClassName = "java/lang/Integer"; + std::string OptionsOverrideCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + OptionsOverrideClassName.c_str(), OptionsOverrideCtorSignature.c_str(), dataResponse.optionsOverride, OptionsOverride); + + env->CallVoidMethod(javaCallbackRef, javaMethod, ColorX, ColorY, TransitionTime, OptionsMask, OptionsOverride); +} +CHIPColorControlClusterMoveColorCallback::CHIPColorControlClusterMoveColorCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPColorControlClusterMoveColorCallback::~CHIPColorControlClusterMoveColorCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPColorControlClusterMoveColorCallback::CallbackFn( + void * context, const chip::app::Clusters::ColorControl::Commands::MoveColor::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", + &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject RateX; + std::string RateXClassName = "java/lang/Integer"; + std::string RateXCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(RateXClassName.c_str(), RateXCtorSignature.c_str(), + dataResponse.rateX, RateX); + jobject RateY; + std::string RateYClassName = "java/lang/Integer"; + std::string RateYCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(RateYClassName.c_str(), RateYCtorSignature.c_str(), + dataResponse.rateY, RateY); + jobject OptionsMask; + std::string OptionsMaskClassName = "java/lang/Integer"; + std::string OptionsMaskCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), + dataResponse.optionsMask, OptionsMask); + jobject OptionsOverride; + std::string OptionsOverrideClassName = "java/lang/Integer"; + std::string OptionsOverrideCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + OptionsOverrideClassName.c_str(), OptionsOverrideCtorSignature.c_str(), dataResponse.optionsOverride, OptionsOverride); + + env->CallVoidMethod(javaCallbackRef, javaMethod, RateX, RateY, OptionsMask, OptionsOverride); +} +CHIPColorControlClusterStepColorCallback::CHIPColorControlClusterStepColorCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPColorControlClusterStepColorCallback::~CHIPColorControlClusterStepColorCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPColorControlClusterStepColorCallback::CallbackFn( + void * context, const chip::app::Clusters::ColorControl::Commands::StepColor::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod( + env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject StepX; + std::string StepXClassName = "java/lang/Integer"; + std::string StepXCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(StepXClassName.c_str(), StepXCtorSignature.c_str(), + dataResponse.stepX, StepX); + jobject StepY; + std::string StepYClassName = "java/lang/Integer"; + std::string StepYCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(StepYClassName.c_str(), StepYCtorSignature.c_str(), + dataResponse.stepY, StepY); + jobject TransitionTime; + std::string TransitionTimeClassName = "java/lang/Integer"; + std::string TransitionTimeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + TransitionTimeClassName.c_str(), TransitionTimeCtorSignature.c_str(), dataResponse.transitionTime, TransitionTime); + jobject OptionsMask; + std::string OptionsMaskClassName = "java/lang/Integer"; + std::string OptionsMaskCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), + dataResponse.optionsMask, OptionsMask); + jobject OptionsOverride; + std::string OptionsOverrideClassName = "java/lang/Integer"; + std::string OptionsOverrideCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + OptionsOverrideClassName.c_str(), OptionsOverrideCtorSignature.c_str(), dataResponse.optionsOverride, OptionsOverride); + + env->CallVoidMethod(javaCallbackRef, javaMethod, StepX, StepY, TransitionTime, OptionsMask, OptionsOverride); +} +CHIPColorControlClusterMoveToColorTemperatureCallback::CHIPColorControlClusterMoveToColorTemperatureCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPColorControlClusterMoveToColorTemperatureCallback::~CHIPColorControlClusterMoveToColorTemperatureCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPColorControlClusterMoveToColorTemperatureCallback::CallbackFn( + void * context, const chip::app::Clusters::ColorControl::Commands::MoveToColorTemperature::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", + &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject ColorTemperatureMireds; + std::string ColorTemperatureMiredsClassName = "java/lang/Integer"; + std::string ColorTemperatureMiredsCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(ColorTemperatureMiredsClassName.c_str(), + ColorTemperatureMiredsCtorSignature.c_str(), + dataResponse.colorTemperatureMireds, ColorTemperatureMireds); + jobject TransitionTime; + std::string TransitionTimeClassName = "java/lang/Integer"; + std::string TransitionTimeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + TransitionTimeClassName.c_str(), TransitionTimeCtorSignature.c_str(), dataResponse.transitionTime, TransitionTime); + jobject OptionsMask; + std::string OptionsMaskClassName = "java/lang/Integer"; + std::string OptionsMaskCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), + dataResponse.optionsMask, OptionsMask); + jobject OptionsOverride; + std::string OptionsOverrideClassName = "java/lang/Integer"; + std::string OptionsOverrideCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + OptionsOverrideClassName.c_str(), OptionsOverrideCtorSignature.c_str(), dataResponse.optionsOverride, OptionsOverride); + + env->CallVoidMethod(javaCallbackRef, javaMethod, ColorTemperatureMireds, TransitionTime, OptionsMask, OptionsOverride); +} +CHIPColorControlClusterEnhancedMoveToHueCallback::CHIPColorControlClusterEnhancedMoveToHueCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPColorControlClusterEnhancedMoveToHueCallback::~CHIPColorControlClusterEnhancedMoveToHueCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPColorControlClusterEnhancedMoveToHueCallback::CallbackFn( + void * context, const chip::app::Clusters::ColorControl::Commands::EnhancedMoveToHue::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod( + env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject EnhancedHue; + std::string EnhancedHueClassName = "java/lang/Integer"; + std::string EnhancedHueCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(EnhancedHueClassName.c_str(), EnhancedHueCtorSignature.c_str(), + dataResponse.enhancedHue, EnhancedHue); + jobject Direction; + std::string DirectionClassName = "java/lang/Integer"; + std::string DirectionCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(DirectionClassName.c_str(), DirectionCtorSignature.c_str(), + static_cast(dataResponse.direction), Direction); + jobject TransitionTime; + std::string TransitionTimeClassName = "java/lang/Integer"; + std::string TransitionTimeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + TransitionTimeClassName.c_str(), TransitionTimeCtorSignature.c_str(), dataResponse.transitionTime, TransitionTime); + jobject OptionsMask; + std::string OptionsMaskClassName = "java/lang/Integer"; + std::string OptionsMaskCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), + dataResponse.optionsMask, OptionsMask); + jobject OptionsOverride; + std::string OptionsOverrideClassName = "java/lang/Integer"; + std::string OptionsOverrideCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + OptionsOverrideClassName.c_str(), OptionsOverrideCtorSignature.c_str(), dataResponse.optionsOverride, OptionsOverride); + + env->CallVoidMethod(javaCallbackRef, javaMethod, EnhancedHue, Direction, TransitionTime, OptionsMask, OptionsOverride); +} +CHIPColorControlClusterEnhancedMoveHueCallback::CHIPColorControlClusterEnhancedMoveHueCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPColorControlClusterEnhancedMoveHueCallback::~CHIPColorControlClusterEnhancedMoveHueCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPColorControlClusterEnhancedMoveHueCallback::CallbackFn( + void * context, const chip::app::Clusters::ColorControl::Commands::EnhancedMoveHue::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", + &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject MoveMode; + std::string MoveModeClassName = "java/lang/Integer"; + std::string MoveModeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(MoveModeClassName.c_str(), MoveModeCtorSignature.c_str(), + static_cast(dataResponse.moveMode), MoveMode); + jobject Rate; + std::string RateClassName = "java/lang/Integer"; + std::string RateCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(RateClassName.c_str(), RateCtorSignature.c_str(), + dataResponse.rate, Rate); + jobject OptionsMask; + std::string OptionsMaskClassName = "java/lang/Integer"; + std::string OptionsMaskCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), + dataResponse.optionsMask, OptionsMask); + jobject OptionsOverride; + std::string OptionsOverrideClassName = "java/lang/Integer"; + std::string OptionsOverrideCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + OptionsOverrideClassName.c_str(), OptionsOverrideCtorSignature.c_str(), dataResponse.optionsOverride, OptionsOverride); + + env->CallVoidMethod(javaCallbackRef, javaMethod, MoveMode, Rate, OptionsMask, OptionsOverride); +} +CHIPColorControlClusterEnhancedStepHueCallback::CHIPColorControlClusterEnhancedStepHueCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPColorControlClusterEnhancedStepHueCallback::~CHIPColorControlClusterEnhancedStepHueCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPColorControlClusterEnhancedStepHueCallback::CallbackFn( + void * context, const chip::app::Clusters::ColorControl::Commands::EnhancedStepHue::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod( + env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject StepMode; + std::string StepModeClassName = "java/lang/Integer"; + std::string StepModeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(StepModeClassName.c_str(), StepModeCtorSignature.c_str(), + static_cast(dataResponse.stepMode), StepMode); + jobject StepSize; + std::string StepSizeClassName = "java/lang/Integer"; + std::string StepSizeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(StepSizeClassName.c_str(), StepSizeCtorSignature.c_str(), + dataResponse.stepSize, StepSize); + jobject TransitionTime; + std::string TransitionTimeClassName = "java/lang/Integer"; + std::string TransitionTimeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + TransitionTimeClassName.c_str(), TransitionTimeCtorSignature.c_str(), dataResponse.transitionTime, TransitionTime); + jobject OptionsMask; + std::string OptionsMaskClassName = "java/lang/Integer"; + std::string OptionsMaskCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), + dataResponse.optionsMask, OptionsMask); + jobject OptionsOverride; + std::string OptionsOverrideClassName = "java/lang/Integer"; + std::string OptionsOverrideCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + OptionsOverrideClassName.c_str(), OptionsOverrideCtorSignature.c_str(), dataResponse.optionsOverride, OptionsOverride); + + env->CallVoidMethod(javaCallbackRef, javaMethod, StepMode, StepSize, TransitionTime, OptionsMask, OptionsOverride); +} +CHIPColorControlClusterEnhancedMoveToHueAndSaturationCallback::CHIPColorControlClusterEnhancedMoveToHueAndSaturationCallback( + jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPColorControlClusterEnhancedMoveToHueAndSaturationCallback::~CHIPColorControlClusterEnhancedMoveToHueAndSaturationCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPColorControlClusterEnhancedMoveToHueAndSaturationCallback::CallbackFn( + void * context, const chip::app::Clusters::ColorControl::Commands::EnhancedMoveToHueAndSaturation::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod( + env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject EnhancedHue; + std::string EnhancedHueClassName = "java/lang/Integer"; + std::string EnhancedHueCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(EnhancedHueClassName.c_str(), EnhancedHueCtorSignature.c_str(), + dataResponse.enhancedHue, EnhancedHue); + jobject Saturation; + std::string SaturationClassName = "java/lang/Integer"; + std::string SaturationCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(SaturationClassName.c_str(), SaturationCtorSignature.c_str(), + dataResponse.saturation, Saturation); + jobject TransitionTime; + std::string TransitionTimeClassName = "java/lang/Integer"; + std::string TransitionTimeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + TransitionTimeClassName.c_str(), TransitionTimeCtorSignature.c_str(), dataResponse.transitionTime, TransitionTime); + jobject OptionsMask; + std::string OptionsMaskClassName = "java/lang/Integer"; + std::string OptionsMaskCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), + dataResponse.optionsMask, OptionsMask); + jobject OptionsOverride; + std::string OptionsOverrideClassName = "java/lang/Integer"; + std::string OptionsOverrideCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + OptionsOverrideClassName.c_str(), OptionsOverrideCtorSignature.c_str(), dataResponse.optionsOverride, OptionsOverride); + + env->CallVoidMethod(javaCallbackRef, javaMethod, EnhancedHue, Saturation, TransitionTime, OptionsMask, OptionsOverride); +} +CHIPColorControlClusterColorLoopSetCallback::CHIPColorControlClusterColorLoopSetCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPColorControlClusterColorLoopSetCallback::~CHIPColorControlClusterColorLoopSetCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPColorControlClusterColorLoopSetCallback::CallbackFn( + void * context, const chip::app::Clusters::ColorControl::Commands::ColorLoopSet::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/" + "Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", + &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject UpdateFlags; + std::string UpdateFlagsClassName = "java/lang/Integer"; + std::string UpdateFlagsCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(UpdateFlagsClassName.c_str(), UpdateFlagsCtorSignature.c_str(), + dataResponse.updateFlags.Raw(), UpdateFlags); + jobject Action; + std::string ActionClassName = "java/lang/Integer"; + std::string ActionCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(ActionClassName.c_str(), ActionCtorSignature.c_str(), + static_cast(dataResponse.action), Action); + jobject Direction; + std::string DirectionClassName = "java/lang/Integer"; + std::string DirectionCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(DirectionClassName.c_str(), DirectionCtorSignature.c_str(), + static_cast(dataResponse.direction), Direction); + jobject Time; + std::string TimeClassName = "java/lang/Integer"; + std::string TimeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(TimeClassName.c_str(), TimeCtorSignature.c_str(), + dataResponse.time, Time); + jobject StartHue; + std::string StartHueClassName = "java/lang/Integer"; + std::string StartHueCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(StartHueClassName.c_str(), StartHueCtorSignature.c_str(), + dataResponse.startHue, StartHue); + jobject OptionsMask; + std::string OptionsMaskClassName = "java/lang/Integer"; + std::string OptionsMaskCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), + dataResponse.optionsMask, OptionsMask); + jobject OptionsOverride; + std::string OptionsOverrideClassName = "java/lang/Integer"; + std::string OptionsOverrideCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + OptionsOverrideClassName.c_str(), OptionsOverrideCtorSignature.c_str(), dataResponse.optionsOverride, OptionsOverride); + + env->CallVoidMethod(javaCallbackRef, javaMethod, UpdateFlags, Action, Direction, Time, StartHue, OptionsMask, OptionsOverride); +} +CHIPColorControlClusterStopMoveStepCallback::CHIPColorControlClusterStopMoveStepCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPColorControlClusterStopMoveStepCallback::~CHIPColorControlClusterStopMoveStepCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPColorControlClusterStopMoveStepCallback::CallbackFn( + void * context, const chip::app::Clusters::ColorControl::Commands::StopMoveStep::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;)V", + &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject OptionsMask; + std::string OptionsMaskClassName = "java/lang/Integer"; + std::string OptionsMaskCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), + dataResponse.optionsMask, OptionsMask); + jobject OptionsOverride; + std::string OptionsOverrideClassName = "java/lang/Integer"; + std::string OptionsOverrideCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + OptionsOverrideClassName.c_str(), OptionsOverrideCtorSignature.c_str(), dataResponse.optionsOverride, OptionsOverride); + + env->CallVoidMethod(javaCallbackRef, javaMethod, OptionsMask, OptionsOverride); +} +CHIPColorControlClusterMoveColorTemperatureCallback::CHIPColorControlClusterMoveColorTemperatureCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPColorControlClusterMoveColorTemperatureCallback::~CHIPColorControlClusterMoveColorTemperatureCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPColorControlClusterMoveColorTemperatureCallback::CallbackFn( + void * context, const chip::app::Clusters::ColorControl::Commands::MoveColorTemperature::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod( + env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", + &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject MoveMode; + std::string MoveModeClassName = "java/lang/Integer"; + std::string MoveModeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(MoveModeClassName.c_str(), MoveModeCtorSignature.c_str(), + static_cast(dataResponse.moveMode), MoveMode); + jobject Rate; + std::string RateClassName = "java/lang/Integer"; + std::string RateCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(RateClassName.c_str(), RateCtorSignature.c_str(), + dataResponse.rate, Rate); + jobject ColorTemperatureMinimumMireds; + std::string ColorTemperatureMinimumMiredsClassName = "java/lang/Integer"; + std::string ColorTemperatureMinimumMiredsCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + ColorTemperatureMinimumMiredsClassName.c_str(), ColorTemperatureMinimumMiredsCtorSignature.c_str(), + dataResponse.colorTemperatureMinimumMireds, ColorTemperatureMinimumMireds); + jobject ColorTemperatureMaximumMireds; + std::string ColorTemperatureMaximumMiredsClassName = "java/lang/Integer"; + std::string ColorTemperatureMaximumMiredsCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + ColorTemperatureMaximumMiredsClassName.c_str(), ColorTemperatureMaximumMiredsCtorSignature.c_str(), + dataResponse.colorTemperatureMaximumMireds, ColorTemperatureMaximumMireds); + jobject OptionsMask; + std::string OptionsMaskClassName = "java/lang/Integer"; + std::string OptionsMaskCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), + dataResponse.optionsMask, OptionsMask); + jobject OptionsOverride; + std::string OptionsOverrideClassName = "java/lang/Integer"; + std::string OptionsOverrideCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + OptionsOverrideClassName.c_str(), OptionsOverrideCtorSignature.c_str(), dataResponse.optionsOverride, OptionsOverride); + + env->CallVoidMethod(javaCallbackRef, javaMethod, MoveMode, Rate, ColorTemperatureMinimumMireds, ColorTemperatureMaximumMireds, + OptionsMask, OptionsOverride); +} +CHIPColorControlClusterStepColorTemperatureCallback::CHIPColorControlClusterStepColorTemperatureCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPColorControlClusterStepColorTemperatureCallback::~CHIPColorControlClusterStepColorTemperatureCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPColorControlClusterStepColorTemperatureCallback::CallbackFn( + void * context, const chip::app::Clusters::ColorControl::Commands::StepColorTemperature::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/" + "Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", + &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject StepMode; + std::string StepModeClassName = "java/lang/Integer"; + std::string StepModeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(StepModeClassName.c_str(), StepModeCtorSignature.c_str(), + static_cast(dataResponse.stepMode), StepMode); + jobject StepSize; + std::string StepSizeClassName = "java/lang/Integer"; + std::string StepSizeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(StepSizeClassName.c_str(), StepSizeCtorSignature.c_str(), + dataResponse.stepSize, StepSize); + jobject TransitionTime; + std::string TransitionTimeClassName = "java/lang/Integer"; + std::string TransitionTimeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + TransitionTimeClassName.c_str(), TransitionTimeCtorSignature.c_str(), dataResponse.transitionTime, TransitionTime); + jobject ColorTemperatureMinimumMireds; + std::string ColorTemperatureMinimumMiredsClassName = "java/lang/Integer"; + std::string ColorTemperatureMinimumMiredsCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + ColorTemperatureMinimumMiredsClassName.c_str(), ColorTemperatureMinimumMiredsCtorSignature.c_str(), + dataResponse.colorTemperatureMinimumMireds, ColorTemperatureMinimumMireds); + jobject ColorTemperatureMaximumMireds; + std::string ColorTemperatureMaximumMiredsClassName = "java/lang/Integer"; + std::string ColorTemperatureMaximumMiredsCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + ColorTemperatureMaximumMiredsClassName.c_str(), ColorTemperatureMaximumMiredsCtorSignature.c_str(), + dataResponse.colorTemperatureMaximumMireds, ColorTemperatureMaximumMireds); + jobject OptionsMask; + std::string OptionsMaskClassName = "java/lang/Integer"; + std::string OptionsMaskCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), + dataResponse.optionsMask, OptionsMask); + jobject OptionsOverride; + std::string OptionsOverrideClassName = "java/lang/Integer"; + std::string OptionsOverrideCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + OptionsOverrideClassName.c_str(), OptionsOverrideCtorSignature.c_str(), dataResponse.optionsOverride, OptionsOverride); + + env->CallVoidMethod(javaCallbackRef, javaMethod, StepMode, StepSize, TransitionTime, ColorTemperatureMinimumMireds, + ColorTemperatureMaximumMireds, OptionsMask, OptionsOverride); +} +CHIPChannelClusterChangeChannelCallback::CHIPChannelClusterChangeChannelCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPChannelClusterChangeChannelCallback::~CHIPChannelClusterChangeChannelCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPChannelClusterChangeChannelCallback::CallbackFn( + void * context, const chip::app::Clusters::Channel::Commands::ChangeChannel::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/String;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject Match; + Match = env->NewStringUTF(std::string(dataResponse.match.data(), dataResponse.match.size()).c_str()); + + env->CallVoidMethod(javaCallbackRef, javaMethod, Match); +} +CHIPChannelClusterChangeChannelByNumberCallback::CHIPChannelClusterChangeChannelByNumberCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPChannelClusterChangeChannelByNumberCallback::~CHIPChannelClusterChangeChannelByNumberCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPChannelClusterChangeChannelByNumberCallback::CallbackFn( + void * context, const chip::app::Clusters::Channel::Commands::ChangeChannelByNumber::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;)V", + &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject MajorNumber; + std::string MajorNumberClassName = "java/lang/Integer"; + std::string MajorNumberCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(MajorNumberClassName.c_str(), MajorNumberCtorSignature.c_str(), + dataResponse.majorNumber, MajorNumber); + jobject MinorNumber; + std::string MinorNumberClassName = "java/lang/Integer"; + std::string MinorNumberCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(MinorNumberClassName.c_str(), MinorNumberCtorSignature.c_str(), + dataResponse.minorNumber, MinorNumber); + + env->CallVoidMethod(javaCallbackRef, javaMethod, MajorNumber, MinorNumber); +} +CHIPChannelClusterSkipChannelCallback::CHIPChannelClusterSkipChannelCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPChannelClusterSkipChannelCallback::~CHIPChannelClusterSkipChannelCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPChannelClusterSkipChannelCallback::CallbackFn( + void * context, const chip::app::Clusters::Channel::Commands::SkipChannel::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject Count; + std::string CountClassName = "java/lang/Integer"; + std::string CountCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(CountClassName.c_str(), CountCtorSignature.c_str(), + dataResponse.count, Count); + + env->CallVoidMethod(javaCallbackRef, javaMethod, Count); +} +CHIPTargetNavigatorClusterNavigateTargetCallback::CHIPTargetNavigatorClusterNavigateTargetCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPTargetNavigatorClusterNavigateTargetCallback::~CHIPTargetNavigatorClusterNavigateTargetCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPTargetNavigatorClusterNavigateTargetCallback::CallbackFn( + void * context, const chip::app::Clusters::TargetNavigator::Commands::NavigateTarget::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/util/Optional;)V", + &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject Target; + std::string TargetClassName = "java/lang/Integer"; + std::string TargetCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(TargetClassName.c_str(), TargetCtorSignature.c_str(), + dataResponse.target, Target); + jobject Data; + if (!dataResponse.data.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, Data); + } + else + { + jobject DataInsideOptional; + DataInsideOptional = + env->NewStringUTF(std::string(dataResponse.data.Value().data(), dataResponse.data.Value().size()).c_str()); + chip::JniReferences::GetInstance().CreateOptional(DataInsideOptional, Data); + } + + env->CallVoidMethod(javaCallbackRef, javaMethod, Target, Data); +} +CHIPMediaPlaybackClusterPlayCallback::CHIPMediaPlaybackClusterPlayCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPMediaPlaybackClusterPlayCallback::~CHIPMediaPlaybackClusterPlayCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPMediaPlaybackClusterPlayCallback::CallbackFn( + void * context, const chip::app::Clusters::MediaPlayback::Commands::Play::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + env->CallVoidMethod(javaCallbackRef, javaMethod); +} +CHIPMediaPlaybackClusterPauseCallback::CHIPMediaPlaybackClusterPauseCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPMediaPlaybackClusterPauseCallback::~CHIPMediaPlaybackClusterPauseCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPMediaPlaybackClusterPauseCallback::CallbackFn( + void * context, const chip::app::Clusters::MediaPlayback::Commands::Pause::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + env->CallVoidMethod(javaCallbackRef, javaMethod); +} +CHIPMediaPlaybackClusterStopCallback::CHIPMediaPlaybackClusterStopCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPMediaPlaybackClusterStopCallback::~CHIPMediaPlaybackClusterStopCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPMediaPlaybackClusterStopCallback::CallbackFn( + void * context, const chip::app::Clusters::MediaPlayback::Commands::Stop::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + env->CallVoidMethod(javaCallbackRef, javaMethod); +} +CHIPMediaPlaybackClusterStartOverCallback::CHIPMediaPlaybackClusterStartOverCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPMediaPlaybackClusterStartOverCallback::~CHIPMediaPlaybackClusterStartOverCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPMediaPlaybackClusterStartOverCallback::CallbackFn( + void * context, const chip::app::Clusters::MediaPlayback::Commands::StartOver::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + env->CallVoidMethod(javaCallbackRef, javaMethod); +} +CHIPMediaPlaybackClusterPreviousCallback::CHIPMediaPlaybackClusterPreviousCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPMediaPlaybackClusterPreviousCallback::~CHIPMediaPlaybackClusterPreviousCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPMediaPlaybackClusterPreviousCallback::CallbackFn( + void * context, const chip::app::Clusters::MediaPlayback::Commands::Previous::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + env->CallVoidMethod(javaCallbackRef, javaMethod); +} +CHIPMediaPlaybackClusterNextCallback::CHIPMediaPlaybackClusterNextCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPMediaPlaybackClusterNextCallback::~CHIPMediaPlaybackClusterNextCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPMediaPlaybackClusterNextCallback::CallbackFn( + void * context, const chip::app::Clusters::MediaPlayback::Commands::Next::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + env->CallVoidMethod(javaCallbackRef, javaMethod); +} +CHIPMediaPlaybackClusterRewindCallback::CHIPMediaPlaybackClusterRewindCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPMediaPlaybackClusterRewindCallback::~CHIPMediaPlaybackClusterRewindCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPMediaPlaybackClusterRewindCallback::CallbackFn( + void * context, const chip::app::Clusters::MediaPlayback::Commands::Rewind::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + env->CallVoidMethod(javaCallbackRef, javaMethod); +} +CHIPMediaPlaybackClusterFastForwardCallback::CHIPMediaPlaybackClusterFastForwardCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPMediaPlaybackClusterFastForwardCallback::~CHIPMediaPlaybackClusterFastForwardCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPMediaPlaybackClusterFastForwardCallback::CallbackFn( + void * context, const chip::app::Clusters::MediaPlayback::Commands::FastForward::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + env->CallVoidMethod(javaCallbackRef, javaMethod); +} +CHIPMediaPlaybackClusterSkipForwardCallback::CHIPMediaPlaybackClusterSkipForwardCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPMediaPlaybackClusterSkipForwardCallback::~CHIPMediaPlaybackClusterSkipForwardCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPMediaPlaybackClusterSkipForwardCallback::CallbackFn( + void * context, const chip::app::Clusters::MediaPlayback::Commands::SkipForward::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject DeltaPositionMilliseconds; + std::string DeltaPositionMillisecondsClassName = "java/lang/Long"; + std::string DeltaPositionMillisecondsCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + DeltaPositionMillisecondsClassName.c_str(), DeltaPositionMillisecondsCtorSignature.c_str(), + dataResponse.deltaPositionMilliseconds, DeltaPositionMilliseconds); + + env->CallVoidMethod(javaCallbackRef, javaMethod, DeltaPositionMilliseconds); +} +CHIPMediaPlaybackClusterSkipBackwardCallback::CHIPMediaPlaybackClusterSkipBackwardCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPMediaPlaybackClusterSkipBackwardCallback::~CHIPMediaPlaybackClusterSkipBackwardCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPMediaPlaybackClusterSkipBackwardCallback::CallbackFn( + void * context, const chip::app::Clusters::MediaPlayback::Commands::SkipBackward::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject DeltaPositionMilliseconds; + std::string DeltaPositionMillisecondsClassName = "java/lang/Long"; + std::string DeltaPositionMillisecondsCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + DeltaPositionMillisecondsClassName.c_str(), DeltaPositionMillisecondsCtorSignature.c_str(), + dataResponse.deltaPositionMilliseconds, DeltaPositionMilliseconds); + + env->CallVoidMethod(javaCallbackRef, javaMethod, DeltaPositionMilliseconds); +} +CHIPMediaPlaybackClusterSeekCallback::CHIPMediaPlaybackClusterSeekCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPMediaPlaybackClusterSeekCallback::~CHIPMediaPlaybackClusterSeekCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPMediaPlaybackClusterSeekCallback::CallbackFn( + void * context, const chip::app::Clusters::MediaPlayback::Commands::Seek::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject position; + std::string positionClassName = "java/lang/Long"; + std::string positionCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(positionClassName.c_str(), positionCtorSignature.c_str(), + dataResponse.position, position); + + env->CallVoidMethod(javaCallbackRef, javaMethod, position); +} +CHIPMediaInputClusterSelectInputCallback::CHIPMediaInputClusterSelectInputCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPMediaInputClusterSelectInputCallback::~CHIPMediaInputClusterSelectInputCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPMediaInputClusterSelectInputCallback::CallbackFn( + void * context, const chip::app::Clusters::MediaInput::Commands::SelectInput::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject Index; + std::string IndexClassName = "java/lang/Integer"; + std::string IndexCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(IndexClassName.c_str(), IndexCtorSignature.c_str(), + dataResponse.index, Index); + + env->CallVoidMethod(javaCallbackRef, javaMethod, Index); +} +CHIPMediaInputClusterShowInputStatusCallback::CHIPMediaInputClusterShowInputStatusCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPMediaInputClusterShowInputStatusCallback::~CHIPMediaInputClusterShowInputStatusCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPMediaInputClusterShowInputStatusCallback::CallbackFn( + void * context, const chip::app::Clusters::MediaInput::Commands::ShowInputStatus::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + env->CallVoidMethod(javaCallbackRef, javaMethod); +} +CHIPMediaInputClusterHideInputStatusCallback::CHIPMediaInputClusterHideInputStatusCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPMediaInputClusterHideInputStatusCallback::~CHIPMediaInputClusterHideInputStatusCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPMediaInputClusterHideInputStatusCallback::CallbackFn( + void * context, const chip::app::Clusters::MediaInput::Commands::HideInputStatus::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + env->CallVoidMethod(javaCallbackRef, javaMethod); +} +CHIPMediaInputClusterRenameInputCallback::CHIPMediaInputClusterRenameInputCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPMediaInputClusterRenameInputCallback::~CHIPMediaInputClusterRenameInputCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPMediaInputClusterRenameInputCallback::CallbackFn( + void * context, const chip::app::Clusters::MediaInput::Commands::RenameInput::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/String;)V", + &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject Index; + std::string IndexClassName = "java/lang/Integer"; + std::string IndexCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(IndexClassName.c_str(), IndexCtorSignature.c_str(), + dataResponse.index, Index); + jobject Name; + Name = env->NewStringUTF(std::string(dataResponse.name.data(), dataResponse.name.size()).c_str()); + + env->CallVoidMethod(javaCallbackRef, javaMethod, Index, Name); +} +CHIPLowPowerClusterSleepCallback::CHIPLowPowerClusterSleepCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPLowPowerClusterSleepCallback::~CHIPLowPowerClusterSleepCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPLowPowerClusterSleepCallback::CallbackFn( + void * context, const chip::app::Clusters::LowPower::Commands::Sleep::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + env->CallVoidMethod(javaCallbackRef, javaMethod); +} +CHIPKeypadInputClusterSendKeyCallback::CHIPKeypadInputClusterSendKeyCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPKeypadInputClusterSendKeyCallback::~CHIPKeypadInputClusterSendKeyCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPKeypadInputClusterSendKeyCallback::CallbackFn( + void * context, const chip::app::Clusters::KeypadInput::Commands::SendKey::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject KeyCode; + std::string KeyCodeClassName = "java/lang/Integer"; + std::string KeyCodeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(KeyCodeClassName.c_str(), KeyCodeCtorSignature.c_str(), + static_cast(dataResponse.keyCode), KeyCode); + + env->CallVoidMethod(javaCallbackRef, javaMethod, KeyCode); +} +CHIPContentLauncherClusterLaunchContentCallback::CHIPContentLauncherClusterLaunchContentCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPContentLauncherClusterLaunchContentCallback::~CHIPContentLauncherClusterLaunchContentCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPContentLauncherClusterLaunchContentCallback::CallbackFn( + void * context, const chip::app::Clusters::ContentLauncher::Commands::LaunchContent::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod( + env, javaCallbackRef, "onSuccess", + "(Lchip/devicecontroller/ChipStructs$ContentLauncherClusterContentSearchStruct;Ljava/lang/Boolean;Ljava/util/Optional;)V", + &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject Search; + jobject Search_parameterList; + chip::JniReferences::GetInstance().CreateArrayList(Search_parameterList); + + auto iter_Search_parameterList_1 = dataResponse.search.parameterList.begin(); + while (iter_Search_parameterList_1.Next()) + { + auto & entry_1 = iter_Search_parameterList_1.GetValue(); + jobject newElement_1; + jobject newElement_1_type; + std::string newElement_1_typeClassName = "java/lang/Integer"; + std::string newElement_1_typeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_1_typeClassName.c_str(), + newElement_1_typeCtorSignature.c_str(), + static_cast(entry_1.type), newElement_1_type); + jobject newElement_1_value; + newElement_1_value = env->NewStringUTF(std::string(entry_1.value.data(), entry_1.value.size()).c_str()); + jobject newElement_1_externalIDList; + if (!entry_1.externalIDList.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, newElement_1_externalIDList); + } + else + { + jobject newElement_1_externalIDListInsideOptional; + chip::JniReferences::GetInstance().CreateArrayList(newElement_1_externalIDListInsideOptional); + + auto iter_newElement_1_externalIDListInsideOptional_4 = entry_1.externalIDList.Value().begin(); + while (iter_newElement_1_externalIDListInsideOptional_4.Next()) + { + auto & entry_4 = iter_newElement_1_externalIDListInsideOptional_4.GetValue(); + jobject newElement_4; + jobject newElement_4_name; + newElement_4_name = env->NewStringUTF(std::string(entry_4.name.data(), entry_4.name.size()).c_str()); + jobject newElement_4_value; + newElement_4_value = env->NewStringUTF(std::string(entry_4.value.data(), entry_4.value.size()).c_str()); + + jclass additionalInfoStructStructClass_5; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$ContentLauncherClusterAdditionalInfoStruct", + additionalInfoStructStructClass_5); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$ContentLauncherClusterAdditionalInfoStruct"); + return; + } + jmethodID additionalInfoStructStructCtor_5 = + env->GetMethodID(additionalInfoStructStructClass_5, "", "(Ljava/lang/String;Ljava/lang/String;)V"); + if (additionalInfoStructStructCtor_5 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$ContentLauncherClusterAdditionalInfoStruct constructor"); + return; + } + + newElement_4 = env->NewObject(additionalInfoStructStructClass_5, additionalInfoStructStructCtor_5, + newElement_4_name, newElement_4_value); + chip::JniReferences::GetInstance().AddToList(newElement_1_externalIDListInsideOptional, newElement_4); + } + chip::JniReferences::GetInstance().CreateOptional(newElement_1_externalIDListInsideOptional, + newElement_1_externalIDList); + } + + jclass parameterStructStructClass_2; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$ContentLauncherClusterParameterStruct", parameterStructStructClass_2); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$ContentLauncherClusterParameterStruct"); + return; + } + jmethodID parameterStructStructCtor_2 = env->GetMethodID(parameterStructStructClass_2, "", + "(Ljava/lang/Integer;Ljava/lang/String;Ljava/util/Optional;)V"); + if (parameterStructStructCtor_2 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$ContentLauncherClusterParameterStruct constructor"); + return; + } + + newElement_1 = env->NewObject(parameterStructStructClass_2, parameterStructStructCtor_2, newElement_1_type, + newElement_1_value, newElement_1_externalIDList); + chip::JniReferences::GetInstance().AddToList(Search_parameterList, newElement_1); + } + + jclass contentSearchStructStructClass_0; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$ContentLauncherClusterContentSearchStruct", contentSearchStructStructClass_0); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$ContentLauncherClusterContentSearchStruct"); + return; + } + jmethodID contentSearchStructStructCtor_0 = + env->GetMethodID(contentSearchStructStructClass_0, "", "(Ljava/util/ArrayList;)V"); + if (contentSearchStructStructCtor_0 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$ContentLauncherClusterContentSearchStruct constructor"); + return; + } + + Search = env->NewObject(contentSearchStructStructClass_0, contentSearchStructStructCtor_0, Search_parameterList); + jobject AutoPlay; + std::string AutoPlayClassName = "java/lang/Boolean"; + std::string AutoPlayCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(AutoPlayClassName.c_str(), AutoPlayCtorSignature.c_str(), + dataResponse.autoPlay, AutoPlay); + jobject Data; + if (!dataResponse.data.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, Data); + } + else + { + jobject DataInsideOptional; + DataInsideOptional = + env->NewStringUTF(std::string(dataResponse.data.Value().data(), dataResponse.data.Value().size()).c_str()); + chip::JniReferences::GetInstance().CreateOptional(DataInsideOptional, Data); + } + + env->CallVoidMethod(javaCallbackRef, javaMethod, Search, AutoPlay, Data); +} +CHIPContentLauncherClusterLaunchURLCallback::CHIPContentLauncherClusterLaunchURLCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPContentLauncherClusterLaunchURLCallback::~CHIPContentLauncherClusterLaunchURLCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPContentLauncherClusterLaunchURLCallback::CallbackFn( + void * context, const chip::app::Clusters::ContentLauncher::Commands::LaunchURL::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", + "(Ljava/lang/String;Ljava/util/Optional;Ljava/util/Optional;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject ContentURL; + ContentURL = env->NewStringUTF(std::string(dataResponse.contentURL.data(), dataResponse.contentURL.size()).c_str()); + jobject DisplayString; + if (!dataResponse.displayString.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, DisplayString); + } + else + { + jobject DisplayStringInsideOptional; + DisplayStringInsideOptional = env->NewStringUTF( + std::string(dataResponse.displayString.Value().data(), dataResponse.displayString.Value().size()).c_str()); + chip::JniReferences::GetInstance().CreateOptional(DisplayStringInsideOptional, DisplayString); + } + jobject BrandingInformation; + if (!dataResponse.brandingInformation.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, BrandingInformation); + } + else + { + jobject BrandingInformationInsideOptional; + jobject BrandingInformationInsideOptional_providerName; + BrandingInformationInsideOptional_providerName = + env->NewStringUTF(std::string(dataResponse.brandingInformation.Value().providerName.data(), + dataResponse.brandingInformation.Value().providerName.size()) + .c_str()); + jobject BrandingInformationInsideOptional_background; + if (!dataResponse.brandingInformation.Value().background.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, BrandingInformationInsideOptional_background); + } + else + { + jobject BrandingInformationInsideOptional_backgroundInsideOptional; + jobject BrandingInformationInsideOptional_backgroundInsideOptional_imageURL; + if (!dataResponse.brandingInformation.Value().background.Value().imageURL.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional( + nullptr, BrandingInformationInsideOptional_backgroundInsideOptional_imageURL); + } + else + { + jobject BrandingInformationInsideOptional_backgroundInsideOptional_imageURLInsideOptional; + BrandingInformationInsideOptional_backgroundInsideOptional_imageURLInsideOptional = env->NewStringUTF( + std::string(dataResponse.brandingInformation.Value().background.Value().imageURL.Value().data(), + dataResponse.brandingInformation.Value().background.Value().imageURL.Value().size()) + .c_str()); + chip::JniReferences::GetInstance().CreateOptional( + BrandingInformationInsideOptional_backgroundInsideOptional_imageURLInsideOptional, + BrandingInformationInsideOptional_backgroundInsideOptional_imageURL); + } + jobject BrandingInformationInsideOptional_backgroundInsideOptional_color; + if (!dataResponse.brandingInformation.Value().background.Value().color.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, + BrandingInformationInsideOptional_backgroundInsideOptional_color); + } + else + { + jobject BrandingInformationInsideOptional_backgroundInsideOptional_colorInsideOptional; + BrandingInformationInsideOptional_backgroundInsideOptional_colorInsideOptional = + env->NewStringUTF(std::string(dataResponse.brandingInformation.Value().background.Value().color.Value().data(), + dataResponse.brandingInformation.Value().background.Value().color.Value().size()) + .c_str()); + chip::JniReferences::GetInstance().CreateOptional( + BrandingInformationInsideOptional_backgroundInsideOptional_colorInsideOptional, + BrandingInformationInsideOptional_backgroundInsideOptional_color); + } + jobject BrandingInformationInsideOptional_backgroundInsideOptional_size; + if (!dataResponse.brandingInformation.Value().background.Value().size.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, + BrandingInformationInsideOptional_backgroundInsideOptional_size); + } + else + { + jobject BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional; + jobject BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional_width; + std::string BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional_widthClassName = + "java/lang/Double"; + std::string BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional_widthCtorSignature = + "(D)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional_widthClassName.c_str(), + BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional_widthCtorSignature.c_str(), + dataResponse.brandingInformation.Value().background.Value().size.Value().width, + BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional_width); + jobject BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional_height; + std::string BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional_heightClassName = + "java/lang/Double"; + std::string BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional_heightCtorSignature = + "(D)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional_heightClassName.c_str(), + BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional_heightCtorSignature.c_str(), + dataResponse.brandingInformation.Value().background.Value().size.Value().height, + BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional_height); + jobject BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional_metric; + std::string BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional_metricClassName = + "java/lang/Integer"; + std::string BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional_metricCtorSignature = + "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional_metricClassName.c_str(), + BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional_metricCtorSignature.c_str(), + static_cast(dataResponse.brandingInformation.Value().background.Value().size.Value().metric), + BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional_metric); + + jclass dimensionStructStructClass_5; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$ContentLauncherClusterDimensionStruct", dimensionStructStructClass_5); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$ContentLauncherClusterDimensionStruct"); + return; + } + jmethodID dimensionStructStructCtor_5 = env->GetMethodID( + dimensionStructStructClass_5, "", "(Ljava/lang/Double;Ljava/lang/Double;Ljava/lang/Integer;)V"); + if (dimensionStructStructCtor_5 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$ContentLauncherClusterDimensionStruct constructor"); + return; + } + + BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional = + env->NewObject(dimensionStructStructClass_5, dimensionStructStructCtor_5, + BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional_width, + BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional_height, + BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional_metric); + chip::JniReferences::GetInstance().CreateOptional( + BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional, + BrandingInformationInsideOptional_backgroundInsideOptional_size); + } + + jclass styleInformationStructStructClass_3; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$ContentLauncherClusterStyleInformationStruct", + styleInformationStructStructClass_3); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$ContentLauncherClusterStyleInformationStruct"); + return; + } + jmethodID styleInformationStructStructCtor_3 = env->GetMethodID( + styleInformationStructStructClass_3, "", "(Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;)V"); + if (styleInformationStructStructCtor_3 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$ContentLauncherClusterStyleInformationStruct constructor"); + return; + } + + BrandingInformationInsideOptional_backgroundInsideOptional = + env->NewObject(styleInformationStructStructClass_3, styleInformationStructStructCtor_3, + BrandingInformationInsideOptional_backgroundInsideOptional_imageURL, + BrandingInformationInsideOptional_backgroundInsideOptional_color, + BrandingInformationInsideOptional_backgroundInsideOptional_size); + chip::JniReferences::GetInstance().CreateOptional(BrandingInformationInsideOptional_backgroundInsideOptional, + BrandingInformationInsideOptional_background); + } + jobject BrandingInformationInsideOptional_logo; + if (!dataResponse.brandingInformation.Value().logo.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, BrandingInformationInsideOptional_logo); + } + else + { + jobject BrandingInformationInsideOptional_logoInsideOptional; + jobject BrandingInformationInsideOptional_logoInsideOptional_imageURL; + if (!dataResponse.brandingInformation.Value().logo.Value().imageURL.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, + BrandingInformationInsideOptional_logoInsideOptional_imageURL); + } + else + { + jobject BrandingInformationInsideOptional_logoInsideOptional_imageURLInsideOptional; + BrandingInformationInsideOptional_logoInsideOptional_imageURLInsideOptional = + env->NewStringUTF(std::string(dataResponse.brandingInformation.Value().logo.Value().imageURL.Value().data(), + dataResponse.brandingInformation.Value().logo.Value().imageURL.Value().size()) + .c_str()); + chip::JniReferences::GetInstance().CreateOptional( + BrandingInformationInsideOptional_logoInsideOptional_imageURLInsideOptional, + BrandingInformationInsideOptional_logoInsideOptional_imageURL); + } + jobject BrandingInformationInsideOptional_logoInsideOptional_color; + if (!dataResponse.brandingInformation.Value().logo.Value().color.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, + BrandingInformationInsideOptional_logoInsideOptional_color); + } + else + { + jobject BrandingInformationInsideOptional_logoInsideOptional_colorInsideOptional; + BrandingInformationInsideOptional_logoInsideOptional_colorInsideOptional = + env->NewStringUTF(std::string(dataResponse.brandingInformation.Value().logo.Value().color.Value().data(), + dataResponse.brandingInformation.Value().logo.Value().color.Value().size()) + .c_str()); + chip::JniReferences::GetInstance().CreateOptional( + BrandingInformationInsideOptional_logoInsideOptional_colorInsideOptional, + BrandingInformationInsideOptional_logoInsideOptional_color); + } + jobject BrandingInformationInsideOptional_logoInsideOptional_size; + if (!dataResponse.brandingInformation.Value().logo.Value().size.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, + BrandingInformationInsideOptional_logoInsideOptional_size); + } + else + { + jobject BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional; + jobject BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional_width; + std::string BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional_widthClassName = + "java/lang/Double"; + std::string BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional_widthCtorSignature = "(D)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional_widthClassName.c_str(), + BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional_widthCtorSignature.c_str(), + dataResponse.brandingInformation.Value().logo.Value().size.Value().width, + BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional_width); + jobject BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional_height; + std::string BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional_heightClassName = + "java/lang/Double"; + std::string BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional_heightCtorSignature = "(D)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional_heightClassName.c_str(), + BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional_heightCtorSignature.c_str(), + dataResponse.brandingInformation.Value().logo.Value().size.Value().height, + BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional_height); + jobject BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional_metric; + std::string BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional_metricClassName = + "java/lang/Integer"; + std::string BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional_metricCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional_metricClassName.c_str(), + BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional_metricCtorSignature.c_str(), + static_cast(dataResponse.brandingInformation.Value().logo.Value().size.Value().metric), + BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional_metric); + + jclass dimensionStructStructClass_5; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$ContentLauncherClusterDimensionStruct", dimensionStructStructClass_5); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$ContentLauncherClusterDimensionStruct"); + return; + } + jmethodID dimensionStructStructCtor_5 = env->GetMethodID( + dimensionStructStructClass_5, "", "(Ljava/lang/Double;Ljava/lang/Double;Ljava/lang/Integer;)V"); + if (dimensionStructStructCtor_5 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$ContentLauncherClusterDimensionStruct constructor"); + return; + } + + BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional = + env->NewObject(dimensionStructStructClass_5, dimensionStructStructCtor_5, + BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional_width, + BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional_height, + BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional_metric); + chip::JniReferences::GetInstance().CreateOptional( + BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional, + BrandingInformationInsideOptional_logoInsideOptional_size); + } + + jclass styleInformationStructStructClass_3; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$ContentLauncherClusterStyleInformationStruct", + styleInformationStructStructClass_3); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$ContentLauncherClusterStyleInformationStruct"); + return; + } + jmethodID styleInformationStructStructCtor_3 = env->GetMethodID( + styleInformationStructStructClass_3, "", "(Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;)V"); + if (styleInformationStructStructCtor_3 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$ContentLauncherClusterStyleInformationStruct constructor"); + return; + } + + BrandingInformationInsideOptional_logoInsideOptional = + env->NewObject(styleInformationStructStructClass_3, styleInformationStructStructCtor_3, + BrandingInformationInsideOptional_logoInsideOptional_imageURL, + BrandingInformationInsideOptional_logoInsideOptional_color, + BrandingInformationInsideOptional_logoInsideOptional_size); + chip::JniReferences::GetInstance().CreateOptional(BrandingInformationInsideOptional_logoInsideOptional, + BrandingInformationInsideOptional_logo); + } + jobject BrandingInformationInsideOptional_progressBar; + if (!dataResponse.brandingInformation.Value().progressBar.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, BrandingInformationInsideOptional_progressBar); + } + else + { + jobject BrandingInformationInsideOptional_progressBarInsideOptional; + jobject BrandingInformationInsideOptional_progressBarInsideOptional_imageURL; + if (!dataResponse.brandingInformation.Value().progressBar.Value().imageURL.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional( + nullptr, BrandingInformationInsideOptional_progressBarInsideOptional_imageURL); + } + else + { + jobject BrandingInformationInsideOptional_progressBarInsideOptional_imageURLInsideOptional; + BrandingInformationInsideOptional_progressBarInsideOptional_imageURLInsideOptional = env->NewStringUTF( + std::string(dataResponse.brandingInformation.Value().progressBar.Value().imageURL.Value().data(), + dataResponse.brandingInformation.Value().progressBar.Value().imageURL.Value().size()) + .c_str()); + chip::JniReferences::GetInstance().CreateOptional( + BrandingInformationInsideOptional_progressBarInsideOptional_imageURLInsideOptional, + BrandingInformationInsideOptional_progressBarInsideOptional_imageURL); + } + jobject BrandingInformationInsideOptional_progressBarInsideOptional_color; + if (!dataResponse.brandingInformation.Value().progressBar.Value().color.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional( + nullptr, BrandingInformationInsideOptional_progressBarInsideOptional_color); + } + else + { + jobject BrandingInformationInsideOptional_progressBarInsideOptional_colorInsideOptional; + BrandingInformationInsideOptional_progressBarInsideOptional_colorInsideOptional = + env->NewStringUTF(std::string(dataResponse.brandingInformation.Value().progressBar.Value().color.Value().data(), + dataResponse.brandingInformation.Value().progressBar.Value().color.Value().size()) + .c_str()); + chip::JniReferences::GetInstance().CreateOptional( + BrandingInformationInsideOptional_progressBarInsideOptional_colorInsideOptional, + BrandingInformationInsideOptional_progressBarInsideOptional_color); + } + jobject BrandingInformationInsideOptional_progressBarInsideOptional_size; + if (!dataResponse.brandingInformation.Value().progressBar.Value().size.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, + BrandingInformationInsideOptional_progressBarInsideOptional_size); + } + else + { + jobject BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional; + jobject BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional_width; + std::string BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional_widthClassName = + "java/lang/Double"; + std::string BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional_widthCtorSignature = + "(D)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional_widthClassName.c_str(), + BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional_widthCtorSignature.c_str(), + dataResponse.brandingInformation.Value().progressBar.Value().size.Value().width, + BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional_width); + jobject BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional_height; + std::string BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional_heightClassName = + "java/lang/Double"; + std::string BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional_heightCtorSignature = + "(D)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional_heightClassName.c_str(), + BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional_heightCtorSignature.c_str(), + dataResponse.brandingInformation.Value().progressBar.Value().size.Value().height, + BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional_height); + jobject BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional_metric; + std::string BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional_metricClassName = + "java/lang/Integer"; + std::string BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional_metricCtorSignature = + "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional_metricClassName.c_str(), + BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional_metricCtorSignature.c_str(), + static_cast(dataResponse.brandingInformation.Value().progressBar.Value().size.Value().metric), + BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional_metric); + + jclass dimensionStructStructClass_5; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$ContentLauncherClusterDimensionStruct", dimensionStructStructClass_5); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$ContentLauncherClusterDimensionStruct"); + return; + } + jmethodID dimensionStructStructCtor_5 = env->GetMethodID( + dimensionStructStructClass_5, "", "(Ljava/lang/Double;Ljava/lang/Double;Ljava/lang/Integer;)V"); + if (dimensionStructStructCtor_5 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$ContentLauncherClusterDimensionStruct constructor"); + return; + } + + BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional = + env->NewObject(dimensionStructStructClass_5, dimensionStructStructCtor_5, + BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional_width, + BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional_height, + BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional_metric); + chip::JniReferences::GetInstance().CreateOptional( + BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional, + BrandingInformationInsideOptional_progressBarInsideOptional_size); + } + + jclass styleInformationStructStructClass_3; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$ContentLauncherClusterStyleInformationStruct", + styleInformationStructStructClass_3); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$ContentLauncherClusterStyleInformationStruct"); + return; + } + jmethodID styleInformationStructStructCtor_3 = env->GetMethodID( + styleInformationStructStructClass_3, "", "(Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;)V"); + if (styleInformationStructStructCtor_3 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$ContentLauncherClusterStyleInformationStruct constructor"); + return; + } + + BrandingInformationInsideOptional_progressBarInsideOptional = + env->NewObject(styleInformationStructStructClass_3, styleInformationStructStructCtor_3, + BrandingInformationInsideOptional_progressBarInsideOptional_imageURL, + BrandingInformationInsideOptional_progressBarInsideOptional_color, + BrandingInformationInsideOptional_progressBarInsideOptional_size); + chip::JniReferences::GetInstance().CreateOptional(BrandingInformationInsideOptional_progressBarInsideOptional, + BrandingInformationInsideOptional_progressBar); + } + jobject BrandingInformationInsideOptional_splash; + if (!dataResponse.brandingInformation.Value().splash.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, BrandingInformationInsideOptional_splash); + } + else + { + jobject BrandingInformationInsideOptional_splashInsideOptional; + jobject BrandingInformationInsideOptional_splashInsideOptional_imageURL; + if (!dataResponse.brandingInformation.Value().splash.Value().imageURL.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, + BrandingInformationInsideOptional_splashInsideOptional_imageURL); + } + else + { + jobject BrandingInformationInsideOptional_splashInsideOptional_imageURLInsideOptional; + BrandingInformationInsideOptional_splashInsideOptional_imageURLInsideOptional = + env->NewStringUTF(std::string(dataResponse.brandingInformation.Value().splash.Value().imageURL.Value().data(), + dataResponse.brandingInformation.Value().splash.Value().imageURL.Value().size()) + .c_str()); + chip::JniReferences::GetInstance().CreateOptional( + BrandingInformationInsideOptional_splashInsideOptional_imageURLInsideOptional, + BrandingInformationInsideOptional_splashInsideOptional_imageURL); + } + jobject BrandingInformationInsideOptional_splashInsideOptional_color; + if (!dataResponse.brandingInformation.Value().splash.Value().color.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, + BrandingInformationInsideOptional_splashInsideOptional_color); + } + else + { + jobject BrandingInformationInsideOptional_splashInsideOptional_colorInsideOptional; + BrandingInformationInsideOptional_splashInsideOptional_colorInsideOptional = + env->NewStringUTF(std::string(dataResponse.brandingInformation.Value().splash.Value().color.Value().data(), + dataResponse.brandingInformation.Value().splash.Value().color.Value().size()) + .c_str()); + chip::JniReferences::GetInstance().CreateOptional( + BrandingInformationInsideOptional_splashInsideOptional_colorInsideOptional, + BrandingInformationInsideOptional_splashInsideOptional_color); + } + jobject BrandingInformationInsideOptional_splashInsideOptional_size; + if (!dataResponse.brandingInformation.Value().splash.Value().size.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, + BrandingInformationInsideOptional_splashInsideOptional_size); + } + else + { + jobject BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional; + jobject BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional_width; + std::string BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional_widthClassName = + "java/lang/Double"; + std::string BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional_widthCtorSignature = "(D)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional_widthClassName.c_str(), + BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional_widthCtorSignature.c_str(), + dataResponse.brandingInformation.Value().splash.Value().size.Value().width, + BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional_width); + jobject BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional_height; + std::string BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional_heightClassName = + "java/lang/Double"; + std::string BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional_heightCtorSignature = "(D)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional_heightClassName.c_str(), + BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional_heightCtorSignature.c_str(), + dataResponse.brandingInformation.Value().splash.Value().size.Value().height, + BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional_height); + jobject BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional_metric; + std::string BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional_metricClassName = + "java/lang/Integer"; + std::string BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional_metricCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional_metricClassName.c_str(), + BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional_metricCtorSignature.c_str(), + static_cast(dataResponse.brandingInformation.Value().splash.Value().size.Value().metric), + BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional_metric); + + jclass dimensionStructStructClass_5; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$ContentLauncherClusterDimensionStruct", dimensionStructStructClass_5); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$ContentLauncherClusterDimensionStruct"); + return; + } + jmethodID dimensionStructStructCtor_5 = env->GetMethodID( + dimensionStructStructClass_5, "", "(Ljava/lang/Double;Ljava/lang/Double;Ljava/lang/Integer;)V"); + if (dimensionStructStructCtor_5 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$ContentLauncherClusterDimensionStruct constructor"); + return; + } + + BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional = + env->NewObject(dimensionStructStructClass_5, dimensionStructStructCtor_5, + BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional_width, + BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional_height, + BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional_metric); + chip::JniReferences::GetInstance().CreateOptional( + BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional, + BrandingInformationInsideOptional_splashInsideOptional_size); + } + + jclass styleInformationStructStructClass_3; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$ContentLauncherClusterStyleInformationStruct", + styleInformationStructStructClass_3); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$ContentLauncherClusterStyleInformationStruct"); + return; + } + jmethodID styleInformationStructStructCtor_3 = env->GetMethodID( + styleInformationStructStructClass_3, "", "(Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;)V"); + if (styleInformationStructStructCtor_3 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$ContentLauncherClusterStyleInformationStruct constructor"); + return; + } + + BrandingInformationInsideOptional_splashInsideOptional = + env->NewObject(styleInformationStructStructClass_3, styleInformationStructStructCtor_3, + BrandingInformationInsideOptional_splashInsideOptional_imageURL, + BrandingInformationInsideOptional_splashInsideOptional_color, + BrandingInformationInsideOptional_splashInsideOptional_size); + chip::JniReferences::GetInstance().CreateOptional(BrandingInformationInsideOptional_splashInsideOptional, + BrandingInformationInsideOptional_splash); + } + jobject BrandingInformationInsideOptional_waterMark; + if (!dataResponse.brandingInformation.Value().waterMark.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, BrandingInformationInsideOptional_waterMark); + } + else + { + jobject BrandingInformationInsideOptional_waterMarkInsideOptional; + jobject BrandingInformationInsideOptional_waterMarkInsideOptional_imageURL; + if (!dataResponse.brandingInformation.Value().waterMark.Value().imageURL.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional( + nullptr, BrandingInformationInsideOptional_waterMarkInsideOptional_imageURL); + } + else + { + jobject BrandingInformationInsideOptional_waterMarkInsideOptional_imageURLInsideOptional; + BrandingInformationInsideOptional_waterMarkInsideOptional_imageURLInsideOptional = env->NewStringUTF( + std::string(dataResponse.brandingInformation.Value().waterMark.Value().imageURL.Value().data(), + dataResponse.brandingInformation.Value().waterMark.Value().imageURL.Value().size()) + .c_str()); + chip::JniReferences::GetInstance().CreateOptional( + BrandingInformationInsideOptional_waterMarkInsideOptional_imageURLInsideOptional, + BrandingInformationInsideOptional_waterMarkInsideOptional_imageURL); + } + jobject BrandingInformationInsideOptional_waterMarkInsideOptional_color; + if (!dataResponse.brandingInformation.Value().waterMark.Value().color.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, + BrandingInformationInsideOptional_waterMarkInsideOptional_color); + } + else + { + jobject BrandingInformationInsideOptional_waterMarkInsideOptional_colorInsideOptional; + BrandingInformationInsideOptional_waterMarkInsideOptional_colorInsideOptional = + env->NewStringUTF(std::string(dataResponse.brandingInformation.Value().waterMark.Value().color.Value().data(), + dataResponse.brandingInformation.Value().waterMark.Value().color.Value().size()) + .c_str()); + chip::JniReferences::GetInstance().CreateOptional( + BrandingInformationInsideOptional_waterMarkInsideOptional_colorInsideOptional, + BrandingInformationInsideOptional_waterMarkInsideOptional_color); + } + jobject BrandingInformationInsideOptional_waterMarkInsideOptional_size; + if (!dataResponse.brandingInformation.Value().waterMark.Value().size.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, + BrandingInformationInsideOptional_waterMarkInsideOptional_size); + } + else + { + jobject BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional; + jobject BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional_width; + std::string BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional_widthClassName = + "java/lang/Double"; + std::string BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional_widthCtorSignature = + "(D)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional_widthClassName.c_str(), + BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional_widthCtorSignature.c_str(), + dataResponse.brandingInformation.Value().waterMark.Value().size.Value().width, + BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional_width); + jobject BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional_height; + std::string BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional_heightClassName = + "java/lang/Double"; + std::string BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional_heightCtorSignature = + "(D)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional_heightClassName.c_str(), + BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional_heightCtorSignature.c_str(), + dataResponse.brandingInformation.Value().waterMark.Value().size.Value().height, + BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional_height); + jobject BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional_metric; + std::string BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional_metricClassName = + "java/lang/Integer"; + std::string BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional_metricCtorSignature = + "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional_metricClassName.c_str(), + BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional_metricCtorSignature.c_str(), + static_cast(dataResponse.brandingInformation.Value().waterMark.Value().size.Value().metric), + BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional_metric); + + jclass dimensionStructStructClass_5; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$ContentLauncherClusterDimensionStruct", dimensionStructStructClass_5); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$ContentLauncherClusterDimensionStruct"); + return; + } + jmethodID dimensionStructStructCtor_5 = env->GetMethodID( + dimensionStructStructClass_5, "", "(Ljava/lang/Double;Ljava/lang/Double;Ljava/lang/Integer;)V"); + if (dimensionStructStructCtor_5 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$ContentLauncherClusterDimensionStruct constructor"); + return; + } + + BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional = + env->NewObject(dimensionStructStructClass_5, dimensionStructStructCtor_5, + BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional_width, + BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional_height, + BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional_metric); + chip::JniReferences::GetInstance().CreateOptional( + BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional, + BrandingInformationInsideOptional_waterMarkInsideOptional_size); + } + + jclass styleInformationStructStructClass_3; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$ContentLauncherClusterStyleInformationStruct", + styleInformationStructStructClass_3); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$ContentLauncherClusterStyleInformationStruct"); + return; + } + jmethodID styleInformationStructStructCtor_3 = env->GetMethodID( + styleInformationStructStructClass_3, "", "(Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;)V"); + if (styleInformationStructStructCtor_3 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$ContentLauncherClusterStyleInformationStruct constructor"); + return; + } + + BrandingInformationInsideOptional_waterMarkInsideOptional = + env->NewObject(styleInformationStructStructClass_3, styleInformationStructStructCtor_3, + BrandingInformationInsideOptional_waterMarkInsideOptional_imageURL, + BrandingInformationInsideOptional_waterMarkInsideOptional_color, + BrandingInformationInsideOptional_waterMarkInsideOptional_size); + chip::JniReferences::GetInstance().CreateOptional(BrandingInformationInsideOptional_waterMarkInsideOptional, + BrandingInformationInsideOptional_waterMark); + } + + jclass brandingInformationStructStructClass_1; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$ContentLauncherClusterBrandingInformationStruct", + brandingInformationStructStructClass_1); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$ContentLauncherClusterBrandingInformationStruct"); + return; + } + jmethodID brandingInformationStructStructCtor_1 = + env->GetMethodID(brandingInformationStructStructClass_1, "", + "(Ljava/lang/String;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/" + "Optional;Ljava/util/Optional;)V"); + if (brandingInformationStructStructCtor_1 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$ContentLauncherClusterBrandingInformationStruct constructor"); + return; + } + + BrandingInformationInsideOptional = + env->NewObject(brandingInformationStructStructClass_1, brandingInformationStructStructCtor_1, + BrandingInformationInsideOptional_providerName, BrandingInformationInsideOptional_background, + BrandingInformationInsideOptional_logo, BrandingInformationInsideOptional_progressBar, + BrandingInformationInsideOptional_splash, BrandingInformationInsideOptional_waterMark); + chip::JniReferences::GetInstance().CreateOptional(BrandingInformationInsideOptional, BrandingInformation); + } + + env->CallVoidMethod(javaCallbackRef, javaMethod, ContentURL, DisplayString, BrandingInformation); +} +CHIPAudioOutputClusterSelectOutputCallback::CHIPAudioOutputClusterSelectOutputCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPAudioOutputClusterSelectOutputCallback::~CHIPAudioOutputClusterSelectOutputCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPAudioOutputClusterSelectOutputCallback::CallbackFn( + void * context, const chip::app::Clusters::AudioOutput::Commands::SelectOutput::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject Index; + std::string IndexClassName = "java/lang/Integer"; + std::string IndexCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(IndexClassName.c_str(), IndexCtorSignature.c_str(), + dataResponse.index, Index); + + env->CallVoidMethod(javaCallbackRef, javaMethod, Index); +} +CHIPAudioOutputClusterRenameOutputCallback::CHIPAudioOutputClusterRenameOutputCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPAudioOutputClusterRenameOutputCallback::~CHIPAudioOutputClusterRenameOutputCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPAudioOutputClusterRenameOutputCallback::CallbackFn( + void * context, const chip::app::Clusters::AudioOutput::Commands::RenameOutput::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/String;)V", + &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject Index; + std::string IndexClassName = "java/lang/Integer"; + std::string IndexCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(IndexClassName.c_str(), IndexCtorSignature.c_str(), + dataResponse.index, Index); + jobject Name; + Name = env->NewStringUTF(std::string(dataResponse.name.data(), dataResponse.name.size()).c_str()); + + env->CallVoidMethod(javaCallbackRef, javaMethod, Index, Name); +} +CHIPApplicationLauncherClusterLaunchAppCallback::CHIPApplicationLauncherClusterLaunchAppCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPApplicationLauncherClusterLaunchAppCallback::~CHIPApplicationLauncherClusterLaunchAppCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPApplicationLauncherClusterLaunchAppCallback::CallbackFn( + void * context, const chip::app::Clusters::ApplicationLauncher::Commands::LaunchApp::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/Optional;Ljava/util/Optional;)V", + &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject Application; + if (!dataResponse.application.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, Application); + } + else + { + jobject ApplicationInsideOptional; + jobject ApplicationInsideOptional_catalogVendorID; + std::string ApplicationInsideOptional_catalogVendorIDClassName = "java/lang/Integer"; + std::string ApplicationInsideOptional_catalogVendorIDCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + ApplicationInsideOptional_catalogVendorIDClassName.c_str(), + ApplicationInsideOptional_catalogVendorIDCtorSignature.c_str(), dataResponse.application.Value().catalogVendorID, + ApplicationInsideOptional_catalogVendorID); + jobject ApplicationInsideOptional_applicationID; + ApplicationInsideOptional_applicationID = + env->NewStringUTF(std::string(dataResponse.application.Value().applicationID.data(), + dataResponse.application.Value().applicationID.size()) + .c_str()); + + jclass applicationStructStructClass_1; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$ApplicationLauncherClusterApplicationStruct", applicationStructStructClass_1); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$ApplicationLauncherClusterApplicationStruct"); + return; + } + jmethodID applicationStructStructCtor_1 = + env->GetMethodID(applicationStructStructClass_1, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); + if (applicationStructStructCtor_1 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$ApplicationLauncherClusterApplicationStruct constructor"); + return; + } + + ApplicationInsideOptional = + env->NewObject(applicationStructStructClass_1, applicationStructStructCtor_1, ApplicationInsideOptional_catalogVendorID, + ApplicationInsideOptional_applicationID); + chip::JniReferences::GetInstance().CreateOptional(ApplicationInsideOptional, Application); + } + jobject Data; + if (!dataResponse.data.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, Data); + } + else + { + jobject DataInsideOptional; + jbyteArray DataInsideOptionalByteArray = env->NewByteArray(static_cast(dataResponse.data.Value().size())); + env->SetByteArrayRegion(DataInsideOptionalByteArray, 0, static_cast(dataResponse.data.Value().size()), + reinterpret_cast(dataResponse.data.Value().data())); + DataInsideOptional = DataInsideOptionalByteArray; + chip::JniReferences::GetInstance().CreateOptional(DataInsideOptional, Data); + } + + env->CallVoidMethod(javaCallbackRef, javaMethod, Application, Data); +} +CHIPApplicationLauncherClusterStopAppCallback::CHIPApplicationLauncherClusterStopAppCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPApplicationLauncherClusterStopAppCallback::~CHIPApplicationLauncherClusterStopAppCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPApplicationLauncherClusterStopAppCallback::CallbackFn( + void * context, const chip::app::Clusters::ApplicationLauncher::Commands::StopApp::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/Optional;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject Application; + if (!dataResponse.application.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, Application); + } + else + { + jobject ApplicationInsideOptional; + jobject ApplicationInsideOptional_catalogVendorID; + std::string ApplicationInsideOptional_catalogVendorIDClassName = "java/lang/Integer"; + std::string ApplicationInsideOptional_catalogVendorIDCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + ApplicationInsideOptional_catalogVendorIDClassName.c_str(), + ApplicationInsideOptional_catalogVendorIDCtorSignature.c_str(), dataResponse.application.Value().catalogVendorID, + ApplicationInsideOptional_catalogVendorID); + jobject ApplicationInsideOptional_applicationID; + ApplicationInsideOptional_applicationID = + env->NewStringUTF(std::string(dataResponse.application.Value().applicationID.data(), + dataResponse.application.Value().applicationID.size()) + .c_str()); + + jclass applicationStructStructClass_1; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$ApplicationLauncherClusterApplicationStruct", applicationStructStructClass_1); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$ApplicationLauncherClusterApplicationStruct"); + return; + } + jmethodID applicationStructStructCtor_1 = + env->GetMethodID(applicationStructStructClass_1, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); + if (applicationStructStructCtor_1 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$ApplicationLauncherClusterApplicationStruct constructor"); + return; + } + + ApplicationInsideOptional = + env->NewObject(applicationStructStructClass_1, applicationStructStructCtor_1, ApplicationInsideOptional_catalogVendorID, + ApplicationInsideOptional_applicationID); + chip::JniReferences::GetInstance().CreateOptional(ApplicationInsideOptional, Application); + } + + env->CallVoidMethod(javaCallbackRef, javaMethod, Application); +} +CHIPApplicationLauncherClusterHideAppCallback::CHIPApplicationLauncherClusterHideAppCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPApplicationLauncherClusterHideAppCallback::~CHIPApplicationLauncherClusterHideAppCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPApplicationLauncherClusterHideAppCallback::CallbackFn( + void * context, const chip::app::Clusters::ApplicationLauncher::Commands::HideApp::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/Optional;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject Application; + if (!dataResponse.application.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, Application); + } + else + { + jobject ApplicationInsideOptional; + jobject ApplicationInsideOptional_catalogVendorID; + std::string ApplicationInsideOptional_catalogVendorIDClassName = "java/lang/Integer"; + std::string ApplicationInsideOptional_catalogVendorIDCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + ApplicationInsideOptional_catalogVendorIDClassName.c_str(), + ApplicationInsideOptional_catalogVendorIDCtorSignature.c_str(), dataResponse.application.Value().catalogVendorID, + ApplicationInsideOptional_catalogVendorID); + jobject ApplicationInsideOptional_applicationID; + ApplicationInsideOptional_applicationID = + env->NewStringUTF(std::string(dataResponse.application.Value().applicationID.data(), + dataResponse.application.Value().applicationID.size()) + .c_str()); + + jclass applicationStructStructClass_1; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$ApplicationLauncherClusterApplicationStruct", applicationStructStructClass_1); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$ApplicationLauncherClusterApplicationStruct"); + return; + } + jmethodID applicationStructStructCtor_1 = + env->GetMethodID(applicationStructStructClass_1, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); + if (applicationStructStructCtor_1 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$ApplicationLauncherClusterApplicationStruct constructor"); + return; + } + + ApplicationInsideOptional = + env->NewObject(applicationStructStructClass_1, applicationStructStructCtor_1, ApplicationInsideOptional_catalogVendorID, + ApplicationInsideOptional_applicationID); + chip::JniReferences::GetInstance().CreateOptional(ApplicationInsideOptional, Application); + } + + env->CallVoidMethod(javaCallbackRef, javaMethod, Application); +} +CHIPAccountLoginClusterGetSetupPINCallback::CHIPAccountLoginClusterGetSetupPINCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPAccountLoginClusterGetSetupPINCallback::~CHIPAccountLoginClusterGetSetupPINCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPAccountLoginClusterGetSetupPINCallback::CallbackFn( + void * context, const chip::app::Clusters::AccountLogin::Commands::GetSetupPIN::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/String;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject TempAccountIdentifier; + TempAccountIdentifier = env->NewStringUTF( + std::string(dataResponse.tempAccountIdentifier.data(), dataResponse.tempAccountIdentifier.size()).c_str()); + + env->CallVoidMethod(javaCallbackRef, javaMethod, TempAccountIdentifier); +} +CHIPAccountLoginClusterLoginCallback::CHIPAccountLoginClusterLoginCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPAccountLoginClusterLoginCallback::~CHIPAccountLoginClusterLoginCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPAccountLoginClusterLoginCallback::CallbackFn( + void * context, const chip::app::Clusters::AccountLogin::Commands::Login::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/String;Ljava/lang/String;)V", + &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject TempAccountIdentifier; + TempAccountIdentifier = env->NewStringUTF( + std::string(dataResponse.tempAccountIdentifier.data(), dataResponse.tempAccountIdentifier.size()).c_str()); + jobject SetupPIN; + SetupPIN = env->NewStringUTF(std::string(dataResponse.setupPIN.data(), dataResponse.setupPIN.size()).c_str()); + + env->CallVoidMethod(javaCallbackRef, javaMethod, TempAccountIdentifier, SetupPIN); +} +CHIPAccountLoginClusterLogoutCallback::CHIPAccountLoginClusterLogoutCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPAccountLoginClusterLogoutCallback::~CHIPAccountLoginClusterLogoutCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPAccountLoginClusterLogoutCallback::CallbackFn( + void * context, const chip::app::Clusters::AccountLogin::Commands::Logout::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + env->CallVoidMethod(javaCallbackRef, javaMethod); +} +CHIPElectricalMeasurementClusterGetProfileInfoCommandCallback::CHIPElectricalMeasurementClusterGetProfileInfoCommandCallback( + jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPElectricalMeasurementClusterGetProfileInfoCommandCallback::~CHIPElectricalMeasurementClusterGetProfileInfoCommandCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPElectricalMeasurementClusterGetProfileInfoCommandCallback::CallbackFn( + void * context, const chip::app::Clusters::ElectricalMeasurement::Commands::GetProfileInfoCommand::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + env->CallVoidMethod(javaCallbackRef, javaMethod); +} +CHIPElectricalMeasurementClusterGetMeasurementProfileCommandCallback:: + CHIPElectricalMeasurementClusterGetMeasurementProfileCommandCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPElectricalMeasurementClusterGetMeasurementProfileCommandCallback:: + ~CHIPElectricalMeasurementClusterGetMeasurementProfileCommandCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPElectricalMeasurementClusterGetMeasurementProfileCommandCallback::CallbackFn( + void * context, + const chip::app::Clusters::ElectricalMeasurement::Commands::GetMeasurementProfileCommand::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Long;Ljava/lang/Integer;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject attributeId; + std::string attributeIdClassName = "java/lang/Integer"; + std::string attributeIdCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(attributeIdClassName.c_str(), attributeIdCtorSignature.c_str(), + dataResponse.attributeId, attributeId); + jobject startTime; + std::string startTimeClassName = "java/lang/Long"; + std::string startTimeCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(startTimeClassName.c_str(), startTimeCtorSignature.c_str(), + dataResponse.startTime, startTime); + jobject numberOfIntervals; + std::string numberOfIntervalsClassName = "java/lang/Integer"; + std::string numberOfIntervalsCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(numberOfIntervalsClassName.c_str(), + numberOfIntervalsCtorSignature.c_str(), + dataResponse.numberOfIntervals, numberOfIntervals); + + env->CallVoidMethod(javaCallbackRef, javaMethod, attributeId, startTime, numberOfIntervals); +} +CHIPClientMonitoringClusterRegisterClientMonitoringCallback::CHIPClientMonitoringClusterRegisterClientMonitoringCallback( + jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPClientMonitoringClusterRegisterClientMonitoringCallback::~CHIPClientMonitoringClusterRegisterClientMonitoringCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPClientMonitoringClusterRegisterClientMonitoringCallback::CallbackFn( + void * context, const chip::app::Clusters::ClientMonitoring::Commands::RegisterClientMonitoring::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;Ljava/lang/Long;)V", + &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject ClientNodeId; + std::string ClientNodeIdClassName = "java/lang/Long"; + std::string ClientNodeIdCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(ClientNodeIdClassName.c_str(), ClientNodeIdCtorSignature.c_str(), + dataResponse.clientNodeId, ClientNodeId); + jobject ICid; + std::string ICidClassName = "java/lang/Long"; + std::string ICidCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(ICidClassName.c_str(), ICidCtorSignature.c_str(), + dataResponse.ICid, ICid); + + env->CallVoidMethod(javaCallbackRef, javaMethod, ClientNodeId, ICid); +} +CHIPClientMonitoringClusterUnregisterClientMonitoringCallback::CHIPClientMonitoringClusterUnregisterClientMonitoringCallback( + jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPClientMonitoringClusterUnregisterClientMonitoringCallback::~CHIPClientMonitoringClusterUnregisterClientMonitoringCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPClientMonitoringClusterUnregisterClientMonitoringCallback::CallbackFn( + void * context, const chip::app::Clusters::ClientMonitoring::Commands::UnregisterClientMonitoring::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;Ljava/lang/Long;)V", + &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject ClientNodeId; + std::string ClientNodeIdClassName = "java/lang/Long"; + std::string ClientNodeIdCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(ClientNodeIdClassName.c_str(), ClientNodeIdCtorSignature.c_str(), + dataResponse.clientNodeId, ClientNodeId); + jobject ICid; + std::string ICidClassName = "java/lang/Long"; + std::string ICidCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(ICidClassName.c_str(), ICidCtorSignature.c_str(), + dataResponse.ICid, ICid); + + env->CallVoidMethod(javaCallbackRef, javaMethod, ClientNodeId, ICid); +} +CHIPClientMonitoringClusterStayAwakeRequestCallback::CHIPClientMonitoringClusterStayAwakeRequestCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPClientMonitoringClusterStayAwakeRequestCallback::~CHIPClientMonitoringClusterStayAwakeRequestCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPClientMonitoringClusterStayAwakeRequestCallback::CallbackFn( + void * context, const chip::app::Clusters::ClientMonitoring::Commands::StayAwakeRequest::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + env->CallVoidMethod(javaCallbackRef, javaMethod); +} +CHIPUnitTestingClusterTestCallback::CHIPUnitTestingClusterTestCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPUnitTestingClusterTestCallback::~CHIPUnitTestingClusterTestCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPUnitTestingClusterTestCallback::CallbackFn( + void * context, const chip::app::Clusters::UnitTesting::Commands::Test::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + env->CallVoidMethod(javaCallbackRef, javaMethod); +} +CHIPUnitTestingClusterTestNotHandledCallback::CHIPUnitTestingClusterTestNotHandledCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPUnitTestingClusterTestNotHandledCallback::~CHIPUnitTestingClusterTestNotHandledCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPUnitTestingClusterTestNotHandledCallback::CallbackFn( + void * context, const chip::app::Clusters::UnitTesting::Commands::TestNotHandled::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + env->CallVoidMethod(javaCallbackRef, javaMethod); +} +CHIPUnitTestingClusterTestSpecificCallback::CHIPUnitTestingClusterTestSpecificCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPUnitTestingClusterTestSpecificCallback::~CHIPUnitTestingClusterTestSpecificCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPUnitTestingClusterTestSpecificCallback::CallbackFn( + void * context, const chip::app::Clusters::UnitTesting::Commands::TestSpecific::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + env->CallVoidMethod(javaCallbackRef, javaMethod); +} +CHIPUnitTestingClusterTestUnknownCommandCallback::CHIPUnitTestingClusterTestUnknownCommandCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPUnitTestingClusterTestUnknownCommandCallback::~CHIPUnitTestingClusterTestUnknownCommandCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPUnitTestingClusterTestUnknownCommandCallback::CallbackFn( + void * context, const chip::app::Clusters::UnitTesting::Commands::TestUnknownCommand::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + env->CallVoidMethod(javaCallbackRef, javaMethod); +} +CHIPUnitTestingClusterTestAddArgumentsCallback::CHIPUnitTestingClusterTestAddArgumentsCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPUnitTestingClusterTestAddArgumentsCallback::~CHIPUnitTestingClusterTestAddArgumentsCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPUnitTestingClusterTestAddArgumentsCallback::CallbackFn( + void * context, const chip::app::Clusters::UnitTesting::Commands::TestAddArguments::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;)V", + &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject arg1; + std::string arg1ClassName = "java/lang/Integer"; + std::string arg1CtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(arg1ClassName.c_str(), arg1CtorSignature.c_str(), + dataResponse.arg1, arg1); + jobject arg2; + std::string arg2ClassName = "java/lang/Integer"; + std::string arg2CtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(arg2ClassName.c_str(), arg2CtorSignature.c_str(), + dataResponse.arg2, arg2); + + env->CallVoidMethod(javaCallbackRef, javaMethod, arg1, arg2); +} +CHIPUnitTestingClusterTestSimpleArgumentRequestCallback::CHIPUnitTestingClusterTestSimpleArgumentRequestCallback( + jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPUnitTestingClusterTestSimpleArgumentRequestCallback::~CHIPUnitTestingClusterTestSimpleArgumentRequestCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPUnitTestingClusterTestSimpleArgumentRequestCallback::CallbackFn( + void * context, const chip::app::Clusters::UnitTesting::Commands::TestSimpleArgumentRequest::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Boolean;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject arg1; + std::string arg1ClassName = "java/lang/Boolean"; + std::string arg1CtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(arg1ClassName.c_str(), arg1CtorSignature.c_str(), dataResponse.arg1, + arg1); + + env->CallVoidMethod(javaCallbackRef, javaMethod, arg1); +} +CHIPUnitTestingClusterTestStructArrayArgumentRequestCallback::CHIPUnitTestingClusterTestStructArrayArgumentRequestCallback( + jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPUnitTestingClusterTestStructArrayArgumentRequestCallback::~CHIPUnitTestingClusterTestStructArrayArgumentRequestCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPUnitTestingClusterTestStructArrayArgumentRequestCallback::CallbackFn( + void * context, const chip::app::Clusters::UnitTesting::Commands::TestStructArrayArgumentRequest::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", + "(Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/" + "ArrayList;Ljava/lang/Integer;Ljava/lang/Boolean;)V", + &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject arg1; + chip::JniReferences::GetInstance().CreateArrayList(arg1); + + auto iter_arg1_0 = dataResponse.arg1.begin(); + while (iter_arg1_0.Next()) + { + auto & entry_0 = iter_arg1_0.GetValue(); + jobject newElement_0; + jobject newElement_0_a; + std::string newElement_0_aClassName = "java/lang/Integer"; + std::string newElement_0_aCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_0_aClassName.c_str(), newElement_0_aCtorSignature.c_str(), entry_0.a, newElement_0_a); + jobject newElement_0_b; + std::string newElement_0_bClassName = "java/lang/Boolean"; + std::string newElement_0_bCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0_bClassName.c_str(), + newElement_0_bCtorSignature.c_str(), entry_0.b, newElement_0_b); + jobject newElement_0_c; + jobject newElement_0_c_a; + std::string newElement_0_c_aClassName = "java/lang/Integer"; + std::string newElement_0_c_aCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_0_c_aClassName.c_str(), newElement_0_c_aCtorSignature.c_str(), entry_0.c.a, newElement_0_c_a); + jobject newElement_0_c_b; + std::string newElement_0_c_bClassName = "java/lang/Boolean"; + std::string newElement_0_c_bCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_0_c_bClassName.c_str(), newElement_0_c_bCtorSignature.c_str(), entry_0.c.b, newElement_0_c_b); + jobject newElement_0_c_c; + std::string newElement_0_c_cClassName = "java/lang/Integer"; + std::string newElement_0_c_cCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0_c_cClassName.c_str(), + newElement_0_c_cCtorSignature.c_str(), + static_cast(entry_0.c.c), newElement_0_c_c); + jobject newElement_0_c_d; + jbyteArray newElement_0_c_dByteArray = env->NewByteArray(static_cast(entry_0.c.d.size())); + env->SetByteArrayRegion(newElement_0_c_dByteArray, 0, static_cast(entry_0.c.d.size()), + reinterpret_cast(entry_0.c.d.data())); + newElement_0_c_d = newElement_0_c_dByteArray; + jobject newElement_0_c_e; + newElement_0_c_e = env->NewStringUTF(std::string(entry_0.c.e.data(), entry_0.c.e.size()).c_str()); + jobject newElement_0_c_f; + std::string newElement_0_c_fClassName = "java/lang/Integer"; + std::string newElement_0_c_fCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_0_c_fClassName.c_str(), newElement_0_c_fCtorSignature.c_str(), entry_0.c.f.Raw(), newElement_0_c_f); + jobject newElement_0_c_g; + std::string newElement_0_c_gClassName = "java/lang/Float"; + std::string newElement_0_c_gCtorSignature = "(F)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_0_c_gClassName.c_str(), newElement_0_c_gCtorSignature.c_str(), entry_0.c.g, newElement_0_c_g); + jobject newElement_0_c_h; + std::string newElement_0_c_hClassName = "java/lang/Double"; + std::string newElement_0_c_hCtorSignature = "(D)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_0_c_hClassName.c_str(), newElement_0_c_hCtorSignature.c_str(), entry_0.c.h, newElement_0_c_h); + + jclass simpleStructStructClass_2; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$UnitTestingClusterSimpleStruct", simpleStructStructClass_2); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$UnitTestingClusterSimpleStruct"); + return; + } + jmethodID simpleStructStructCtor_2 = + env->GetMethodID(simpleStructStructClass_2, "", + "(Ljava/lang/Integer;Ljava/lang/Boolean;Ljava/lang/Integer;[BLjava/lang/String;Ljava/lang/" + "Integer;Ljava/lang/Float;Ljava/lang/Double;)V"); + if (simpleStructStructCtor_2 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$UnitTestingClusterSimpleStruct constructor"); + return; + } + + newElement_0_c = env->NewObject(simpleStructStructClass_2, simpleStructStructCtor_2, newElement_0_c_a, newElement_0_c_b, + newElement_0_c_c, newElement_0_c_d, newElement_0_c_e, newElement_0_c_f, newElement_0_c_g, + newElement_0_c_h); + jobject newElement_0_d; + chip::JniReferences::GetInstance().CreateArrayList(newElement_0_d); + + auto iter_newElement_0_d_2 = entry_0.d.begin(); + while (iter_newElement_0_d_2.Next()) + { + auto & entry_2 = iter_newElement_0_d_2.GetValue(); + jobject newElement_2; + jobject newElement_2_a; + std::string newElement_2_aClassName = "java/lang/Integer"; + std::string newElement_2_aCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_2_aClassName.c_str(), newElement_2_aCtorSignature.c_str(), entry_2.a, newElement_2_a); + jobject newElement_2_b; + std::string newElement_2_bClassName = "java/lang/Boolean"; + std::string newElement_2_bCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_2_bClassName.c_str(), newElement_2_bCtorSignature.c_str(), entry_2.b, newElement_2_b); + jobject newElement_2_c; + std::string newElement_2_cClassName = "java/lang/Integer"; + std::string newElement_2_cCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_2_cClassName.c_str(), + newElement_2_cCtorSignature.c_str(), + static_cast(entry_2.c), newElement_2_c); + jobject newElement_2_d; + jbyteArray newElement_2_dByteArray = env->NewByteArray(static_cast(entry_2.d.size())); + env->SetByteArrayRegion(newElement_2_dByteArray, 0, static_cast(entry_2.d.size()), + reinterpret_cast(entry_2.d.data())); + newElement_2_d = newElement_2_dByteArray; + jobject newElement_2_e; + newElement_2_e = env->NewStringUTF(std::string(entry_2.e.data(), entry_2.e.size()).c_str()); + jobject newElement_2_f; + std::string newElement_2_fClassName = "java/lang/Integer"; + std::string newElement_2_fCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_2_fClassName.c_str(), newElement_2_fCtorSignature.c_str(), entry_2.f.Raw(), newElement_2_f); + jobject newElement_2_g; + std::string newElement_2_gClassName = "java/lang/Float"; + std::string newElement_2_gCtorSignature = "(F)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_2_gClassName.c_str(), newElement_2_gCtorSignature.c_str(), entry_2.g, newElement_2_g); + jobject newElement_2_h; + std::string newElement_2_hClassName = "java/lang/Double"; + std::string newElement_2_hCtorSignature = "(D)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_2_hClassName.c_str(), newElement_2_hCtorSignature.c_str(), entry_2.h, newElement_2_h); + + jclass simpleStructStructClass_3; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$UnitTestingClusterSimpleStruct", simpleStructStructClass_3); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$UnitTestingClusterSimpleStruct"); + return; + } + jmethodID simpleStructStructCtor_3 = + env->GetMethodID(simpleStructStructClass_3, "", + "(Ljava/lang/Integer;Ljava/lang/Boolean;Ljava/lang/Integer;[BLjava/lang/String;Ljava/lang/" + "Integer;Ljava/lang/Float;Ljava/lang/Double;)V"); + if (simpleStructStructCtor_3 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$UnitTestingClusterSimpleStruct constructor"); + return; + } + + newElement_2 = + env->NewObject(simpleStructStructClass_3, simpleStructStructCtor_3, newElement_2_a, newElement_2_b, newElement_2_c, + newElement_2_d, newElement_2_e, newElement_2_f, newElement_2_g, newElement_2_h); + chip::JniReferences::GetInstance().AddToList(newElement_0_d, newElement_2); + } + jobject newElement_0_e; + chip::JniReferences::GetInstance().CreateArrayList(newElement_0_e); + + auto iter_newElement_0_e_2 = entry_0.e.begin(); + while (iter_newElement_0_e_2.Next()) + { + auto & entry_2 = iter_newElement_0_e_2.GetValue(); + jobject newElement_2; + std::string newElement_2ClassName = "java/lang/Long"; + std::string newElement_2CtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_2ClassName.c_str(), newElement_2CtorSignature.c_str(), entry_2, newElement_2); + chip::JniReferences::GetInstance().AddToList(newElement_0_e, newElement_2); + } + jobject newElement_0_f; + chip::JniReferences::GetInstance().CreateArrayList(newElement_0_f); + + auto iter_newElement_0_f_2 = entry_0.f.begin(); + while (iter_newElement_0_f_2.Next()) + { + auto & entry_2 = iter_newElement_0_f_2.GetValue(); + jobject newElement_2; + jbyteArray newElement_2ByteArray = env->NewByteArray(static_cast(entry_2.size())); + env->SetByteArrayRegion(newElement_2ByteArray, 0, static_cast(entry_2.size()), + reinterpret_cast(entry_2.data())); + newElement_2 = newElement_2ByteArray; + chip::JniReferences::GetInstance().AddToList(newElement_0_f, newElement_2); + } + jobject newElement_0_g; + chip::JniReferences::GetInstance().CreateArrayList(newElement_0_g); + + auto iter_newElement_0_g_2 = entry_0.g.begin(); + while (iter_newElement_0_g_2.Next()) + { + auto & entry_2 = iter_newElement_0_g_2.GetValue(); + jobject newElement_2; + std::string newElement_2ClassName = "java/lang/Integer"; + std::string newElement_2CtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_2ClassName.c_str(), + newElement_2CtorSignature.c_str(), entry_2, newElement_2); + chip::JniReferences::GetInstance().AddToList(newElement_0_g, newElement_2); + } + + jclass nestedStructListStructClass_1; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$UnitTestingClusterNestedStructList", nestedStructListStructClass_1); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$UnitTestingClusterNestedStructList"); + return; + } + jmethodID nestedStructListStructCtor_1 = env->GetMethodID( + nestedStructListStructClass_1, "", + "(Ljava/lang/Integer;Ljava/lang/Boolean;Lchip/devicecontroller/ChipStructs$UnitTestingClusterSimpleStruct;Ljava/util/" + "ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;)V"); + if (nestedStructListStructCtor_1 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$UnitTestingClusterNestedStructList constructor"); + return; + } + + newElement_0 = env->NewObject(nestedStructListStructClass_1, nestedStructListStructCtor_1, newElement_0_a, newElement_0_b, + newElement_0_c, newElement_0_d, newElement_0_e, newElement_0_f, newElement_0_g); + chip::JniReferences::GetInstance().AddToList(arg1, newElement_0); + } + jobject arg2; + chip::JniReferences::GetInstance().CreateArrayList(arg2); + + auto iter_arg2_0 = dataResponse.arg2.begin(); + while (iter_arg2_0.Next()) + { + auto & entry_0 = iter_arg2_0.GetValue(); + jobject newElement_0; + jobject newElement_0_a; + std::string newElement_0_aClassName = "java/lang/Integer"; + std::string newElement_0_aCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_0_aClassName.c_str(), newElement_0_aCtorSignature.c_str(), entry_0.a, newElement_0_a); + jobject newElement_0_b; + std::string newElement_0_bClassName = "java/lang/Boolean"; + std::string newElement_0_bCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0_bClassName.c_str(), + newElement_0_bCtorSignature.c_str(), entry_0.b, newElement_0_b); + jobject newElement_0_c; + std::string newElement_0_cClassName = "java/lang/Integer"; + std::string newElement_0_cCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_0_cClassName.c_str(), newElement_0_cCtorSignature.c_str(), static_cast(entry_0.c), newElement_0_c); + jobject newElement_0_d; + jbyteArray newElement_0_dByteArray = env->NewByteArray(static_cast(entry_0.d.size())); + env->SetByteArrayRegion(newElement_0_dByteArray, 0, static_cast(entry_0.d.size()), + reinterpret_cast(entry_0.d.data())); + newElement_0_d = newElement_0_dByteArray; + jobject newElement_0_e; + newElement_0_e = env->NewStringUTF(std::string(entry_0.e.data(), entry_0.e.size()).c_str()); + jobject newElement_0_f; + std::string newElement_0_fClassName = "java/lang/Integer"; + std::string newElement_0_fCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_0_fClassName.c_str(), newElement_0_fCtorSignature.c_str(), entry_0.f.Raw(), newElement_0_f); + jobject newElement_0_g; + std::string newElement_0_gClassName = "java/lang/Float"; + std::string newElement_0_gCtorSignature = "(F)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0_gClassName.c_str(), + newElement_0_gCtorSignature.c_str(), entry_0.g, newElement_0_g); + jobject newElement_0_h; + std::string newElement_0_hClassName = "java/lang/Double"; + std::string newElement_0_hCtorSignature = "(D)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_0_hClassName.c_str(), newElement_0_hCtorSignature.c_str(), entry_0.h, newElement_0_h); + + jclass simpleStructStructClass_1; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$UnitTestingClusterSimpleStruct", simpleStructStructClass_1); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$UnitTestingClusterSimpleStruct"); + return; + } + jmethodID simpleStructStructCtor_1 = + env->GetMethodID(simpleStructStructClass_1, "", + "(Ljava/lang/Integer;Ljava/lang/Boolean;Ljava/lang/Integer;[BLjava/lang/String;Ljava/lang/" + "Integer;Ljava/lang/Float;Ljava/lang/Double;)V"); + if (simpleStructStructCtor_1 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$UnitTestingClusterSimpleStruct constructor"); + return; + } + + newElement_0 = + env->NewObject(simpleStructStructClass_1, simpleStructStructCtor_1, newElement_0_a, newElement_0_b, newElement_0_c, + newElement_0_d, newElement_0_e, newElement_0_f, newElement_0_g, newElement_0_h); + chip::JniReferences::GetInstance().AddToList(arg2, newElement_0); + } + jobject arg3; + chip::JniReferences::GetInstance().CreateArrayList(arg3); + + auto iter_arg3_0 = dataResponse.arg3.begin(); + while (iter_arg3_0.Next()) + { + auto & entry_0 = iter_arg3_0.GetValue(); + jobject newElement_0; + std::string newElement_0ClassName = "java/lang/Integer"; + std::string newElement_0CtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), static_cast(entry_0), newElement_0); + chip::JniReferences::GetInstance().AddToList(arg3, newElement_0); + } + jobject arg4; + chip::JniReferences::GetInstance().CreateArrayList(arg4); + + auto iter_arg4_0 = dataResponse.arg4.begin(); + while (iter_arg4_0.Next()) + { + auto & entry_0 = iter_arg4_0.GetValue(); + jobject newElement_0; + std::string newElement_0ClassName = "java/lang/Boolean"; + std::string newElement_0CtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), + entry_0, newElement_0); + chip::JniReferences::GetInstance().AddToList(arg4, newElement_0); + } + jobject arg5; + std::string arg5ClassName = "java/lang/Integer"; + std::string arg5CtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(arg5ClassName.c_str(), arg5CtorSignature.c_str(), + static_cast(dataResponse.arg5), arg5); + jobject arg6; + std::string arg6ClassName = "java/lang/Boolean"; + std::string arg6CtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(arg6ClassName.c_str(), arg6CtorSignature.c_str(), dataResponse.arg6, + arg6); + + env->CallVoidMethod(javaCallbackRef, javaMethod, arg1, arg2, arg3, arg4, arg5, arg6); +} +CHIPUnitTestingClusterTestStructArgumentRequestCallback::CHIPUnitTestingClusterTestStructArgumentRequestCallback( + jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPUnitTestingClusterTestStructArgumentRequestCallback::~CHIPUnitTestingClusterTestStructArgumentRequestCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPUnitTestingClusterTestStructArgumentRequestCallback::CallbackFn( + void * context, const chip::app::Clusters::UnitTesting::Commands::TestStructArgumentRequest::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod( + env, javaCallbackRef, "onSuccess", "(Lchip/devicecontroller/ChipStructs$UnitTestingClusterSimpleStruct;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject arg1; + jobject arg1_a; + std::string arg1_aClassName = "java/lang/Integer"; + std::string arg1_aCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(arg1_aClassName.c_str(), arg1_aCtorSignature.c_str(), + dataResponse.arg1.a, arg1_a); + jobject arg1_b; + std::string arg1_bClassName = "java/lang/Boolean"; + std::string arg1_bCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(arg1_bClassName.c_str(), arg1_bCtorSignature.c_str(), + dataResponse.arg1.b, arg1_b); + jobject arg1_c; + std::string arg1_cClassName = "java/lang/Integer"; + std::string arg1_cCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(arg1_cClassName.c_str(), arg1_cCtorSignature.c_str(), + static_cast(dataResponse.arg1.c), arg1_c); + jobject arg1_d; + jbyteArray arg1_dByteArray = env->NewByteArray(static_cast(dataResponse.arg1.d.size())); + env->SetByteArrayRegion(arg1_dByteArray, 0, static_cast(dataResponse.arg1.d.size()), + reinterpret_cast(dataResponse.arg1.d.data())); + arg1_d = arg1_dByteArray; + jobject arg1_e; + arg1_e = env->NewStringUTF(std::string(dataResponse.arg1.e.data(), dataResponse.arg1.e.size()).c_str()); + jobject arg1_f; + std::string arg1_fClassName = "java/lang/Integer"; + std::string arg1_fCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(arg1_fClassName.c_str(), arg1_fCtorSignature.c_str(), + dataResponse.arg1.f.Raw(), arg1_f); + jobject arg1_g; + std::string arg1_gClassName = "java/lang/Float"; + std::string arg1_gCtorSignature = "(F)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(arg1_gClassName.c_str(), arg1_gCtorSignature.c_str(), + dataResponse.arg1.g, arg1_g); + jobject arg1_h; + std::string arg1_hClassName = "java/lang/Double"; + std::string arg1_hCtorSignature = "(D)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(arg1_hClassName.c_str(), arg1_hCtorSignature.c_str(), + dataResponse.arg1.h, arg1_h); + + jclass simpleStructStructClass_0; + err = chip::JniReferences::GetInstance().GetClassRef(env, "chip/devicecontroller/ChipStructs$UnitTestingClusterSimpleStruct", + simpleStructStructClass_0); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$UnitTestingClusterSimpleStruct"); + return; + } + jmethodID simpleStructStructCtor_0 = env->GetMethodID(simpleStructStructClass_0, "", + "(Ljava/lang/Integer;Ljava/lang/Boolean;Ljava/lang/Integer;[BLjava/lang/" + "String;Ljava/lang/Integer;Ljava/lang/Float;Ljava/lang/Double;)V"); + if (simpleStructStructCtor_0 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$UnitTestingClusterSimpleStruct constructor"); + return; + } + + arg1 = env->NewObject(simpleStructStructClass_0, simpleStructStructCtor_0, arg1_a, arg1_b, arg1_c, arg1_d, arg1_e, arg1_f, + arg1_g, arg1_h); + + env->CallVoidMethod(javaCallbackRef, javaMethod, arg1); +} +CHIPUnitTestingClusterTestNestedStructArgumentRequestCallback::CHIPUnitTestingClusterTestNestedStructArgumentRequestCallback( + jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPUnitTestingClusterTestNestedStructArgumentRequestCallback::~CHIPUnitTestingClusterTestNestedStructArgumentRequestCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPUnitTestingClusterTestNestedStructArgumentRequestCallback::CallbackFn( + void * context, const chip::app::Clusters::UnitTesting::Commands::TestNestedStructArgumentRequest::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod( + env, javaCallbackRef, "onSuccess", "(Lchip/devicecontroller/ChipStructs$UnitTestingClusterNestedStruct;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject arg1; + jobject arg1_a; + std::string arg1_aClassName = "java/lang/Integer"; + std::string arg1_aCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(arg1_aClassName.c_str(), arg1_aCtorSignature.c_str(), + dataResponse.arg1.a, arg1_a); + jobject arg1_b; + std::string arg1_bClassName = "java/lang/Boolean"; + std::string arg1_bCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(arg1_bClassName.c_str(), arg1_bCtorSignature.c_str(), + dataResponse.arg1.b, arg1_b); + jobject arg1_c; + jobject arg1_c_a; + std::string arg1_c_aClassName = "java/lang/Integer"; + std::string arg1_c_aCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(arg1_c_aClassName.c_str(), arg1_c_aCtorSignature.c_str(), + dataResponse.arg1.c.a, arg1_c_a); + jobject arg1_c_b; + std::string arg1_c_bClassName = "java/lang/Boolean"; + std::string arg1_c_bCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(arg1_c_bClassName.c_str(), arg1_c_bCtorSignature.c_str(), + dataResponse.arg1.c.b, arg1_c_b); + jobject arg1_c_c; + std::string arg1_c_cClassName = "java/lang/Integer"; + std::string arg1_c_cCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(arg1_c_cClassName.c_str(), arg1_c_cCtorSignature.c_str(), + static_cast(dataResponse.arg1.c.c), arg1_c_c); + jobject arg1_c_d; + jbyteArray arg1_c_dByteArray = env->NewByteArray(static_cast(dataResponse.arg1.c.d.size())); + env->SetByteArrayRegion(arg1_c_dByteArray, 0, static_cast(dataResponse.arg1.c.d.size()), + reinterpret_cast(dataResponse.arg1.c.d.data())); + arg1_c_d = arg1_c_dByteArray; + jobject arg1_c_e; + arg1_c_e = env->NewStringUTF(std::string(dataResponse.arg1.c.e.data(), dataResponse.arg1.c.e.size()).c_str()); + jobject arg1_c_f; + std::string arg1_c_fClassName = "java/lang/Integer"; + std::string arg1_c_fCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(arg1_c_fClassName.c_str(), arg1_c_fCtorSignature.c_str(), + dataResponse.arg1.c.f.Raw(), arg1_c_f); + jobject arg1_c_g; + std::string arg1_c_gClassName = "java/lang/Float"; + std::string arg1_c_gCtorSignature = "(F)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(arg1_c_gClassName.c_str(), arg1_c_gCtorSignature.c_str(), + dataResponse.arg1.c.g, arg1_c_g); + jobject arg1_c_h; + std::string arg1_c_hClassName = "java/lang/Double"; + std::string arg1_c_hCtorSignature = "(D)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(arg1_c_hClassName.c_str(), arg1_c_hCtorSignature.c_str(), + dataResponse.arg1.c.h, arg1_c_h); + + jclass simpleStructStructClass_1; + err = chip::JniReferences::GetInstance().GetClassRef(env, "chip/devicecontroller/ChipStructs$UnitTestingClusterSimpleStruct", + simpleStructStructClass_1); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$UnitTestingClusterSimpleStruct"); + return; + } + jmethodID simpleStructStructCtor_1 = env->GetMethodID(simpleStructStructClass_1, "", + "(Ljava/lang/Integer;Ljava/lang/Boolean;Ljava/lang/Integer;[BLjava/lang/" + "String;Ljava/lang/Integer;Ljava/lang/Float;Ljava/lang/Double;)V"); + if (simpleStructStructCtor_1 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$UnitTestingClusterSimpleStruct constructor"); + return; + } + + arg1_c = env->NewObject(simpleStructStructClass_1, simpleStructStructCtor_1, arg1_c_a, arg1_c_b, arg1_c_c, arg1_c_d, arg1_c_e, + arg1_c_f, arg1_c_g, arg1_c_h); + + jclass nestedStructStructClass_0; + err = chip::JniReferences::GetInstance().GetClassRef(env, "chip/devicecontroller/ChipStructs$UnitTestingClusterNestedStruct", + nestedStructStructClass_0); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$UnitTestingClusterNestedStruct"); + return; + } + jmethodID nestedStructStructCtor_0 = env->GetMethodID( + nestedStructStructClass_0, "", + "(Ljava/lang/Integer;Ljava/lang/Boolean;Lchip/devicecontroller/ChipStructs$UnitTestingClusterSimpleStruct;)V"); + if (nestedStructStructCtor_0 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$UnitTestingClusterNestedStruct constructor"); + return; + } + + arg1 = env->NewObject(nestedStructStructClass_0, nestedStructStructCtor_0, arg1_a, arg1_b, arg1_c); + + env->CallVoidMethod(javaCallbackRef, javaMethod, arg1); +} +CHIPUnitTestingClusterTestListStructArgumentRequestCallback::CHIPUnitTestingClusterTestListStructArgumentRequestCallback( + jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPUnitTestingClusterTestListStructArgumentRequestCallback::~CHIPUnitTestingClusterTestListStructArgumentRequestCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPUnitTestingClusterTestListStructArgumentRequestCallback::CallbackFn( + void * context, const chip::app::Clusters::UnitTesting::Commands::TestListStructArgumentRequest::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/ArrayList;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject arg1; + chip::JniReferences::GetInstance().CreateArrayList(arg1); + + auto iter_arg1_0 = dataResponse.arg1.begin(); + while (iter_arg1_0.Next()) + { + auto & entry_0 = iter_arg1_0.GetValue(); + jobject newElement_0; + jobject newElement_0_a; + std::string newElement_0_aClassName = "java/lang/Integer"; + std::string newElement_0_aCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_0_aClassName.c_str(), newElement_0_aCtorSignature.c_str(), entry_0.a, newElement_0_a); + jobject newElement_0_b; + std::string newElement_0_bClassName = "java/lang/Boolean"; + std::string newElement_0_bCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0_bClassName.c_str(), + newElement_0_bCtorSignature.c_str(), entry_0.b, newElement_0_b); + jobject newElement_0_c; + std::string newElement_0_cClassName = "java/lang/Integer"; + std::string newElement_0_cCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_0_cClassName.c_str(), newElement_0_cCtorSignature.c_str(), static_cast(entry_0.c), newElement_0_c); + jobject newElement_0_d; + jbyteArray newElement_0_dByteArray = env->NewByteArray(static_cast(entry_0.d.size())); + env->SetByteArrayRegion(newElement_0_dByteArray, 0, static_cast(entry_0.d.size()), + reinterpret_cast(entry_0.d.data())); + newElement_0_d = newElement_0_dByteArray; + jobject newElement_0_e; + newElement_0_e = env->NewStringUTF(std::string(entry_0.e.data(), entry_0.e.size()).c_str()); + jobject newElement_0_f; + std::string newElement_0_fClassName = "java/lang/Integer"; + std::string newElement_0_fCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_0_fClassName.c_str(), newElement_0_fCtorSignature.c_str(), entry_0.f.Raw(), newElement_0_f); + jobject newElement_0_g; + std::string newElement_0_gClassName = "java/lang/Float"; + std::string newElement_0_gCtorSignature = "(F)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0_gClassName.c_str(), + newElement_0_gCtorSignature.c_str(), entry_0.g, newElement_0_g); + jobject newElement_0_h; + std::string newElement_0_hClassName = "java/lang/Double"; + std::string newElement_0_hCtorSignature = "(D)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_0_hClassName.c_str(), newElement_0_hCtorSignature.c_str(), entry_0.h, newElement_0_h); + + jclass simpleStructStructClass_1; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$UnitTestingClusterSimpleStruct", simpleStructStructClass_1); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$UnitTestingClusterSimpleStruct"); + return; + } + jmethodID simpleStructStructCtor_1 = + env->GetMethodID(simpleStructStructClass_1, "", + "(Ljava/lang/Integer;Ljava/lang/Boolean;Ljava/lang/Integer;[BLjava/lang/String;Ljava/lang/" + "Integer;Ljava/lang/Float;Ljava/lang/Double;)V"); + if (simpleStructStructCtor_1 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$UnitTestingClusterSimpleStruct constructor"); + return; + } + + newElement_0 = + env->NewObject(simpleStructStructClass_1, simpleStructStructCtor_1, newElement_0_a, newElement_0_b, newElement_0_c, + newElement_0_d, newElement_0_e, newElement_0_f, newElement_0_g, newElement_0_h); + chip::JniReferences::GetInstance().AddToList(arg1, newElement_0); + } + + env->CallVoidMethod(javaCallbackRef, javaMethod, arg1); +} +CHIPUnitTestingClusterTestListInt8UArgumentRequestCallback::CHIPUnitTestingClusterTestListInt8UArgumentRequestCallback( + jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPUnitTestingClusterTestListInt8UArgumentRequestCallback::~CHIPUnitTestingClusterTestListInt8UArgumentRequestCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPUnitTestingClusterTestListInt8UArgumentRequestCallback::CallbackFn( + void * context, const chip::app::Clusters::UnitTesting::Commands::TestListInt8UArgumentRequest::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/ArrayList;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject arg1; + chip::JniReferences::GetInstance().CreateArrayList(arg1); + + auto iter_arg1_0 = dataResponse.arg1.begin(); + while (iter_arg1_0.Next()) + { + auto & entry_0 = iter_arg1_0.GetValue(); + jobject newElement_0; + std::string newElement_0ClassName = "java/lang/Integer"; + std::string newElement_0CtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0ClassName.c_str(), + newElement_0CtorSignature.c_str(), entry_0, newElement_0); + chip::JniReferences::GetInstance().AddToList(arg1, newElement_0); + } + + env->CallVoidMethod(javaCallbackRef, javaMethod, arg1); +} +CHIPUnitTestingClusterTestNestedStructListArgumentRequestCallback:: + CHIPUnitTestingClusterTestNestedStructListArgumentRequestCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPUnitTestingClusterTestNestedStructListArgumentRequestCallback:: + ~CHIPUnitTestingClusterTestNestedStructListArgumentRequestCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPUnitTestingClusterTestNestedStructListArgumentRequestCallback::CallbackFn( + void * context, + const chip::app::Clusters::UnitTesting::Commands::TestNestedStructListArgumentRequest::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", + "(Lchip/devicecontroller/ChipStructs$UnitTestingClusterNestedStructList;)V", + &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject arg1; + jobject arg1_a; + std::string arg1_aClassName = "java/lang/Integer"; + std::string arg1_aCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(arg1_aClassName.c_str(), arg1_aCtorSignature.c_str(), + dataResponse.arg1.a, arg1_a); + jobject arg1_b; + std::string arg1_bClassName = "java/lang/Boolean"; + std::string arg1_bCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(arg1_bClassName.c_str(), arg1_bCtorSignature.c_str(), + dataResponse.arg1.b, arg1_b); + jobject arg1_c; + jobject arg1_c_a; + std::string arg1_c_aClassName = "java/lang/Integer"; + std::string arg1_c_aCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(arg1_c_aClassName.c_str(), arg1_c_aCtorSignature.c_str(), + dataResponse.arg1.c.a, arg1_c_a); + jobject arg1_c_b; + std::string arg1_c_bClassName = "java/lang/Boolean"; + std::string arg1_c_bCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(arg1_c_bClassName.c_str(), arg1_c_bCtorSignature.c_str(), + dataResponse.arg1.c.b, arg1_c_b); + jobject arg1_c_c; + std::string arg1_c_cClassName = "java/lang/Integer"; + std::string arg1_c_cCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(arg1_c_cClassName.c_str(), arg1_c_cCtorSignature.c_str(), + static_cast(dataResponse.arg1.c.c), arg1_c_c); + jobject arg1_c_d; + jbyteArray arg1_c_dByteArray = env->NewByteArray(static_cast(dataResponse.arg1.c.d.size())); + env->SetByteArrayRegion(arg1_c_dByteArray, 0, static_cast(dataResponse.arg1.c.d.size()), + reinterpret_cast(dataResponse.arg1.c.d.data())); + arg1_c_d = arg1_c_dByteArray; + jobject arg1_c_e; + arg1_c_e = env->NewStringUTF(std::string(dataResponse.arg1.c.e.data(), dataResponse.arg1.c.e.size()).c_str()); + jobject arg1_c_f; + std::string arg1_c_fClassName = "java/lang/Integer"; + std::string arg1_c_fCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(arg1_c_fClassName.c_str(), arg1_c_fCtorSignature.c_str(), + dataResponse.arg1.c.f.Raw(), arg1_c_f); + jobject arg1_c_g; + std::string arg1_c_gClassName = "java/lang/Float"; + std::string arg1_c_gCtorSignature = "(F)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(arg1_c_gClassName.c_str(), arg1_c_gCtorSignature.c_str(), + dataResponse.arg1.c.g, arg1_c_g); + jobject arg1_c_h; + std::string arg1_c_hClassName = "java/lang/Double"; + std::string arg1_c_hCtorSignature = "(D)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(arg1_c_hClassName.c_str(), arg1_c_hCtorSignature.c_str(), + dataResponse.arg1.c.h, arg1_c_h); + + jclass simpleStructStructClass_1; + err = chip::JniReferences::GetInstance().GetClassRef(env, "chip/devicecontroller/ChipStructs$UnitTestingClusterSimpleStruct", + simpleStructStructClass_1); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$UnitTestingClusterSimpleStruct"); + return; + } + jmethodID simpleStructStructCtor_1 = env->GetMethodID(simpleStructStructClass_1, "", + "(Ljava/lang/Integer;Ljava/lang/Boolean;Ljava/lang/Integer;[BLjava/lang/" + "String;Ljava/lang/Integer;Ljava/lang/Float;Ljava/lang/Double;)V"); + if (simpleStructStructCtor_1 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$UnitTestingClusterSimpleStruct constructor"); + return; + } + + arg1_c = env->NewObject(simpleStructStructClass_1, simpleStructStructCtor_1, arg1_c_a, arg1_c_b, arg1_c_c, arg1_c_d, arg1_c_e, + arg1_c_f, arg1_c_g, arg1_c_h); + jobject arg1_d; + chip::JniReferences::GetInstance().CreateArrayList(arg1_d); + + auto iter_arg1_d_1 = dataResponse.arg1.d.begin(); + while (iter_arg1_d_1.Next()) + { + auto & entry_1 = iter_arg1_d_1.GetValue(); + jobject newElement_1; + jobject newElement_1_a; + std::string newElement_1_aClassName = "java/lang/Integer"; + std::string newElement_1_aCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_1_aClassName.c_str(), newElement_1_aCtorSignature.c_str(), entry_1.a, newElement_1_a); + jobject newElement_1_b; + std::string newElement_1_bClassName = "java/lang/Boolean"; + std::string newElement_1_bCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_1_bClassName.c_str(), + newElement_1_bCtorSignature.c_str(), entry_1.b, newElement_1_b); + jobject newElement_1_c; + std::string newElement_1_cClassName = "java/lang/Integer"; + std::string newElement_1_cCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_1_cClassName.c_str(), newElement_1_cCtorSignature.c_str(), static_cast(entry_1.c), newElement_1_c); + jobject newElement_1_d; + jbyteArray newElement_1_dByteArray = env->NewByteArray(static_cast(entry_1.d.size())); + env->SetByteArrayRegion(newElement_1_dByteArray, 0, static_cast(entry_1.d.size()), + reinterpret_cast(entry_1.d.data())); + newElement_1_d = newElement_1_dByteArray; + jobject newElement_1_e; + newElement_1_e = env->NewStringUTF(std::string(entry_1.e.data(), entry_1.e.size()).c_str()); + jobject newElement_1_f; + std::string newElement_1_fClassName = "java/lang/Integer"; + std::string newElement_1_fCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_1_fClassName.c_str(), newElement_1_fCtorSignature.c_str(), entry_1.f.Raw(), newElement_1_f); + jobject newElement_1_g; + std::string newElement_1_gClassName = "java/lang/Float"; + std::string newElement_1_gCtorSignature = "(F)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_1_gClassName.c_str(), + newElement_1_gCtorSignature.c_str(), entry_1.g, newElement_1_g); + jobject newElement_1_h; + std::string newElement_1_hClassName = "java/lang/Double"; + std::string newElement_1_hCtorSignature = "(D)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_1_hClassName.c_str(), newElement_1_hCtorSignature.c_str(), entry_1.h, newElement_1_h); + + jclass simpleStructStructClass_2; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$UnitTestingClusterSimpleStruct", simpleStructStructClass_2); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$UnitTestingClusterSimpleStruct"); + return; + } + jmethodID simpleStructStructCtor_2 = + env->GetMethodID(simpleStructStructClass_2, "", + "(Ljava/lang/Integer;Ljava/lang/Boolean;Ljava/lang/Integer;[BLjava/lang/String;Ljava/lang/" + "Integer;Ljava/lang/Float;Ljava/lang/Double;)V"); + if (simpleStructStructCtor_2 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$UnitTestingClusterSimpleStruct constructor"); + return; + } + + newElement_1 = + env->NewObject(simpleStructStructClass_2, simpleStructStructCtor_2, newElement_1_a, newElement_1_b, newElement_1_c, + newElement_1_d, newElement_1_e, newElement_1_f, newElement_1_g, newElement_1_h); + chip::JniReferences::GetInstance().AddToList(arg1_d, newElement_1); + } + jobject arg1_e; + chip::JniReferences::GetInstance().CreateArrayList(arg1_e); + + auto iter_arg1_e_1 = dataResponse.arg1.e.begin(); + while (iter_arg1_e_1.Next()) + { + auto & entry_1 = iter_arg1_e_1.GetValue(); + jobject newElement_1; + std::string newElement_1ClassName = "java/lang/Long"; + std::string newElement_1CtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_1ClassName.c_str(), + newElement_1CtorSignature.c_str(), entry_1, newElement_1); + chip::JniReferences::GetInstance().AddToList(arg1_e, newElement_1); + } + jobject arg1_f; + chip::JniReferences::GetInstance().CreateArrayList(arg1_f); + + auto iter_arg1_f_1 = dataResponse.arg1.f.begin(); + while (iter_arg1_f_1.Next()) + { + auto & entry_1 = iter_arg1_f_1.GetValue(); + jobject newElement_1; + jbyteArray newElement_1ByteArray = env->NewByteArray(static_cast(entry_1.size())); + env->SetByteArrayRegion(newElement_1ByteArray, 0, static_cast(entry_1.size()), + reinterpret_cast(entry_1.data())); + newElement_1 = newElement_1ByteArray; + chip::JniReferences::GetInstance().AddToList(arg1_f, newElement_1); + } + jobject arg1_g; + chip::JniReferences::GetInstance().CreateArrayList(arg1_g); + + auto iter_arg1_g_1 = dataResponse.arg1.g.begin(); + while (iter_arg1_g_1.Next()) + { + auto & entry_1 = iter_arg1_g_1.GetValue(); + jobject newElement_1; + std::string newElement_1ClassName = "java/lang/Integer"; + std::string newElement_1CtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_1ClassName.c_str(), + newElement_1CtorSignature.c_str(), entry_1, newElement_1); + chip::JniReferences::GetInstance().AddToList(arg1_g, newElement_1); + } + + jclass nestedStructListStructClass_0; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$UnitTestingClusterNestedStructList", nestedStructListStructClass_0); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$UnitTestingClusterNestedStructList"); + return; + } + jmethodID nestedStructListStructCtor_0 = env->GetMethodID( + nestedStructListStructClass_0, "", + "(Ljava/lang/Integer;Ljava/lang/Boolean;Lchip/devicecontroller/ChipStructs$UnitTestingClusterSimpleStruct;Ljava/util/" + "ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;)V"); + if (nestedStructListStructCtor_0 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$UnitTestingClusterNestedStructList constructor"); + return; + } + + arg1 = env->NewObject(nestedStructListStructClass_0, nestedStructListStructCtor_0, arg1_a, arg1_b, arg1_c, arg1_d, arg1_e, + arg1_f, arg1_g); + + env->CallVoidMethod(javaCallbackRef, javaMethod, arg1); +} +CHIPUnitTestingClusterTestListNestedStructListArgumentRequestCallback:: + CHIPUnitTestingClusterTestListNestedStructListArgumentRequestCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPUnitTestingClusterTestListNestedStructListArgumentRequestCallback:: + ~CHIPUnitTestingClusterTestListNestedStructListArgumentRequestCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPUnitTestingClusterTestListNestedStructListArgumentRequestCallback::CallbackFn( + void * context, + const chip::app::Clusters::UnitTesting::Commands::TestListNestedStructListArgumentRequest::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/ArrayList;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject arg1; + chip::JniReferences::GetInstance().CreateArrayList(arg1); + + auto iter_arg1_0 = dataResponse.arg1.begin(); + while (iter_arg1_0.Next()) + { + auto & entry_0 = iter_arg1_0.GetValue(); + jobject newElement_0; + jobject newElement_0_a; + std::string newElement_0_aClassName = "java/lang/Integer"; + std::string newElement_0_aCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_0_aClassName.c_str(), newElement_0_aCtorSignature.c_str(), entry_0.a, newElement_0_a); + jobject newElement_0_b; + std::string newElement_0_bClassName = "java/lang/Boolean"; + std::string newElement_0_bCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0_bClassName.c_str(), + newElement_0_bCtorSignature.c_str(), entry_0.b, newElement_0_b); + jobject newElement_0_c; + jobject newElement_0_c_a; + std::string newElement_0_c_aClassName = "java/lang/Integer"; + std::string newElement_0_c_aCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_0_c_aClassName.c_str(), newElement_0_c_aCtorSignature.c_str(), entry_0.c.a, newElement_0_c_a); + jobject newElement_0_c_b; + std::string newElement_0_c_bClassName = "java/lang/Boolean"; + std::string newElement_0_c_bCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_0_c_bClassName.c_str(), newElement_0_c_bCtorSignature.c_str(), entry_0.c.b, newElement_0_c_b); + jobject newElement_0_c_c; + std::string newElement_0_c_cClassName = "java/lang/Integer"; + std::string newElement_0_c_cCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0_c_cClassName.c_str(), + newElement_0_c_cCtorSignature.c_str(), + static_cast(entry_0.c.c), newElement_0_c_c); + jobject newElement_0_c_d; + jbyteArray newElement_0_c_dByteArray = env->NewByteArray(static_cast(entry_0.c.d.size())); + env->SetByteArrayRegion(newElement_0_c_dByteArray, 0, static_cast(entry_0.c.d.size()), + reinterpret_cast(entry_0.c.d.data())); + newElement_0_c_d = newElement_0_c_dByteArray; + jobject newElement_0_c_e; + newElement_0_c_e = env->NewStringUTF(std::string(entry_0.c.e.data(), entry_0.c.e.size()).c_str()); + jobject newElement_0_c_f; + std::string newElement_0_c_fClassName = "java/lang/Integer"; + std::string newElement_0_c_fCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_0_c_fClassName.c_str(), newElement_0_c_fCtorSignature.c_str(), entry_0.c.f.Raw(), newElement_0_c_f); + jobject newElement_0_c_g; + std::string newElement_0_c_gClassName = "java/lang/Float"; + std::string newElement_0_c_gCtorSignature = "(F)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_0_c_gClassName.c_str(), newElement_0_c_gCtorSignature.c_str(), entry_0.c.g, newElement_0_c_g); + jobject newElement_0_c_h; + std::string newElement_0_c_hClassName = "java/lang/Double"; + std::string newElement_0_c_hCtorSignature = "(D)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_0_c_hClassName.c_str(), newElement_0_c_hCtorSignature.c_str(), entry_0.c.h, newElement_0_c_h); + + jclass simpleStructStructClass_2; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$UnitTestingClusterSimpleStruct", simpleStructStructClass_2); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$UnitTestingClusterSimpleStruct"); + return; + } + jmethodID simpleStructStructCtor_2 = + env->GetMethodID(simpleStructStructClass_2, "", + "(Ljava/lang/Integer;Ljava/lang/Boolean;Ljava/lang/Integer;[BLjava/lang/String;Ljava/lang/" + "Integer;Ljava/lang/Float;Ljava/lang/Double;)V"); + if (simpleStructStructCtor_2 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$UnitTestingClusterSimpleStruct constructor"); + return; + } + + newElement_0_c = env->NewObject(simpleStructStructClass_2, simpleStructStructCtor_2, newElement_0_c_a, newElement_0_c_b, + newElement_0_c_c, newElement_0_c_d, newElement_0_c_e, newElement_0_c_f, newElement_0_c_g, + newElement_0_c_h); + jobject newElement_0_d; + chip::JniReferences::GetInstance().CreateArrayList(newElement_0_d); + + auto iter_newElement_0_d_2 = entry_0.d.begin(); + while (iter_newElement_0_d_2.Next()) + { + auto & entry_2 = iter_newElement_0_d_2.GetValue(); + jobject newElement_2; + jobject newElement_2_a; + std::string newElement_2_aClassName = "java/lang/Integer"; + std::string newElement_2_aCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_2_aClassName.c_str(), newElement_2_aCtorSignature.c_str(), entry_2.a, newElement_2_a); + jobject newElement_2_b; + std::string newElement_2_bClassName = "java/lang/Boolean"; + std::string newElement_2_bCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_2_bClassName.c_str(), newElement_2_bCtorSignature.c_str(), entry_2.b, newElement_2_b); + jobject newElement_2_c; + std::string newElement_2_cClassName = "java/lang/Integer"; + std::string newElement_2_cCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_2_cClassName.c_str(), + newElement_2_cCtorSignature.c_str(), + static_cast(entry_2.c), newElement_2_c); + jobject newElement_2_d; + jbyteArray newElement_2_dByteArray = env->NewByteArray(static_cast(entry_2.d.size())); + env->SetByteArrayRegion(newElement_2_dByteArray, 0, static_cast(entry_2.d.size()), + reinterpret_cast(entry_2.d.data())); + newElement_2_d = newElement_2_dByteArray; + jobject newElement_2_e; + newElement_2_e = env->NewStringUTF(std::string(entry_2.e.data(), entry_2.e.size()).c_str()); + jobject newElement_2_f; + std::string newElement_2_fClassName = "java/lang/Integer"; + std::string newElement_2_fCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_2_fClassName.c_str(), newElement_2_fCtorSignature.c_str(), entry_2.f.Raw(), newElement_2_f); + jobject newElement_2_g; + std::string newElement_2_gClassName = "java/lang/Float"; + std::string newElement_2_gCtorSignature = "(F)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_2_gClassName.c_str(), newElement_2_gCtorSignature.c_str(), entry_2.g, newElement_2_g); + jobject newElement_2_h; + std::string newElement_2_hClassName = "java/lang/Double"; + std::string newElement_2_hCtorSignature = "(D)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_2_hClassName.c_str(), newElement_2_hCtorSignature.c_str(), entry_2.h, newElement_2_h); + + jclass simpleStructStructClass_3; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$UnitTestingClusterSimpleStruct", simpleStructStructClass_3); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$UnitTestingClusterSimpleStruct"); + return; + } + jmethodID simpleStructStructCtor_3 = + env->GetMethodID(simpleStructStructClass_3, "", + "(Ljava/lang/Integer;Ljava/lang/Boolean;Ljava/lang/Integer;[BLjava/lang/String;Ljava/lang/" + "Integer;Ljava/lang/Float;Ljava/lang/Double;)V"); + if (simpleStructStructCtor_3 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$UnitTestingClusterSimpleStruct constructor"); + return; + } + + newElement_2 = + env->NewObject(simpleStructStructClass_3, simpleStructStructCtor_3, newElement_2_a, newElement_2_b, newElement_2_c, + newElement_2_d, newElement_2_e, newElement_2_f, newElement_2_g, newElement_2_h); + chip::JniReferences::GetInstance().AddToList(newElement_0_d, newElement_2); + } + jobject newElement_0_e; + chip::JniReferences::GetInstance().CreateArrayList(newElement_0_e); + + auto iter_newElement_0_e_2 = entry_0.e.begin(); + while (iter_newElement_0_e_2.Next()) + { + auto & entry_2 = iter_newElement_0_e_2.GetValue(); + jobject newElement_2; + std::string newElement_2ClassName = "java/lang/Long"; + std::string newElement_2CtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_2ClassName.c_str(), newElement_2CtorSignature.c_str(), entry_2, newElement_2); + chip::JniReferences::GetInstance().AddToList(newElement_0_e, newElement_2); + } + jobject newElement_0_f; + chip::JniReferences::GetInstance().CreateArrayList(newElement_0_f); + + auto iter_newElement_0_f_2 = entry_0.f.begin(); + while (iter_newElement_0_f_2.Next()) + { + auto & entry_2 = iter_newElement_0_f_2.GetValue(); + jobject newElement_2; + jbyteArray newElement_2ByteArray = env->NewByteArray(static_cast(entry_2.size())); + env->SetByteArrayRegion(newElement_2ByteArray, 0, static_cast(entry_2.size()), + reinterpret_cast(entry_2.data())); + newElement_2 = newElement_2ByteArray; + chip::JniReferences::GetInstance().AddToList(newElement_0_f, newElement_2); + } + jobject newElement_0_g; + chip::JniReferences::GetInstance().CreateArrayList(newElement_0_g); + + auto iter_newElement_0_g_2 = entry_0.g.begin(); + while (iter_newElement_0_g_2.Next()) + { + auto & entry_2 = iter_newElement_0_g_2.GetValue(); + jobject newElement_2; + std::string newElement_2ClassName = "java/lang/Integer"; + std::string newElement_2CtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_2ClassName.c_str(), + newElement_2CtorSignature.c_str(), entry_2, newElement_2); + chip::JniReferences::GetInstance().AddToList(newElement_0_g, newElement_2); + } + + jclass nestedStructListStructClass_1; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$UnitTestingClusterNestedStructList", nestedStructListStructClass_1); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$UnitTestingClusterNestedStructList"); + return; + } + jmethodID nestedStructListStructCtor_1 = env->GetMethodID( + nestedStructListStructClass_1, "", + "(Ljava/lang/Integer;Ljava/lang/Boolean;Lchip/devicecontroller/ChipStructs$UnitTestingClusterSimpleStruct;Ljava/util/" + "ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;)V"); + if (nestedStructListStructCtor_1 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$UnitTestingClusterNestedStructList constructor"); + return; + } + + newElement_0 = env->NewObject(nestedStructListStructClass_1, nestedStructListStructCtor_1, newElement_0_a, newElement_0_b, + newElement_0_c, newElement_0_d, newElement_0_e, newElement_0_f, newElement_0_g); + chip::JniReferences::GetInstance().AddToList(arg1, newElement_0); + } + + env->CallVoidMethod(javaCallbackRef, javaMethod, arg1); +} +CHIPUnitTestingClusterTestListInt8UReverseRequestCallback::CHIPUnitTestingClusterTestListInt8UReverseRequestCallback( + jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPUnitTestingClusterTestListInt8UReverseRequestCallback::~CHIPUnitTestingClusterTestListInt8UReverseRequestCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPUnitTestingClusterTestListInt8UReverseRequestCallback::CallbackFn( + void * context, const chip::app::Clusters::UnitTesting::Commands::TestListInt8UReverseRequest::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/ArrayList;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject arg1; + chip::JniReferences::GetInstance().CreateArrayList(arg1); + + auto iter_arg1_0 = dataResponse.arg1.begin(); + while (iter_arg1_0.Next()) + { + auto & entry_0 = iter_arg1_0.GetValue(); + jobject newElement_0; + std::string newElement_0ClassName = "java/lang/Integer"; + std::string newElement_0CtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0ClassName.c_str(), + newElement_0CtorSignature.c_str(), entry_0, newElement_0); + chip::JniReferences::GetInstance().AddToList(arg1, newElement_0); + } + + env->CallVoidMethod(javaCallbackRef, javaMethod, arg1); +} +CHIPUnitTestingClusterTestEnumsRequestCallback::CHIPUnitTestingClusterTestEnumsRequestCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPUnitTestingClusterTestEnumsRequestCallback::~CHIPUnitTestingClusterTestEnumsRequestCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPUnitTestingClusterTestEnumsRequestCallback::CallbackFn( + void * context, const chip::app::Clusters::UnitTesting::Commands::TestEnumsRequest::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;)V", + &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject arg1; + std::string arg1ClassName = "java/lang/Integer"; + std::string arg1CtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(arg1ClassName.c_str(), arg1CtorSignature.c_str(), + static_cast(dataResponse.arg1), arg1); + jobject arg2; + std::string arg2ClassName = "java/lang/Integer"; + std::string arg2CtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(arg2ClassName.c_str(), arg2CtorSignature.c_str(), + static_cast(dataResponse.arg2), arg2); + + env->CallVoidMethod(javaCallbackRef, javaMethod, arg1, arg2); +} +CHIPUnitTestingClusterTestNullableOptionalRequestCallback::CHIPUnitTestingClusterTestNullableOptionalRequestCallback( + jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPUnitTestingClusterTestNullableOptionalRequestCallback::~CHIPUnitTestingClusterTestNullableOptionalRequestCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPUnitTestingClusterTestNullableOptionalRequestCallback::CallbackFn( + void * context, const chip::app::Clusters::UnitTesting::Commands::TestNullableOptionalRequest::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/Optional;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject arg1; + if (!dataResponse.arg1.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, arg1); + } + else + { + jobject arg1InsideOptional; + if (dataResponse.arg1.Value().IsNull()) + { + arg1InsideOptional = nullptr; + } + else + { + std::string arg1InsideOptionalClassName = "java/lang/Integer"; + std::string arg1InsideOptionalCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(arg1InsideOptionalClassName.c_str(), + arg1InsideOptionalCtorSignature.c_str(), + dataResponse.arg1.Value().Value(), arg1InsideOptional); + } + chip::JniReferences::GetInstance().CreateOptional(arg1InsideOptional, arg1); + } + + env->CallVoidMethod(javaCallbackRef, javaMethod, arg1); +} +CHIPUnitTestingClusterTestComplexNullableOptionalRequestCallback::CHIPUnitTestingClusterTestComplexNullableOptionalRequestCallback( + jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} + +CHIPUnitTestingClusterTestComplexNullableOptionalRequestCallback:: + ~CHIPUnitTestingClusterTestComplexNullableOptionalRequestCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; + } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPUnitTestingClusterTestComplexNullableOptionalRequestCallback::CallbackFn( + void * context, + const chip::app::Clusters::UnitTesting::Commands::TestComplexNullableOptionalRequest::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod( + env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/util/Optional;Ljava/util/Optional;Ljava/lang/String;Ljava/util/Optional;Ljava/util/" + "Optional;Lchip/devicecontroller/ChipStructs$UnitTestingClusterSimpleStruct;Ljava/util/Optional;Ljava/util/Optional;Ljava/" + "util/ArrayList;Ljava/util/Optional;Ljava/util/Optional;)V", + &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject NullableInt; + if (dataResponse.nullableInt.IsNull()) + { + NullableInt = nullptr; + } + else + { + std::string NullableIntClassName = "java/lang/Integer"; + std::string NullableIntCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + NullableIntClassName.c_str(), NullableIntCtorSignature.c_str(), dataResponse.nullableInt.Value(), NullableInt); + } + jobject OptionalInt; + if (!dataResponse.optionalInt.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, OptionalInt); + } + else + { + jobject OptionalIntInsideOptional; + std::string OptionalIntInsideOptionalClassName = "java/lang/Integer"; + std::string OptionalIntInsideOptionalCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OptionalIntInsideOptionalClassName.c_str(), + OptionalIntInsideOptionalCtorSignature.c_str(), + dataResponse.optionalInt.Value(), OptionalIntInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(OptionalIntInsideOptional, OptionalInt); + } + jobject NullableOptionalInt; + if (!dataResponse.nullableOptionalInt.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, NullableOptionalInt); + } + else + { + jobject NullableOptionalIntInsideOptional; + if (dataResponse.nullableOptionalInt.Value().IsNull()) + { + NullableOptionalIntInsideOptional = nullptr; + } + else + { + std::string NullableOptionalIntInsideOptionalClassName = "java/lang/Integer"; + std::string NullableOptionalIntInsideOptionalCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + NullableOptionalIntInsideOptionalClassName.c_str(), NullableOptionalIntInsideOptionalCtorSignature.c_str(), + dataResponse.nullableOptionalInt.Value().Value(), NullableOptionalIntInsideOptional); + } + chip::JniReferences::GetInstance().CreateOptional(NullableOptionalIntInsideOptional, NullableOptionalInt); + } + jobject NullableString; + if (dataResponse.nullableString.IsNull()) + { + NullableString = nullptr; + } + else + { + NullableString = env->NewStringUTF( + std::string(dataResponse.nullableString.Value().data(), dataResponse.nullableString.Value().size()).c_str()); + } + jobject OptionalString; + if (!dataResponse.optionalString.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, OptionalString); + } + else + { + jobject OptionalStringInsideOptional; + OptionalStringInsideOptional = env->NewStringUTF( + std::string(dataResponse.optionalString.Value().data(), dataResponse.optionalString.Value().size()).c_str()); + chip::JniReferences::GetInstance().CreateOptional(OptionalStringInsideOptional, OptionalString); + } + jobject NullableOptionalString; + if (!dataResponse.nullableOptionalString.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, NullableOptionalString); + } + else + { + jobject NullableOptionalStringInsideOptional; + if (dataResponse.nullableOptionalString.Value().IsNull()) + { + NullableOptionalStringInsideOptional = nullptr; + } + else + { + NullableOptionalStringInsideOptional = + env->NewStringUTF(std::string(dataResponse.nullableOptionalString.Value().Value().data(), + dataResponse.nullableOptionalString.Value().Value().size()) + .c_str()); + } + chip::JniReferences::GetInstance().CreateOptional(NullableOptionalStringInsideOptional, NullableOptionalString); + } + jobject NullableStruct; + if (dataResponse.nullableStruct.IsNull()) + { + NullableStruct = nullptr; + } + else + { + jobject NullableStruct_a; + std::string NullableStruct_aClassName = "java/lang/Integer"; + std::string NullableStruct_aCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(NullableStruct_aClassName.c_str(), + NullableStruct_aCtorSignature.c_str(), + dataResponse.nullableStruct.Value().a, NullableStruct_a); + jobject NullableStruct_b; + std::string NullableStruct_bClassName = "java/lang/Boolean"; + std::string NullableStruct_bCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(NullableStruct_bClassName.c_str(), + NullableStruct_bCtorSignature.c_str(), + dataResponse.nullableStruct.Value().b, NullableStruct_b); + jobject NullableStruct_c; + std::string NullableStruct_cClassName = "java/lang/Integer"; + std::string NullableStruct_cCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + NullableStruct_cClassName.c_str(), NullableStruct_cCtorSignature.c_str(), + static_cast(dataResponse.nullableStruct.Value().c), NullableStruct_c); + jobject NullableStruct_d; + jbyteArray NullableStruct_dByteArray = env->NewByteArray(static_cast(dataResponse.nullableStruct.Value().d.size())); + env->SetByteArrayRegion(NullableStruct_dByteArray, 0, static_cast(dataResponse.nullableStruct.Value().d.size()), + reinterpret_cast(dataResponse.nullableStruct.Value().d.data())); + NullableStruct_d = NullableStruct_dByteArray; + jobject NullableStruct_e; + NullableStruct_e = env->NewStringUTF( + std::string(dataResponse.nullableStruct.Value().e.data(), dataResponse.nullableStruct.Value().e.size()).c_str()); + jobject NullableStruct_f; + std::string NullableStruct_fClassName = "java/lang/Integer"; + std::string NullableStruct_fCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + NullableStruct_fClassName.c_str(), NullableStruct_fCtorSignature.c_str(), dataResponse.nullableStruct.Value().f.Raw(), + NullableStruct_f); + jobject NullableStruct_g; + std::string NullableStruct_gClassName = "java/lang/Float"; + std::string NullableStruct_gCtorSignature = "(F)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(NullableStruct_gClassName.c_str(), + NullableStruct_gCtorSignature.c_str(), + dataResponse.nullableStruct.Value().g, NullableStruct_g); + jobject NullableStruct_h; + std::string NullableStruct_hClassName = "java/lang/Double"; + std::string NullableStruct_hCtorSignature = "(D)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(NullableStruct_hClassName.c_str(), + NullableStruct_hCtorSignature.c_str(), + dataResponse.nullableStruct.Value().h, NullableStruct_h); + + jclass simpleStructStructClass_1; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$UnitTestingClusterSimpleStruct", simpleStructStructClass_1); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$UnitTestingClusterSimpleStruct"); + return; + } + jmethodID simpleStructStructCtor_1 = + env->GetMethodID(simpleStructStructClass_1, "", + "(Ljava/lang/Integer;Ljava/lang/Boolean;Ljava/lang/Integer;[BLjava/lang/String;Ljava/lang/" + "Integer;Ljava/lang/Float;Ljava/lang/Double;)V"); + if (simpleStructStructCtor_1 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$UnitTestingClusterSimpleStruct constructor"); + return; + } + + NullableStruct = env->NewObject(simpleStructStructClass_1, simpleStructStructCtor_1, NullableStruct_a, NullableStruct_b, + NullableStruct_c, NullableStruct_d, NullableStruct_e, NullableStruct_f, NullableStruct_g, + NullableStruct_h); + } + jobject OptionalStruct; + if (!dataResponse.optionalStruct.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, OptionalStruct); + } + else + { + jobject OptionalStructInsideOptional; + jobject OptionalStructInsideOptional_a; + std::string OptionalStructInsideOptional_aClassName = "java/lang/Integer"; + std::string OptionalStructInsideOptional_aCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + OptionalStructInsideOptional_aClassName.c_str(), OptionalStructInsideOptional_aCtorSignature.c_str(), + dataResponse.optionalStruct.Value().a, OptionalStructInsideOptional_a); + jobject OptionalStructInsideOptional_b; + std::string OptionalStructInsideOptional_bClassName = "java/lang/Boolean"; + std::string OptionalStructInsideOptional_bCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + OptionalStructInsideOptional_bClassName.c_str(), OptionalStructInsideOptional_bCtorSignature.c_str(), + dataResponse.optionalStruct.Value().b, OptionalStructInsideOptional_b); + jobject OptionalStructInsideOptional_c; + std::string OptionalStructInsideOptional_cClassName = "java/lang/Integer"; + std::string OptionalStructInsideOptional_cCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + OptionalStructInsideOptional_cClassName.c_str(), OptionalStructInsideOptional_cCtorSignature.c_str(), + static_cast(dataResponse.optionalStruct.Value().c), OptionalStructInsideOptional_c); + jobject OptionalStructInsideOptional_d; + jbyteArray OptionalStructInsideOptional_dByteArray = + env->NewByteArray(static_cast(dataResponse.optionalStruct.Value().d.size())); + env->SetByteArrayRegion(OptionalStructInsideOptional_dByteArray, 0, + static_cast(dataResponse.optionalStruct.Value().d.size()), + reinterpret_cast(dataResponse.optionalStruct.Value().d.data())); + OptionalStructInsideOptional_d = OptionalStructInsideOptional_dByteArray; + jobject OptionalStructInsideOptional_e; + OptionalStructInsideOptional_e = env->NewStringUTF( + std::string(dataResponse.optionalStruct.Value().e.data(), dataResponse.optionalStruct.Value().e.size()).c_str()); + jobject OptionalStructInsideOptional_f; + std::string OptionalStructInsideOptional_fClassName = "java/lang/Integer"; + std::string OptionalStructInsideOptional_fCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + OptionalStructInsideOptional_fClassName.c_str(), OptionalStructInsideOptional_fCtorSignature.c_str(), + dataResponse.optionalStruct.Value().f.Raw(), OptionalStructInsideOptional_f); + jobject OptionalStructInsideOptional_g; + std::string OptionalStructInsideOptional_gClassName = "java/lang/Float"; + std::string OptionalStructInsideOptional_gCtorSignature = "(F)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + OptionalStructInsideOptional_gClassName.c_str(), OptionalStructInsideOptional_gCtorSignature.c_str(), + dataResponse.optionalStruct.Value().g, OptionalStructInsideOptional_g); + jobject OptionalStructInsideOptional_h; + std::string OptionalStructInsideOptional_hClassName = "java/lang/Double"; + std::string OptionalStructInsideOptional_hCtorSignature = "(D)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + OptionalStructInsideOptional_hClassName.c_str(), OptionalStructInsideOptional_hCtorSignature.c_str(), + dataResponse.optionalStruct.Value().h, OptionalStructInsideOptional_h); + + jclass simpleStructStructClass_1; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$UnitTestingClusterSimpleStruct", simpleStructStructClass_1); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$UnitTestingClusterSimpleStruct"); + return; + } + jmethodID simpleStructStructCtor_1 = + env->GetMethodID(simpleStructStructClass_1, "", + "(Ljava/lang/Integer;Ljava/lang/Boolean;Ljava/lang/Integer;[BLjava/lang/String;Ljava/lang/" + "Integer;Ljava/lang/Float;Ljava/lang/Double;)V"); + if (simpleStructStructCtor_1 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$UnitTestingClusterSimpleStruct constructor"); + return; + } + + OptionalStructInsideOptional = env->NewObject( + simpleStructStructClass_1, simpleStructStructCtor_1, OptionalStructInsideOptional_a, OptionalStructInsideOptional_b, + OptionalStructInsideOptional_c, OptionalStructInsideOptional_d, OptionalStructInsideOptional_e, + OptionalStructInsideOptional_f, OptionalStructInsideOptional_g, OptionalStructInsideOptional_h); + chip::JniReferences::GetInstance().CreateOptional(OptionalStructInsideOptional, OptionalStruct); + } + jobject NullableOptionalStruct; + if (!dataResponse.nullableOptionalStruct.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, NullableOptionalStruct); + } + else + { + jobject NullableOptionalStructInsideOptional; + if (dataResponse.nullableOptionalStruct.Value().IsNull()) + { + NullableOptionalStructInsideOptional = nullptr; + } + else + { + jobject NullableOptionalStructInsideOptional_a; + std::string NullableOptionalStructInsideOptional_aClassName = "java/lang/Integer"; + std::string NullableOptionalStructInsideOptional_aCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + NullableOptionalStructInsideOptional_aClassName.c_str(), + NullableOptionalStructInsideOptional_aCtorSignature.c_str(), dataResponse.nullableOptionalStruct.Value().Value().a, + NullableOptionalStructInsideOptional_a); + jobject NullableOptionalStructInsideOptional_b; + std::string NullableOptionalStructInsideOptional_bClassName = "java/lang/Boolean"; + std::string NullableOptionalStructInsideOptional_bCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(NullableOptionalStructInsideOptional_bClassName.c_str(), + NullableOptionalStructInsideOptional_bCtorSignature.c_str(), + dataResponse.nullableOptionalStruct.Value().Value().b, + NullableOptionalStructInsideOptional_b); + jobject NullableOptionalStructInsideOptional_c; + std::string NullableOptionalStructInsideOptional_cClassName = "java/lang/Integer"; + std::string NullableOptionalStructInsideOptional_cCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + NullableOptionalStructInsideOptional_cClassName.c_str(), + NullableOptionalStructInsideOptional_cCtorSignature.c_str(), + static_cast(dataResponse.nullableOptionalStruct.Value().Value().c), + NullableOptionalStructInsideOptional_c); + jobject NullableOptionalStructInsideOptional_d; + jbyteArray NullableOptionalStructInsideOptional_dByteArray = + env->NewByteArray(static_cast(dataResponse.nullableOptionalStruct.Value().Value().d.size())); + env->SetByteArrayRegion(NullableOptionalStructInsideOptional_dByteArray, 0, + static_cast(dataResponse.nullableOptionalStruct.Value().Value().d.size()), + reinterpret_cast(dataResponse.nullableOptionalStruct.Value().Value().d.data())); + NullableOptionalStructInsideOptional_d = NullableOptionalStructInsideOptional_dByteArray; + jobject NullableOptionalStructInsideOptional_e; + NullableOptionalStructInsideOptional_e = + env->NewStringUTF(std::string(dataResponse.nullableOptionalStruct.Value().Value().e.data(), + dataResponse.nullableOptionalStruct.Value().Value().e.size()) + .c_str()); + jobject NullableOptionalStructInsideOptional_f; + std::string NullableOptionalStructInsideOptional_fClassName = "java/lang/Integer"; + std::string NullableOptionalStructInsideOptional_fCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + NullableOptionalStructInsideOptional_fClassName.c_str(), + NullableOptionalStructInsideOptional_fCtorSignature.c_str(), + dataResponse.nullableOptionalStruct.Value().Value().f.Raw(), NullableOptionalStructInsideOptional_f); + jobject NullableOptionalStructInsideOptional_g; + std::string NullableOptionalStructInsideOptional_gClassName = "java/lang/Float"; + std::string NullableOptionalStructInsideOptional_gCtorSignature = "(F)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(NullableOptionalStructInsideOptional_gClassName.c_str(), + NullableOptionalStructInsideOptional_gCtorSignature.c_str(), + dataResponse.nullableOptionalStruct.Value().Value().g, + NullableOptionalStructInsideOptional_g); + jobject NullableOptionalStructInsideOptional_h; + std::string NullableOptionalStructInsideOptional_hClassName = "java/lang/Double"; + std::string NullableOptionalStructInsideOptional_hCtorSignature = "(D)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + NullableOptionalStructInsideOptional_hClassName.c_str(), + NullableOptionalStructInsideOptional_hCtorSignature.c_str(), dataResponse.nullableOptionalStruct.Value().Value().h, + NullableOptionalStructInsideOptional_h); + + jclass simpleStructStructClass_2; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$UnitTestingClusterSimpleStruct", simpleStructStructClass_2); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$UnitTestingClusterSimpleStruct"); + return; + } + jmethodID simpleStructStructCtor_2 = + env->GetMethodID(simpleStructStructClass_2, "", + "(Ljava/lang/Integer;Ljava/lang/Boolean;Ljava/lang/Integer;[BLjava/lang/String;Ljava/lang/" + "Integer;Ljava/lang/Float;Ljava/lang/Double;)V"); + if (simpleStructStructCtor_2 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$UnitTestingClusterSimpleStruct constructor"); + return; + } + + NullableOptionalStructInsideOptional = + env->NewObject(simpleStructStructClass_2, simpleStructStructCtor_2, NullableOptionalStructInsideOptional_a, + NullableOptionalStructInsideOptional_b, NullableOptionalStructInsideOptional_c, + NullableOptionalStructInsideOptional_d, NullableOptionalStructInsideOptional_e, + NullableOptionalStructInsideOptional_f, NullableOptionalStructInsideOptional_g, + NullableOptionalStructInsideOptional_h); + } + chip::JniReferences::GetInstance().CreateOptional(NullableOptionalStructInsideOptional, NullableOptionalStruct); + } + jobject NullableList; + if (dataResponse.nullableList.IsNull()) + { + NullableList = nullptr; + } + else + { + chip::JniReferences::GetInstance().CreateArrayList(NullableList); + + auto iter_NullableList_1 = dataResponse.nullableList.Value().begin(); + while (iter_NullableList_1.Next()) + { + auto & entry_1 = iter_NullableList_1.GetValue(); + jobject newElement_1; + std::string newElement_1ClassName = "java/lang/Integer"; + std::string newElement_1CtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_1ClassName.c_str(), newElement_1CtorSignature.c_str(), static_cast(entry_1), newElement_1); + chip::JniReferences::GetInstance().AddToList(NullableList, newElement_1); + } + } + jobject OptionalList; + if (!dataResponse.optionalList.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, OptionalList); + } + else + { + jobject OptionalListInsideOptional; + chip::JniReferences::GetInstance().CreateArrayList(OptionalListInsideOptional); + + auto iter_OptionalListInsideOptional_1 = dataResponse.optionalList.Value().begin(); + while (iter_OptionalListInsideOptional_1.Next()) + { + auto & entry_1 = iter_OptionalListInsideOptional_1.GetValue(); + jobject newElement_1; + std::string newElement_1ClassName = "java/lang/Integer"; + std::string newElement_1CtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_1ClassName.c_str(), newElement_1CtorSignature.c_str(), static_cast(entry_1), newElement_1); + chip::JniReferences::GetInstance().AddToList(OptionalListInsideOptional, newElement_1); + } + chip::JniReferences::GetInstance().CreateOptional(OptionalListInsideOptional, OptionalList); + } + jobject NullableOptionalList; + if (!dataResponse.nullableOptionalList.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, NullableOptionalList); } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPUnitTestingClusterTestAddArgumentsResponseCallback::CallbackFn( - void * context, const chip::app::Clusters::UnitTesting::Commands::TestAddArgumentsResponse::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + else + { + jobject NullableOptionalListInsideOptional; + if (dataResponse.nullableOptionalList.Value().IsNull()) + { + NullableOptionalListInsideOptional = nullptr; + } + else + { + chip::JniReferences::GetInstance().CreateArrayList(NullableOptionalListInsideOptional); - jobject returnValue; - std::string returnValueClassName = "java/lang/Integer"; - std::string returnValueCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(returnValueClassName.c_str(), returnValueCtorSignature.c_str(), - dataResponse.returnValue, returnValue); + auto iter_NullableOptionalListInsideOptional_2 = dataResponse.nullableOptionalList.Value().Value().begin(); + while (iter_NullableOptionalListInsideOptional_2.Next()) + { + auto & entry_2 = iter_NullableOptionalListInsideOptional_2.GetValue(); + jobject newElement_2; + std::string newElement_2ClassName = "java/lang/Integer"; + std::string newElement_2CtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_2ClassName.c_str(), newElement_2CtorSignature.c_str(), static_cast(entry_2), newElement_2); + chip::JniReferences::GetInstance().AddToList(NullableOptionalListInsideOptional, newElement_2); + } + } + chip::JniReferences::GetInstance().CreateOptional(NullableOptionalListInsideOptional, NullableOptionalList); + } - env->CallVoidMethod(javaCallbackRef, javaMethod, returnValue); + env->CallVoidMethod(javaCallbackRef, javaMethod, NullableInt, OptionalInt, NullableOptionalInt, NullableString, OptionalString, + NullableOptionalString, NullableStruct, OptionalStruct, NullableOptionalStruct, NullableList, OptionalList, + NullableOptionalList); } -CHIPUnitTestingClusterTestListInt8UReverseResponseCallback::CHIPUnitTestingClusterTestListInt8UReverseResponseCallback( - jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPUnitTestingClusterSimpleStructEchoRequestCallback::CHIPUnitTestingClusterSimpleStructEchoRequestCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3893,7 +15261,7 @@ CHIPUnitTestingClusterTestListInt8UReverseResponseCallback::CHIPUnitTestingClust } } -CHIPUnitTestingClusterTestListInt8UReverseResponseCallback::~CHIPUnitTestingClusterTestListInt8UReverseResponseCallback() +CHIPUnitTestingClusterSimpleStructEchoRequestCallback::~CHIPUnitTestingClusterSimpleStructEchoRequestCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3904,8 +15272,8 @@ CHIPUnitTestingClusterTestListInt8UReverseResponseCallback::~CHIPUnitTestingClus env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPUnitTestingClusterTestListInt8UReverseResponseCallback::CallbackFn( - void * context, const chip::app::Clusters::UnitTesting::Commands::TestListInt8UReverseResponse::DecodableType & dataResponse) +void CHIPUnitTestingClusterSimpleStructEchoRequestCallback::CallbackFn( + void * context, const chip::app::Clusters::UnitTesting::Commands::SimpleStructEchoRequest::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -3915,38 +15283,83 @@ void CHIPUnitTestingClusterTestListInt8UReverseResponseCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/ArrayList;)V", &javaMethod); + err = JniReferences::GetInstance().FindMethod( + env, javaCallbackRef, "onSuccess", "(Lchip/devicecontroller/ChipStructs$UnitTestingClusterSimpleStruct;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); jobject arg1; - chip::JniReferences::GetInstance().CreateArrayList(arg1); + jobject arg1_a; + std::string arg1_aClassName = "java/lang/Integer"; + std::string arg1_aCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(arg1_aClassName.c_str(), arg1_aCtorSignature.c_str(), + dataResponse.arg1.a, arg1_a); + jobject arg1_b; + std::string arg1_bClassName = "java/lang/Boolean"; + std::string arg1_bCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(arg1_bClassName.c_str(), arg1_bCtorSignature.c_str(), + dataResponse.arg1.b, arg1_b); + jobject arg1_c; + std::string arg1_cClassName = "java/lang/Integer"; + std::string arg1_cCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(arg1_cClassName.c_str(), arg1_cCtorSignature.c_str(), + static_cast(dataResponse.arg1.c), arg1_c); + jobject arg1_d; + jbyteArray arg1_dByteArray = env->NewByteArray(static_cast(dataResponse.arg1.d.size())); + env->SetByteArrayRegion(arg1_dByteArray, 0, static_cast(dataResponse.arg1.d.size()), + reinterpret_cast(dataResponse.arg1.d.data())); + arg1_d = arg1_dByteArray; + jobject arg1_e; + arg1_e = env->NewStringUTF(std::string(dataResponse.arg1.e.data(), dataResponse.arg1.e.size()).c_str()); + jobject arg1_f; + std::string arg1_fClassName = "java/lang/Integer"; + std::string arg1_fCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(arg1_fClassName.c_str(), arg1_fCtorSignature.c_str(), + dataResponse.arg1.f.Raw(), arg1_f); + jobject arg1_g; + std::string arg1_gClassName = "java/lang/Float"; + std::string arg1_gCtorSignature = "(F)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(arg1_gClassName.c_str(), arg1_gCtorSignature.c_str(), + dataResponse.arg1.g, arg1_g); + jobject arg1_h; + std::string arg1_hClassName = "java/lang/Double"; + std::string arg1_hCtorSignature = "(D)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(arg1_hClassName.c_str(), arg1_hCtorSignature.c_str(), + dataResponse.arg1.h, arg1_h); - auto iter_arg1_0 = dataResponse.arg1.begin(); - while (iter_arg1_0.Next()) + jclass simpleStructStructClass_0; + err = chip::JniReferences::GetInstance().GetClassRef(env, "chip/devicecontroller/ChipStructs$UnitTestingClusterSimpleStruct", + simpleStructStructClass_0); + if (err != CHIP_NO_ERROR) { - auto & entry_0 = iter_arg1_0.GetValue(); - jobject newElement_0; - std::string newElement_0ClassName = "java/lang/Integer"; - std::string newElement_0CtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0ClassName.c_str(), - newElement_0CtorSignature.c_str(), entry_0, newElement_0); - chip::JniReferences::GetInstance().AddToList(arg1, newElement_0); + ChipLogError(Zcl, "Could not find class ChipStructs$UnitTestingClusterSimpleStruct"); + return; + } + jmethodID simpleStructStructCtor_0 = env->GetMethodID(simpleStructStructClass_0, "", + "(Ljava/lang/Integer;Ljava/lang/Boolean;Ljava/lang/Integer;[BLjava/lang/" + "String;Ljava/lang/Integer;Ljava/lang/Float;Ljava/lang/Double;)V"); + if (simpleStructStructCtor_0 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$UnitTestingClusterSimpleStruct constructor"); + return; } + arg1 = env->NewObject(simpleStructStructClass_0, simpleStructStructCtor_0, arg1_a, arg1_b, arg1_c, arg1_d, arg1_e, arg1_f, + arg1_g, arg1_h); + env->CallVoidMethod(javaCallbackRef, javaMethod, arg1); } -CHIPUnitTestingClusterTestEnumsResponseCallback::CHIPUnitTestingClusterTestEnumsResponseCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPUnitTestingClusterTimedInvokeRequestCallback::CHIPUnitTestingClusterTimedInvokeRequestCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3962,7 +15375,7 @@ CHIPUnitTestingClusterTestEnumsResponseCallback::CHIPUnitTestingClusterTestEnums } } -CHIPUnitTestingClusterTestEnumsResponseCallback::~CHIPUnitTestingClusterTestEnumsResponseCallback() +CHIPUnitTestingClusterTimedInvokeRequestCallback::~CHIPUnitTestingClusterTimedInvokeRequestCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3973,8 +15386,8 @@ CHIPUnitTestingClusterTestEnumsResponseCallback::~CHIPUnitTestingClusterTestEnum env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPUnitTestingClusterTestEnumsResponseCallback::CallbackFn( - void * context, const chip::app::Clusters::UnitTesting::Commands::TestEnumsResponse::DecodableType & dataResponse) +void CHIPUnitTestingClusterTimedInvokeRequestCallback::CallbackFn( + void * context, const chip::app::Clusters::UnitTesting::Commands::TimedInvokeRequest::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -3984,35 +15397,23 @@ void CHIPUnitTestingClusterTestEnumsResponseCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;)V", - &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject arg1; - std::string arg1ClassName = "java/lang/Integer"; - std::string arg1CtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(arg1ClassName.c_str(), arg1CtorSignature.c_str(), - static_cast(dataResponse.arg1), arg1); - jobject arg2; - std::string arg2ClassName = "java/lang/Integer"; - std::string arg2CtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(arg2ClassName.c_str(), arg2CtorSignature.c_str(), - static_cast(dataResponse.arg2), arg2); - - env->CallVoidMethod(javaCallbackRef, javaMethod, arg1, arg2); + env->CallVoidMethod(javaCallbackRef, javaMethod); } -CHIPUnitTestingClusterTestNullableOptionalResponseCallback::CHIPUnitTestingClusterTestNullableOptionalResponseCallback( +CHIPUnitTestingClusterTestSimpleOptionalArgumentRequestCallback::CHIPUnitTestingClusterTestSimpleOptionalArgumentRequestCallback( jobject javaCallback) : - Callback::Callback(CallbackFn, this) + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -4028,7 +15429,7 @@ CHIPUnitTestingClusterTestNullableOptionalResponseCallback::CHIPUnitTestingClust } } -CHIPUnitTestingClusterTestNullableOptionalResponseCallback::~CHIPUnitTestingClusterTestNullableOptionalResponseCallback() +CHIPUnitTestingClusterTestSimpleOptionalArgumentRequestCallback::~CHIPUnitTestingClusterTestSimpleOptionalArgumentRequestCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -4039,8 +15440,9 @@ CHIPUnitTestingClusterTestNullableOptionalResponseCallback::~CHIPUnitTestingClus env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPUnitTestingClusterTestNullableOptionalResponseCallback::CallbackFn( - void * context, const chip::app::Clusters::UnitTesting::Commands::TestNullableOptionalResponse::DecodableType & dataResponse) +void CHIPUnitTestingClusterTestSimpleOptionalArgumentRequestCallback::CallbackFn( + void * context, + const chip::app::Clusters::UnitTesting::Commands::TestSimpleOptionalArgumentRequest::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -4050,83 +15452,40 @@ void CHIPUnitTestingClusterTestNullableOptionalResponseCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod( - env, javaCallbackRef, "onSuccess", "(Ljava/lang/Boolean;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;)V", - &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/Optional;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject wasPresent; - std::string wasPresentClassName = "java/lang/Boolean"; - std::string wasPresentCtorSignature = "(Z)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(wasPresentClassName.c_str(), wasPresentCtorSignature.c_str(), - dataResponse.wasPresent, wasPresent); - jobject wasNull; - if (!dataResponse.wasNull.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, wasNull); - } - else - { - jobject wasNullInsideOptional; - std::string wasNullInsideOptionalClassName = "java/lang/Boolean"; - std::string wasNullInsideOptionalCtorSignature = "(Z)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(wasNullInsideOptionalClassName.c_str(), - wasNullInsideOptionalCtorSignature.c_str(), - dataResponse.wasNull.Value(), wasNullInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(wasNullInsideOptional, wasNull); - } - jobject value; - if (!dataResponse.value.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, value); - } - else - { - jobject valueInsideOptional; - std::string valueInsideOptionalClassName = "java/lang/Integer"; - std::string valueInsideOptionalCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(valueInsideOptionalClassName.c_str(), - valueInsideOptionalCtorSignature.c_str(), - dataResponse.value.Value(), valueInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(valueInsideOptional, value); - } - jobject originalValue; - if (!dataResponse.originalValue.HasValue()) + jobject arg1; + if (!dataResponse.arg1.HasValue()) { - chip::JniReferences::GetInstance().CreateOptional(nullptr, originalValue); + chip::JniReferences::GetInstance().CreateOptional(nullptr, arg1); } else { - jobject originalValueInsideOptional; - if (dataResponse.originalValue.Value().IsNull()) - { - originalValueInsideOptional = nullptr; - } - else - { - std::string originalValueInsideOptionalClassName = "java/lang/Integer"; - std::string originalValueInsideOptionalCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - originalValueInsideOptionalClassName.c_str(), originalValueInsideOptionalCtorSignature.c_str(), - dataResponse.originalValue.Value().Value(), originalValueInsideOptional); - } - chip::JniReferences::GetInstance().CreateOptional(originalValueInsideOptional, originalValue); + jobject arg1InsideOptional; + std::string arg1InsideOptionalClassName = "java/lang/Boolean"; + std::string arg1InsideOptionalCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(arg1InsideOptionalClassName.c_str(), + arg1InsideOptionalCtorSignature.c_str(), + dataResponse.arg1.Value(), arg1InsideOptional); + chip::JniReferences::GetInstance().CreateOptional(arg1InsideOptional, arg1); } - env->CallVoidMethod(javaCallbackRef, javaMethod, wasPresent, wasNull, value, originalValue); + env->CallVoidMethod(javaCallbackRef, javaMethod, arg1); } -CHIPUnitTestingClusterBooleanResponseCallback::CHIPUnitTestingClusterBooleanResponseCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPUnitTestingClusterTestEmitTestEventRequestCallback::CHIPUnitTestingClusterTestEmitTestEventRequestCallback( + jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -4142,7 +15501,7 @@ CHIPUnitTestingClusterBooleanResponseCallback::CHIPUnitTestingClusterBooleanResp } } -CHIPUnitTestingClusterBooleanResponseCallback::~CHIPUnitTestingClusterBooleanResponseCallback() +CHIPUnitTestingClusterTestEmitTestEventRequestCallback::~CHIPUnitTestingClusterTestEmitTestEventRequestCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -4153,8 +15512,8 @@ CHIPUnitTestingClusterBooleanResponseCallback::~CHIPUnitTestingClusterBooleanRes env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPUnitTestingClusterBooleanResponseCallback::CallbackFn( - void * context, const chip::app::Clusters::UnitTesting::Commands::BooleanResponse::DecodableType & dataResponse) +void CHIPUnitTestingClusterTestEmitTestEventRequestCallback::CallbackFn( + void * context, const chip::app::Clusters::UnitTesting::Commands::TestEmitTestEventRequest::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -4164,28 +15523,41 @@ void CHIPUnitTestingClusterBooleanResponseCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Boolean;)V", &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Boolean;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject value; - std::string valueClassName = "java/lang/Boolean"; - std::string valueCtorSignature = "(Z)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(valueClassName.c_str(), valueCtorSignature.c_str(), - dataResponse.value, value); + jobject arg1; + std::string arg1ClassName = "java/lang/Integer"; + std::string arg1CtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(arg1ClassName.c_str(), arg1CtorSignature.c_str(), + dataResponse.arg1, arg1); + jobject arg2; + std::string arg2ClassName = "java/lang/Integer"; + std::string arg2CtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(arg2ClassName.c_str(), arg2CtorSignature.c_str(), + static_cast(dataResponse.arg2), arg2); + jobject arg3; + std::string arg3ClassName = "java/lang/Boolean"; + std::string arg3CtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(arg3ClassName.c_str(), arg3CtorSignature.c_str(), dataResponse.arg3, + arg3); - env->CallVoidMethod(javaCallbackRef, javaMethod, value); + env->CallVoidMethod(javaCallbackRef, javaMethod, arg1, arg2, arg3); } -CHIPUnitTestingClusterSimpleStructResponseCallback::CHIPUnitTestingClusterSimpleStructResponseCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPUnitTestingClusterTestEmitTestFabricScopedEventRequestCallback:: + CHIPUnitTestingClusterTestEmitTestFabricScopedEventRequestCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -4201,7 +15573,8 @@ CHIPUnitTestingClusterSimpleStructResponseCallback::CHIPUnitTestingClusterSimple } } -CHIPUnitTestingClusterSimpleStructResponseCallback::~CHIPUnitTestingClusterSimpleStructResponseCallback() +CHIPUnitTestingClusterTestEmitTestFabricScopedEventRequestCallback:: + ~CHIPUnitTestingClusterTestEmitTestFabricScopedEventRequestCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -4212,8 +15585,9 @@ CHIPUnitTestingClusterSimpleStructResponseCallback::~CHIPUnitTestingClusterSimpl env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPUnitTestingClusterSimpleStructResponseCallback::CallbackFn( - void * context, const chip::app::Clusters::UnitTesting::Commands::SimpleStructResponse::DecodableType & dataResponse) +void CHIPUnitTestingClusterTestEmitTestFabricScopedEventRequestCallback::CallbackFn( + void * context, + const chip::app::Clusters::UnitTesting::Commands::TestEmitTestFabricScopedEventRequest::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -4223,140 +15597,25 @@ void CHIPUnitTestingClusterSimpleStructResponseCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod( - env, javaCallbackRef, "onSuccess", "(Lchip/devicecontroller/ChipStructs$UnitTestingClusterSimpleStruct;)V", &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); jobject arg1; - jobject arg1_a; - std::string arg1_aClassName = "java/lang/Integer"; - std::string arg1_aCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(arg1_aClassName.c_str(), arg1_aCtorSignature.c_str(), - dataResponse.arg1.a, arg1_a); - jobject arg1_b; - std::string arg1_bClassName = "java/lang/Boolean"; - std::string arg1_bCtorSignature = "(Z)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(arg1_bClassName.c_str(), arg1_bCtorSignature.c_str(), - dataResponse.arg1.b, arg1_b); - jobject arg1_c; - std::string arg1_cClassName = "java/lang/Integer"; - std::string arg1_cCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(arg1_cClassName.c_str(), arg1_cCtorSignature.c_str(), - static_cast(dataResponse.arg1.c), arg1_c); - jobject arg1_d; - jbyteArray arg1_dByteArray = env->NewByteArray(static_cast(dataResponse.arg1.d.size())); - env->SetByteArrayRegion(arg1_dByteArray, 0, static_cast(dataResponse.arg1.d.size()), - reinterpret_cast(dataResponse.arg1.d.data())); - arg1_d = arg1_dByteArray; - jobject arg1_e; - arg1_e = env->NewStringUTF(std::string(dataResponse.arg1.e.data(), dataResponse.arg1.e.size()).c_str()); - jobject arg1_f; - std::string arg1_fClassName = "java/lang/Integer"; - std::string arg1_fCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(arg1_fClassName.c_str(), arg1_fCtorSignature.c_str(), - dataResponse.arg1.f.Raw(), arg1_f); - jobject arg1_g; - std::string arg1_gClassName = "java/lang/Float"; - std::string arg1_gCtorSignature = "(F)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(arg1_gClassName.c_str(), arg1_gCtorSignature.c_str(), - dataResponse.arg1.g, arg1_g); - jobject arg1_h; - std::string arg1_hClassName = "java/lang/Double"; - std::string arg1_hCtorSignature = "(D)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(arg1_hClassName.c_str(), arg1_hCtorSignature.c_str(), - dataResponse.arg1.h, arg1_h); - - jclass simpleStructStructClass_0; - err = chip::JniReferences::GetInstance().GetClassRef(env, "chip/devicecontroller/ChipStructs$UnitTestingClusterSimpleStruct", - simpleStructStructClass_0); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$UnitTestingClusterSimpleStruct"); - return; - } - jmethodID simpleStructStructCtor_0 = env->GetMethodID(simpleStructStructClass_0, "", - "(Ljava/lang/Integer;Ljava/lang/Boolean;Ljava/lang/Integer;[BLjava/lang/" - "String;Ljava/lang/Integer;Ljava/lang/Float;Ljava/lang/Double;)V"); - if (simpleStructStructCtor_0 == nullptr) - { - ChipLogError(Zcl, "Could not find ChipStructs$UnitTestingClusterSimpleStruct constructor"); - return; - } - - arg1 = env->NewObject(simpleStructStructClass_0, simpleStructStructCtor_0, arg1_a, arg1_b, arg1_c, arg1_d, arg1_e, arg1_f, - arg1_g, arg1_h); + std::string arg1ClassName = "java/lang/Integer"; + std::string arg1CtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(arg1ClassName.c_str(), arg1CtorSignature.c_str(), + dataResponse.arg1, arg1); env->CallVoidMethod(javaCallbackRef, javaMethod, arg1); } -CHIPUnitTestingClusterTestEmitTestEventResponseCallback::CHIPUnitTestingClusterTestEmitTestEventResponseCallback( - jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPUnitTestingClusterTestEmitTestEventResponseCallback::~CHIPUnitTestingClusterTestEmitTestEventResponseCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPUnitTestingClusterTestEmitTestEventResponseCallback::CallbackFn( - void * context, const chip::app::Clusters::UnitTesting::Commands::TestEmitTestEventResponse::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject value; - std::string valueClassName = "java/lang/Long"; - std::string valueCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(valueClassName.c_str(), valueCtorSignature.c_str(), - dataResponse.value, value); - - env->CallVoidMethod(javaCallbackRef, javaMethod, value); -} } // namespace chip From 4996268070deb72dedf8f300580212e451d2f4a0 Mon Sep 17 00:00:00 2001 From: Andrei Litvin Date: Tue, 28 Mar 2023 14:18:14 -0400 Subject: [PATCH 7/8] Noop update: switch loop method and conditional that is not needed --- src/controller/java/templates/CHIPReadCallbacks.zapt | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/controller/java/templates/CHIPReadCallbacks.zapt b/src/controller/java/templates/CHIPReadCallbacks.zapt index 44df0869f95515..f15b4ec9e0f1bf 100644 --- a/src/controller/java/templates/CHIPReadCallbacks.zapt +++ b/src/controller/java/templates/CHIPReadCallbacks.zapt @@ -1,5 +1,4 @@ {{> header}} -{{#if (chip_has_client_clusters)}} #include #include @@ -36,7 +35,7 @@ private: {{/unless}} {{/chip_server_global_responses}} -{{#chip_client_clusters}} +{{#all_user_clusters}} {{#zcl_attributes_server removeKeys='isOptional'}} {{#if_unsupported_attribute_callback type isArray ../id}} {{else}} @@ -70,6 +69,4 @@ private: {{/if_unsupported_attribute_callback}} {{/zcl_attributes_server}} -{{/chip_client_clusters}} - -{{/if}} +{{/all_user_clusters}} From 5563fff61053e526e2743734ae98e9c64e41a2d8 Mon Sep 17 00:00:00 2001 From: Andrei Litvin Date: Tue, 28 Mar 2023 14:31:17 -0400 Subject: [PATCH 8/8] Switch to source_server instead of source_client --- .../templates/CHIPInvokeCallbacks-src.zapt | 4 +- .../java/templates/CHIPInvokeCallbacks.zapt | 4 +- .../zap-generated/CHIPInvokeCallbacks.cpp | 15719 +++------------- .../java/zap-generated/CHIPInvokeCallbacks.h | 2394 +-- 4 files changed, 3348 insertions(+), 14773 deletions(-) diff --git a/src/controller/java/templates/CHIPInvokeCallbacks-src.zapt b/src/controller/java/templates/CHIPInvokeCallbacks-src.zapt index eeeb07d26c9154..9f4d999174ce21 100644 --- a/src/controller/java/templates/CHIPInvokeCallbacks-src.zapt +++ b/src/controller/java/templates/CHIPInvokeCallbacks-src.zapt @@ -15,7 +15,7 @@ namespace chip { {{#all_user_clusters}} - {{#zcl_commands_source_client}} + {{#zcl_commands_source_server}} CHIP{{asUpperCamelCase parent.name}}Cluster{{asUpperCamelCase name}}Callback::CHIP{{asUpperCamelCase parent.name}}Cluster{{asUpperCamelCase name}}Callback(jobject javaCallback): Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); @@ -69,6 +69,6 @@ void CHIP{{asUpperCamelCase parent.name}}Cluster{{asUpperCamelCase name}}Callbac env->CallVoidMethod(javaCallbackRef, javaMethod{{#zcl_command_arguments}}, {{asSymbol label}}{{/zcl_command_arguments}}); } - {{/zcl_commands_source_client}} + {{/zcl_commands_source_server}} {{/all_user_clusters}} } // namespace chip diff --git a/src/controller/java/templates/CHIPInvokeCallbacks.zapt b/src/controller/java/templates/CHIPInvokeCallbacks.zapt index 00f8aaf982676e..81fe85ffc713f0 100644 --- a/src/controller/java/templates/CHIPInvokeCallbacks.zapt +++ b/src/controller/java/templates/CHIPInvokeCallbacks.zapt @@ -9,7 +9,7 @@ namespace chip { {{#all_user_clusters}} - {{#zcl_commands_source_client}} + {{#zcl_commands_source_server}} class CHIP{{asUpperCamelCase parent.name}}Cluster{{asUpperCamelCase commandName}}Callback : public Callback::Callback { public: @@ -23,7 +23,7 @@ private: jobject javaCallbackRef; }; - {{/zcl_commands_source_client}} + {{/zcl_commands_source_server}} {{/all_user_clusters}} } // namespace chip {{/if}} diff --git a/src/controller/java/zap-generated/CHIPInvokeCallbacks.cpp b/src/controller/java/zap-generated/CHIPInvokeCallbacks.cpp index 8031a81dc512a4..f2527732efb160 100644 --- a/src/controller/java/zap-generated/CHIPInvokeCallbacks.cpp +++ b/src/controller/java/zap-generated/CHIPInvokeCallbacks.cpp @@ -29,8 +29,8 @@ namespace chip { -CHIPIdentifyClusterIdentifyCallback::CHIPIdentifyClusterIdentifyCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPGroupsClusterAddGroupResponseCallback::CHIPGroupsClusterAddGroupResponseCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -46,7 +46,7 @@ CHIPIdentifyClusterIdentifyCallback::CHIPIdentifyClusterIdentifyCallback(jobject } } -CHIPIdentifyClusterIdentifyCallback::~CHIPIdentifyClusterIdentifyCallback() +CHIPGroupsClusterAddGroupResponseCallback::~CHIPGroupsClusterAddGroupResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -57,8 +57,8 @@ CHIPIdentifyClusterIdentifyCallback::~CHIPIdentifyClusterIdentifyCallback() env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPIdentifyClusterIdentifyCallback::CallbackFn( - void * context, const chip::app::Clusters::Identify::Commands::Identify::DecodableType & dataResponse) +void CHIPGroupsClusterAddGroupResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::Groups::Commands::AddGroupResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -68,28 +68,34 @@ void CHIPIdentifyClusterIdentifyCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;)V", + &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject IdentifyTime; - std::string IdentifyTimeClassName = "java/lang/Integer"; - std::string IdentifyTimeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(IdentifyTimeClassName.c_str(), IdentifyTimeCtorSignature.c_str(), - dataResponse.identifyTime, IdentifyTime); + jobject Status; + std::string StatusClassName = "java/lang/Integer"; + std::string StatusCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), + dataResponse.status, Status); + jobject GroupID; + std::string GroupIDClassName = "java/lang/Integer"; + std::string GroupIDCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(GroupIDClassName.c_str(), GroupIDCtorSignature.c_str(), + dataResponse.groupID, GroupID); - env->CallVoidMethod(javaCallbackRef, javaMethod, IdentifyTime); + env->CallVoidMethod(javaCallbackRef, javaMethod, Status, GroupID); } -CHIPIdentifyClusterTriggerEffectCallback::CHIPIdentifyClusterTriggerEffectCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPGroupsClusterViewGroupResponseCallback::CHIPGroupsClusterViewGroupResponseCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -105,7 +111,7 @@ CHIPIdentifyClusterTriggerEffectCallback::CHIPIdentifyClusterTriggerEffectCallba } } -CHIPIdentifyClusterTriggerEffectCallback::~CHIPIdentifyClusterTriggerEffectCallback() +CHIPGroupsClusterViewGroupResponseCallback::~CHIPGroupsClusterViewGroupResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -116,8 +122,8 @@ CHIPIdentifyClusterTriggerEffectCallback::~CHIPIdentifyClusterTriggerEffectCallb env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPIdentifyClusterTriggerEffectCallback::CallbackFn( - void * context, const chip::app::Clusters::Identify::Commands::TriggerEffect::DecodableType & dataResponse) +void CHIPGroupsClusterViewGroupResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::Groups::Commands::ViewGroupResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -127,36 +133,36 @@ void CHIPIdentifyClusterTriggerEffectCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;)V", - &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject EffectIdentifier; - std::string EffectIdentifierClassName = "java/lang/Integer"; - std::string EffectIdentifierCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - EffectIdentifierClassName.c_str(), EffectIdentifierCtorSignature.c_str(), - static_cast(dataResponse.effectIdentifier), EffectIdentifier); - jobject EffectVariant; - std::string EffectVariantClassName = "java/lang/Integer"; - std::string EffectVariantCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(EffectVariantClassName.c_str(), - EffectVariantCtorSignature.c_str(), - static_cast(dataResponse.effectVariant), EffectVariant); - - env->CallVoidMethod(javaCallbackRef, javaMethod, EffectIdentifier, EffectVariant); + jobject Status; + std::string StatusClassName = "java/lang/Integer"; + std::string StatusCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), + dataResponse.status, Status); + jobject GroupID; + std::string GroupIDClassName = "java/lang/Integer"; + std::string GroupIDCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(GroupIDClassName.c_str(), GroupIDCtorSignature.c_str(), + dataResponse.groupID, GroupID); + jobject GroupName; + GroupName = env->NewStringUTF(std::string(dataResponse.groupName.data(), dataResponse.groupName.size()).c_str()); + + env->CallVoidMethod(javaCallbackRef, javaMethod, Status, GroupID, GroupName); } -CHIPGroupsClusterAddGroupCallback::CHIPGroupsClusterAddGroupCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPGroupsClusterGetGroupMembershipResponseCallback::CHIPGroupsClusterGetGroupMembershipResponseCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -172,7 +178,7 @@ CHIPGroupsClusterAddGroupCallback::CHIPGroupsClusterAddGroupCallback(jobject jav } } -CHIPGroupsClusterAddGroupCallback::~CHIPGroupsClusterAddGroupCallback() +CHIPGroupsClusterGetGroupMembershipResponseCallback::~CHIPGroupsClusterGetGroupMembershipResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -183,8 +189,8 @@ CHIPGroupsClusterAddGroupCallback::~CHIPGroupsClusterAddGroupCallback() env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPGroupsClusterAddGroupCallback::CallbackFn( - void * context, const chip::app::Clusters::Groups::Commands::AddGroup::DecodableType & dataResponse) +void CHIPGroupsClusterGetGroupMembershipResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::Groups::Commands::GetGroupMembershipResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -194,30 +200,51 @@ void CHIPGroupsClusterAddGroupCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr cppCallback( - reinterpret_cast(context), chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/String;)V", + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/util/ArrayList;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject GroupID; - std::string GroupIDClassName = "java/lang/Integer"; - std::string GroupIDCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(GroupIDClassName.c_str(), GroupIDCtorSignature.c_str(), - dataResponse.groupID, GroupID); - jobject GroupName; - GroupName = env->NewStringUTF(std::string(dataResponse.groupName.data(), dataResponse.groupName.size()).c_str()); + jobject Capacity; + if (dataResponse.capacity.IsNull()) + { + Capacity = nullptr; + } + else + { + std::string CapacityClassName = "java/lang/Integer"; + std::string CapacityCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(CapacityClassName.c_str(), CapacityCtorSignature.c_str(), + dataResponse.capacity.Value(), Capacity); + } + jobject GroupList; + chip::JniReferences::GetInstance().CreateArrayList(GroupList); + + auto iter_GroupList_0 = dataResponse.groupList.begin(); + while (iter_GroupList_0.Next()) + { + auto & entry_0 = iter_GroupList_0.GetValue(); + jobject newElement_0; + std::string newElement_0ClassName = "java/lang/Integer"; + std::string newElement_0CtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0ClassName.c_str(), + newElement_0CtorSignature.c_str(), entry_0, newElement_0); + chip::JniReferences::GetInstance().AddToList(GroupList, newElement_0); + } - env->CallVoidMethod(javaCallbackRef, javaMethod, GroupID, GroupName); + env->CallVoidMethod(javaCallbackRef, javaMethod, Capacity, GroupList); } -CHIPGroupsClusterViewGroupCallback::CHIPGroupsClusterViewGroupCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPGroupsClusterRemoveGroupResponseCallback::CHIPGroupsClusterRemoveGroupResponseCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -233,7 +260,7 @@ CHIPGroupsClusterViewGroupCallback::CHIPGroupsClusterViewGroupCallback(jobject j } } -CHIPGroupsClusterViewGroupCallback::~CHIPGroupsClusterViewGroupCallback() +CHIPGroupsClusterRemoveGroupResponseCallback::~CHIPGroupsClusterRemoveGroupResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -244,8 +271,8 @@ CHIPGroupsClusterViewGroupCallback::~CHIPGroupsClusterViewGroupCallback() env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPGroupsClusterViewGroupCallback::CallbackFn( - void * context, const chip::app::Clusters::Groups::Commands::ViewGroup::DecodableType & dataResponse) +void CHIPGroupsClusterRemoveGroupResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::Groups::Commands::RemoveGroupResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -255,28 +282,34 @@ void CHIPGroupsClusterViewGroupCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;)V", + &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + jobject Status; + std::string StatusClassName = "java/lang/Integer"; + std::string StatusCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), + dataResponse.status, Status); jobject GroupID; std::string GroupIDClassName = "java/lang/Integer"; std::string GroupIDCtorSignature = "(I)V"; chip::JniReferences::GetInstance().CreateBoxedObject(GroupIDClassName.c_str(), GroupIDCtorSignature.c_str(), dataResponse.groupID, GroupID); - env->CallVoidMethod(javaCallbackRef, javaMethod, GroupID); + env->CallVoidMethod(javaCallbackRef, javaMethod, Status, GroupID); } -CHIPGroupsClusterGetGroupMembershipCallback::CHIPGroupsClusterGetGroupMembershipCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPScenesClusterAddSceneResponseCallback::CHIPScenesClusterAddSceneResponseCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -292,7 +325,7 @@ CHIPGroupsClusterGetGroupMembershipCallback::CHIPGroupsClusterGetGroupMembership } } -CHIPGroupsClusterGetGroupMembershipCallback::~CHIPGroupsClusterGetGroupMembershipCallback() +CHIPScenesClusterAddSceneResponseCallback::~CHIPScenesClusterAddSceneResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -303,8 +336,8 @@ CHIPGroupsClusterGetGroupMembershipCallback::~CHIPGroupsClusterGetGroupMembershi env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPGroupsClusterGetGroupMembershipCallback::CallbackFn( - void * context, const chip::app::Clusters::Groups::Commands::GetGroupMembership::DecodableType & dataResponse) +void CHIPScenesClusterAddSceneResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::Scenes::Commands::AddSceneResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -314,37 +347,39 @@ void CHIPGroupsClusterGetGroupMembershipCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/ArrayList;)V", &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject GroupList; - chip::JniReferences::GetInstance().CreateArrayList(GroupList); - - auto iter_GroupList_0 = dataResponse.groupList.begin(); - while (iter_GroupList_0.Next()) - { - auto & entry_0 = iter_GroupList_0.GetValue(); - jobject newElement_0; - std::string newElement_0ClassName = "java/lang/Integer"; - std::string newElement_0CtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0ClassName.c_str(), - newElement_0CtorSignature.c_str(), entry_0, newElement_0); - chip::JniReferences::GetInstance().AddToList(GroupList, newElement_0); - } + jobject Status; + std::string StatusClassName = "java/lang/Integer"; + std::string StatusCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), + dataResponse.status, Status); + jobject GroupID; + std::string GroupIDClassName = "java/lang/Integer"; + std::string GroupIDCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(GroupIDClassName.c_str(), GroupIDCtorSignature.c_str(), + dataResponse.groupID, GroupID); + jobject SceneID; + std::string SceneIDClassName = "java/lang/Integer"; + std::string SceneIDCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(SceneIDClassName.c_str(), SceneIDCtorSignature.c_str(), + dataResponse.sceneID, SceneID); - env->CallVoidMethod(javaCallbackRef, javaMethod, GroupList); + env->CallVoidMethod(javaCallbackRef, javaMethod, Status, GroupID, SceneID); } -CHIPGroupsClusterRemoveGroupCallback::CHIPGroupsClusterRemoveGroupCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPScenesClusterViewSceneResponseCallback::CHIPScenesClusterViewSceneResponseCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -360,7 +395,7 @@ CHIPGroupsClusterRemoveGroupCallback::CHIPGroupsClusterRemoveGroupCallback(jobje } } -CHIPGroupsClusterRemoveGroupCallback::~CHIPGroupsClusterRemoveGroupCallback() +CHIPScenesClusterViewSceneResponseCallback::~CHIPScenesClusterViewSceneResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -371,8 +406,8 @@ CHIPGroupsClusterRemoveGroupCallback::~CHIPGroupsClusterRemoveGroupCallback() env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPGroupsClusterRemoveGroupCallback::CallbackFn( - void * context, const chip::app::Clusters::Groups::Commands::RemoveGroup::DecodableType & dataResponse) +void CHIPScenesClusterViewSceneResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::Scenes::Commands::ViewSceneResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -382,28 +417,172 @@ void CHIPGroupsClusterRemoveGroupCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + err = JniReferences::GetInstance().FindMethod( + env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;)V", + &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + jobject Status; + std::string StatusClassName = "java/lang/Integer"; + std::string StatusCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), + dataResponse.status, Status); jobject GroupID; std::string GroupIDClassName = "java/lang/Integer"; std::string GroupIDCtorSignature = "(I)V"; chip::JniReferences::GetInstance().CreateBoxedObject(GroupIDClassName.c_str(), GroupIDCtorSignature.c_str(), dataResponse.groupID, GroupID); + jobject SceneID; + std::string SceneIDClassName = "java/lang/Integer"; + std::string SceneIDCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(SceneIDClassName.c_str(), SceneIDCtorSignature.c_str(), + dataResponse.sceneID, SceneID); + jobject TransitionTime; + if (!dataResponse.transitionTime.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, TransitionTime); + } + else + { + jobject TransitionTimeInsideOptional; + std::string TransitionTimeInsideOptionalClassName = "java/lang/Integer"; + std::string TransitionTimeInsideOptionalCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + TransitionTimeInsideOptionalClassName.c_str(), TransitionTimeInsideOptionalCtorSignature.c_str(), + dataResponse.transitionTime.Value(), TransitionTimeInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(TransitionTimeInsideOptional, TransitionTime); + } + jobject SceneName; + if (!dataResponse.sceneName.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, SceneName); + } + else + { + jobject SceneNameInsideOptional; + SceneNameInsideOptional = + env->NewStringUTF(std::string(dataResponse.sceneName.Value().data(), dataResponse.sceneName.Value().size()).c_str()); + chip::JniReferences::GetInstance().CreateOptional(SceneNameInsideOptional, SceneName); + } + jobject ExtensionFieldSets; + if (!dataResponse.extensionFieldSets.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, ExtensionFieldSets); + } + else + { + jobject ExtensionFieldSetsInsideOptional; + chip::JniReferences::GetInstance().CreateArrayList(ExtensionFieldSetsInsideOptional); + + auto iter_ExtensionFieldSetsInsideOptional_1 = dataResponse.extensionFieldSets.Value().begin(); + while (iter_ExtensionFieldSetsInsideOptional_1.Next()) + { + auto & entry_1 = iter_ExtensionFieldSetsInsideOptional_1.GetValue(); + jobject newElement_1; + jobject newElement_1_clusterID; + std::string newElement_1_clusterIDClassName = "java/lang/Long"; + std::string newElement_1_clusterIDCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_1_clusterIDClassName.c_str(), + newElement_1_clusterIDCtorSignature.c_str(), + entry_1.clusterID, newElement_1_clusterID); + jobject newElement_1_attributeValueList; + chip::JniReferences::GetInstance().CreateArrayList(newElement_1_attributeValueList); + + auto iter_newElement_1_attributeValueList_3 = entry_1.attributeValueList.begin(); + while (iter_newElement_1_attributeValueList_3.Next()) + { + auto & entry_3 = iter_newElement_1_attributeValueList_3.GetValue(); + jobject newElement_3; + jobject newElement_3_attributeID; + if (!entry_3.attributeID.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, newElement_3_attributeID); + } + else + { + jobject newElement_3_attributeIDInsideOptional; + std::string newElement_3_attributeIDInsideOptionalClassName = "java/lang/Long"; + std::string newElement_3_attributeIDInsideOptionalCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_3_attributeIDInsideOptionalClassName.c_str(), + newElement_3_attributeIDInsideOptionalCtorSignature.c_str(), entry_3.attributeID.Value(), + newElement_3_attributeIDInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(newElement_3_attributeIDInsideOptional, + newElement_3_attributeID); + } + jobject newElement_3_attributeValue; + chip::JniReferences::GetInstance().CreateArrayList(newElement_3_attributeValue); + + auto iter_newElement_3_attributeValue_5 = entry_3.attributeValue.begin(); + while (iter_newElement_3_attributeValue_5.Next()) + { + auto & entry_5 = iter_newElement_3_attributeValue_5.GetValue(); + jobject newElement_5; + std::string newElement_5ClassName = "java/lang/Integer"; + std::string newElement_5CtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_5ClassName.c_str(), newElement_5CtorSignature.c_str(), entry_5, newElement_5); + chip::JniReferences::GetInstance().AddToList(newElement_3_attributeValue, newElement_5); + } + + jclass attributeValuePairStructClass_4; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$ScenesClusterAttributeValuePair", attributeValuePairStructClass_4); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$ScenesClusterAttributeValuePair"); + return; + } + jmethodID attributeValuePairStructCtor_4 = + env->GetMethodID(attributeValuePairStructClass_4, "", "(Ljava/util/Optional;Ljava/util/ArrayList;)V"); + if (attributeValuePairStructCtor_4 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$ScenesClusterAttributeValuePair constructor"); + return; + } - env->CallVoidMethod(javaCallbackRef, javaMethod, GroupID); + newElement_3 = env->NewObject(attributeValuePairStructClass_4, attributeValuePairStructCtor_4, + newElement_3_attributeID, newElement_3_attributeValue); + chip::JniReferences::GetInstance().AddToList(newElement_1_attributeValueList, newElement_3); + } + + jclass extensionFieldSetStructClass_2; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$ScenesClusterExtensionFieldSet", extensionFieldSetStructClass_2); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$ScenesClusterExtensionFieldSet"); + return; + } + jmethodID extensionFieldSetStructCtor_2 = + env->GetMethodID(extensionFieldSetStructClass_2, "", "(Ljava/lang/Long;Ljava/util/ArrayList;)V"); + if (extensionFieldSetStructCtor_2 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$ScenesClusterExtensionFieldSet constructor"); + return; + } + + newElement_1 = env->NewObject(extensionFieldSetStructClass_2, extensionFieldSetStructCtor_2, newElement_1_clusterID, + newElement_1_attributeValueList); + chip::JniReferences::GetInstance().AddToList(ExtensionFieldSetsInsideOptional, newElement_1); + } + chip::JniReferences::GetInstance().CreateOptional(ExtensionFieldSetsInsideOptional, ExtensionFieldSets); + } + + env->CallVoidMethod(javaCallbackRef, javaMethod, Status, GroupID, SceneID, TransitionTime, SceneName, ExtensionFieldSets); } -CHIPGroupsClusterRemoveAllGroupsCallback::CHIPGroupsClusterRemoveAllGroupsCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPScenesClusterRemoveSceneResponseCallback::CHIPScenesClusterRemoveSceneResponseCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -419,7 +598,7 @@ CHIPGroupsClusterRemoveAllGroupsCallback::CHIPGroupsClusterRemoveAllGroupsCallba } } -CHIPGroupsClusterRemoveAllGroupsCallback::~CHIPGroupsClusterRemoveAllGroupsCallback() +CHIPScenesClusterRemoveSceneResponseCallback::~CHIPScenesClusterRemoveSceneResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -430,8 +609,8 @@ CHIPGroupsClusterRemoveAllGroupsCallback::~CHIPGroupsClusterRemoveAllGroupsCallb env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPGroupsClusterRemoveAllGroupsCallback::CallbackFn( - void * context, const chip::app::Clusters::Groups::Commands::RemoveAllGroups::DecodableType & dataResponse) +void CHIPScenesClusterRemoveSceneResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::Scenes::Commands::RemoveSceneResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -441,22 +620,39 @@ void CHIPGroupsClusterRemoveAllGroupsCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - env->CallVoidMethod(javaCallbackRef, javaMethod); + jobject Status; + std::string StatusClassName = "java/lang/Integer"; + std::string StatusCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), + dataResponse.status, Status); + jobject GroupID; + std::string GroupIDClassName = "java/lang/Integer"; + std::string GroupIDCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(GroupIDClassName.c_str(), GroupIDCtorSignature.c_str(), + dataResponse.groupID, GroupID); + jobject SceneID; + std::string SceneIDClassName = "java/lang/Integer"; + std::string SceneIDCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(SceneIDClassName.c_str(), SceneIDCtorSignature.c_str(), + dataResponse.sceneID, SceneID); + + env->CallVoidMethod(javaCallbackRef, javaMethod, Status, GroupID, SceneID); } -CHIPGroupsClusterAddGroupIfIdentifyingCallback::CHIPGroupsClusterAddGroupIfIdentifyingCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPScenesClusterRemoveAllScenesResponseCallback::CHIPScenesClusterRemoveAllScenesResponseCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -472,7 +668,7 @@ CHIPGroupsClusterAddGroupIfIdentifyingCallback::CHIPGroupsClusterAddGroupIfIdent } } -CHIPGroupsClusterAddGroupIfIdentifyingCallback::~CHIPGroupsClusterAddGroupIfIdentifyingCallback() +CHIPScenesClusterRemoveAllScenesResponseCallback::~CHIPScenesClusterRemoveAllScenesResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -483,8 +679,8 @@ CHIPGroupsClusterAddGroupIfIdentifyingCallback::~CHIPGroupsClusterAddGroupIfIden env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPGroupsClusterAddGroupIfIdentifyingCallback::CallbackFn( - void * context, const chip::app::Clusters::Groups::Commands::AddGroupIfIdentifying::DecodableType & dataResponse) +void CHIPScenesClusterRemoveAllScenesResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::Scenes::Commands::RemoveAllScenesResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -494,31 +690,34 @@ void CHIPGroupsClusterAddGroupIfIdentifyingCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/String;)V", + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + jobject Status; + std::string StatusClassName = "java/lang/Integer"; + std::string StatusCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), + dataResponse.status, Status); jobject GroupID; std::string GroupIDClassName = "java/lang/Integer"; std::string GroupIDCtorSignature = "(I)V"; chip::JniReferences::GetInstance().CreateBoxedObject(GroupIDClassName.c_str(), GroupIDCtorSignature.c_str(), dataResponse.groupID, GroupID); - jobject GroupName; - GroupName = env->NewStringUTF(std::string(dataResponse.groupName.data(), dataResponse.groupName.size()).c_str()); - env->CallVoidMethod(javaCallbackRef, javaMethod, GroupID, GroupName); + env->CallVoidMethod(javaCallbackRef, javaMethod, Status, GroupID); } -CHIPScenesClusterAddSceneCallback::CHIPScenesClusterAddSceneCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPScenesClusterStoreSceneResponseCallback::CHIPScenesClusterStoreSceneResponseCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -534,7 +733,7 @@ CHIPScenesClusterAddSceneCallback::CHIPScenesClusterAddSceneCallback(jobject jav } } -CHIPScenesClusterAddSceneCallback::~CHIPScenesClusterAddSceneCallback() +CHIPScenesClusterStoreSceneResponseCallback::~CHIPScenesClusterStoreSceneResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -545,8 +744,8 @@ CHIPScenesClusterAddSceneCallback::~CHIPScenesClusterAddSceneCallback() env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPScenesClusterAddSceneCallback::CallbackFn( - void * context, const chip::app::Clusters::Scenes::Commands::AddScene::DecodableType & dataResponse) +void CHIPScenesClusterStoreSceneResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::Scenes::Commands::StoreSceneResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -556,19 +755,24 @@ void CHIPScenesClusterAddSceneCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr cppCallback( - reinterpret_cast(context), chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod( - env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;Ljava/util/ArrayList;)V", &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + jobject Status; + std::string StatusClassName = "java/lang/Integer"; + std::string StatusCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), + dataResponse.status, Status); jobject GroupID; std::string GroupIDClassName = "java/lang/Integer"; std::string GroupIDCtorSignature = "(I)V"; @@ -579,112 +783,11 @@ void CHIPScenesClusterAddSceneCallback::CallbackFn( std::string SceneIDCtorSignature = "(I)V"; chip::JniReferences::GetInstance().CreateBoxedObject(SceneIDClassName.c_str(), SceneIDCtorSignature.c_str(), dataResponse.sceneID, SceneID); - jobject TransitionTime; - std::string TransitionTimeClassName = "java/lang/Integer"; - std::string TransitionTimeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - TransitionTimeClassName.c_str(), TransitionTimeCtorSignature.c_str(), dataResponse.transitionTime, TransitionTime); - jobject SceneName; - SceneName = env->NewStringUTF(std::string(dataResponse.sceneName.data(), dataResponse.sceneName.size()).c_str()); - jobject ExtensionFieldSets; - chip::JniReferences::GetInstance().CreateArrayList(ExtensionFieldSets); - - auto iter_ExtensionFieldSets_0 = dataResponse.extensionFieldSets.begin(); - while (iter_ExtensionFieldSets_0.Next()) - { - auto & entry_0 = iter_ExtensionFieldSets_0.GetValue(); - jobject newElement_0; - jobject newElement_0_clusterID; - std::string newElement_0_clusterIDClassName = "java/lang/Long"; - std::string newElement_0_clusterIDCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0_clusterIDClassName.c_str(), - newElement_0_clusterIDCtorSignature.c_str(), - entry_0.clusterID, newElement_0_clusterID); - jobject newElement_0_attributeValueList; - chip::JniReferences::GetInstance().CreateArrayList(newElement_0_attributeValueList); - - auto iter_newElement_0_attributeValueList_2 = entry_0.attributeValueList.begin(); - while (iter_newElement_0_attributeValueList_2.Next()) - { - auto & entry_2 = iter_newElement_0_attributeValueList_2.GetValue(); - jobject newElement_2; - jobject newElement_2_attributeID; - if (!entry_2.attributeID.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, newElement_2_attributeID); - } - else - { - jobject newElement_2_attributeIDInsideOptional; - std::string newElement_2_attributeIDInsideOptionalClassName = "java/lang/Long"; - std::string newElement_2_attributeIDInsideOptionalCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_2_attributeIDInsideOptionalClassName.c_str(), - newElement_2_attributeIDInsideOptionalCtorSignature.c_str(), entry_2.attributeID.Value(), - newElement_2_attributeIDInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(newElement_2_attributeIDInsideOptional, newElement_2_attributeID); - } - jobject newElement_2_attributeValue; - chip::JniReferences::GetInstance().CreateArrayList(newElement_2_attributeValue); - - auto iter_newElement_2_attributeValue_4 = entry_2.attributeValue.begin(); - while (iter_newElement_2_attributeValue_4.Next()) - { - auto & entry_4 = iter_newElement_2_attributeValue_4.GetValue(); - jobject newElement_4; - std::string newElement_4ClassName = "java/lang/Integer"; - std::string newElement_4CtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_4ClassName.c_str(), newElement_4CtorSignature.c_str(), entry_4, newElement_4); - chip::JniReferences::GetInstance().AddToList(newElement_2_attributeValue, newElement_4); - } - - jclass attributeValuePairStructClass_3; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$ScenesClusterAttributeValuePair", attributeValuePairStructClass_3); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$ScenesClusterAttributeValuePair"); - return; - } - jmethodID attributeValuePairStructCtor_3 = - env->GetMethodID(attributeValuePairStructClass_3, "", "(Ljava/util/Optional;Ljava/util/ArrayList;)V"); - if (attributeValuePairStructCtor_3 == nullptr) - { - ChipLogError(Zcl, "Could not find ChipStructs$ScenesClusterAttributeValuePair constructor"); - return; - } - - newElement_2 = env->NewObject(attributeValuePairStructClass_3, attributeValuePairStructCtor_3, newElement_2_attributeID, - newElement_2_attributeValue); - chip::JniReferences::GetInstance().AddToList(newElement_0_attributeValueList, newElement_2); - } - - jclass extensionFieldSetStructClass_1; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$ScenesClusterExtensionFieldSet", extensionFieldSetStructClass_1); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$ScenesClusterExtensionFieldSet"); - return; - } - jmethodID extensionFieldSetStructCtor_1 = - env->GetMethodID(extensionFieldSetStructClass_1, "", "(Ljava/lang/Long;Ljava/util/ArrayList;)V"); - if (extensionFieldSetStructCtor_1 == nullptr) - { - ChipLogError(Zcl, "Could not find ChipStructs$ScenesClusterExtensionFieldSet constructor"); - return; - } - - newElement_0 = env->NewObject(extensionFieldSetStructClass_1, extensionFieldSetStructCtor_1, newElement_0_clusterID, - newElement_0_attributeValueList); - chip::JniReferences::GetInstance().AddToList(ExtensionFieldSets, newElement_0); - } - env->CallVoidMethod(javaCallbackRef, javaMethod, GroupID, SceneID, TransitionTime, SceneName, ExtensionFieldSets); + env->CallVoidMethod(javaCallbackRef, javaMethod, Status, GroupID, SceneID); } -CHIPScenesClusterViewSceneCallback::CHIPScenesClusterViewSceneCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPScenesClusterGetSceneMembershipResponseCallback::CHIPScenesClusterGetSceneMembershipResponseCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -700,7 +803,7 @@ CHIPScenesClusterViewSceneCallback::CHIPScenesClusterViewSceneCallback(jobject j } } -CHIPScenesClusterViewSceneCallback::~CHIPScenesClusterViewSceneCallback() +CHIPScenesClusterGetSceneMembershipResponseCallback::~CHIPScenesClusterGetSceneMembershipResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -711,8 +814,8 @@ CHIPScenesClusterViewSceneCallback::~CHIPScenesClusterViewSceneCallback() env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPScenesClusterViewSceneCallback::CallbackFn( - void * context, const chip::app::Clusters::Scenes::Commands::ViewScene::DecodableType & dataResponse) +void CHIPScenesClusterGetSceneMembershipResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::Scenes::Commands::GetSceneMembershipResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -722,34 +825,71 @@ void CHIPScenesClusterViewSceneCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;)V", - &javaMethod); + err = JniReferences::GetInstance().FindMethod( + env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/util/Optional;)V", + &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + jobject Status; + std::string StatusClassName = "java/lang/Integer"; + std::string StatusCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), + dataResponse.status, Status); + jobject Capacity; + if (dataResponse.capacity.IsNull()) + { + Capacity = nullptr; + } + else + { + std::string CapacityClassName = "java/lang/Integer"; + std::string CapacityCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(CapacityClassName.c_str(), CapacityCtorSignature.c_str(), + dataResponse.capacity.Value(), Capacity); + } jobject GroupID; std::string GroupIDClassName = "java/lang/Integer"; std::string GroupIDCtorSignature = "(I)V"; chip::JniReferences::GetInstance().CreateBoxedObject(GroupIDClassName.c_str(), GroupIDCtorSignature.c_str(), dataResponse.groupID, GroupID); - jobject SceneID; - std::string SceneIDClassName = "java/lang/Integer"; - std::string SceneIDCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(SceneIDClassName.c_str(), SceneIDCtorSignature.c_str(), - dataResponse.sceneID, SceneID); + jobject SceneList; + if (!dataResponse.sceneList.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, SceneList); + } + else + { + jobject SceneListInsideOptional; + chip::JniReferences::GetInstance().CreateArrayList(SceneListInsideOptional); + + auto iter_SceneListInsideOptional_1 = dataResponse.sceneList.Value().begin(); + while (iter_SceneListInsideOptional_1.Next()) + { + auto & entry_1 = iter_SceneListInsideOptional_1.GetValue(); + jobject newElement_1; + std::string newElement_1ClassName = "java/lang/Integer"; + std::string newElement_1CtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_1ClassName.c_str(), + newElement_1CtorSignature.c_str(), entry_1, newElement_1); + chip::JniReferences::GetInstance().AddToList(SceneListInsideOptional, newElement_1); + } + chip::JniReferences::GetInstance().CreateOptional(SceneListInsideOptional, SceneList); + } - env->CallVoidMethod(javaCallbackRef, javaMethod, GroupID, SceneID); + env->CallVoidMethod(javaCallbackRef, javaMethod, Status, Capacity, GroupID, SceneList); } -CHIPScenesClusterRemoveSceneCallback::CHIPScenesClusterRemoveSceneCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPScenesClusterEnhancedAddSceneResponseCallback::CHIPScenesClusterEnhancedAddSceneResponseCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -765,7 +905,7 @@ CHIPScenesClusterRemoveSceneCallback::CHIPScenesClusterRemoveSceneCallback(jobje } } -CHIPScenesClusterRemoveSceneCallback::~CHIPScenesClusterRemoveSceneCallback() +CHIPScenesClusterEnhancedAddSceneResponseCallback::~CHIPScenesClusterEnhancedAddSceneResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -776,8 +916,8 @@ CHIPScenesClusterRemoveSceneCallback::~CHIPScenesClusterRemoveSceneCallback() env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPScenesClusterRemoveSceneCallback::CallbackFn( - void * context, const chip::app::Clusters::Scenes::Commands::RemoveScene::DecodableType & dataResponse) +void CHIPScenesClusterEnhancedAddSceneResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::Scenes::Commands::EnhancedAddSceneResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -787,19 +927,25 @@ void CHIPScenesClusterRemoveSceneCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;)V", - &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + jobject Status; + std::string StatusClassName = "java/lang/Integer"; + std::string StatusCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), + dataResponse.status, Status); jobject GroupID; std::string GroupIDClassName = "java/lang/Integer"; std::string GroupIDCtorSignature = "(I)V"; @@ -811,10 +957,10 @@ void CHIPScenesClusterRemoveSceneCallback::CallbackFn( chip::JniReferences::GetInstance().CreateBoxedObject(SceneIDClassName.c_str(), SceneIDCtorSignature.c_str(), dataResponse.sceneID, SceneID); - env->CallVoidMethod(javaCallbackRef, javaMethod, GroupID, SceneID); + env->CallVoidMethod(javaCallbackRef, javaMethod, Status, GroupID, SceneID); } -CHIPScenesClusterRemoveAllScenesCallback::CHIPScenesClusterRemoveAllScenesCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPScenesClusterEnhancedViewSceneResponseCallback::CHIPScenesClusterEnhancedViewSceneResponseCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -830,7 +976,7 @@ CHIPScenesClusterRemoveAllScenesCallback::CHIPScenesClusterRemoveAllScenesCallba } } -CHIPScenesClusterRemoveAllScenesCallback::~CHIPScenesClusterRemoveAllScenesCallback() +CHIPScenesClusterEnhancedViewSceneResponseCallback::~CHIPScenesClusterEnhancedViewSceneResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -841,8 +987,8 @@ CHIPScenesClusterRemoveAllScenesCallback::~CHIPScenesClusterRemoveAllScenesCallb env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPScenesClusterRemoveAllScenesCallback::CallbackFn( - void * context, const chip::app::Clusters::Scenes::Commands::RemoveAllScenes::DecodableType & dataResponse) +void CHIPScenesClusterEnhancedViewSceneResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::Scenes::Commands::EnhancedViewSceneResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -852,44 +998,189 @@ void CHIPScenesClusterRemoveAllScenesCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + err = JniReferences::GetInstance().FindMethod( + env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;)V", + &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + jobject Status; + std::string StatusClassName = "java/lang/Integer"; + std::string StatusCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), + dataResponse.status, Status); jobject GroupID; std::string GroupIDClassName = "java/lang/Integer"; std::string GroupIDCtorSignature = "(I)V"; chip::JniReferences::GetInstance().CreateBoxedObject(GroupIDClassName.c_str(), GroupIDCtorSignature.c_str(), dataResponse.groupID, GroupID); - - env->CallVoidMethod(javaCallbackRef, javaMethod, GroupID); -} -CHIPScenesClusterStoreSceneCallback::CHIPScenesClusterStoreSceneCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) + jobject SceneID; + std::string SceneIDClassName = "java/lang/Integer"; + std::string SceneIDCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(SceneIDClassName.c_str(), SceneIDCtorSignature.c_str(), + dataResponse.sceneID, SceneID); + jobject TransitionTime; + if (!dataResponse.transitionTime.HasValue()) { - ChipLogError(Zcl, "Could not create global reference for Java callback"); - return; + chip::JniReferences::GetInstance().CreateOptional(nullptr, TransitionTime); } - - javaCallbackRef = env->NewGlobalRef(javaCallback); - if (javaCallbackRef == nullptr) + else { - ChipLogError(Zcl, "Could not create global reference for Java callback"); - } -} + jobject TransitionTimeInsideOptional; + std::string TransitionTimeInsideOptionalClassName = "java/lang/Integer"; + std::string TransitionTimeInsideOptionalCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + TransitionTimeInsideOptionalClassName.c_str(), TransitionTimeInsideOptionalCtorSignature.c_str(), + dataResponse.transitionTime.Value(), TransitionTimeInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(TransitionTimeInsideOptional, TransitionTime); + } + jobject SceneName; + if (!dataResponse.sceneName.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, SceneName); + } + else + { + jobject SceneNameInsideOptional; + SceneNameInsideOptional = + env->NewStringUTF(std::string(dataResponse.sceneName.Value().data(), dataResponse.sceneName.Value().size()).c_str()); + chip::JniReferences::GetInstance().CreateOptional(SceneNameInsideOptional, SceneName); + } + jobject ExtensionFieldSets; + if (!dataResponse.extensionFieldSets.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, ExtensionFieldSets); + } + else + { + jobject ExtensionFieldSetsInsideOptional; + chip::JniReferences::GetInstance().CreateArrayList(ExtensionFieldSetsInsideOptional); + + auto iter_ExtensionFieldSetsInsideOptional_1 = dataResponse.extensionFieldSets.Value().begin(); + while (iter_ExtensionFieldSetsInsideOptional_1.Next()) + { + auto & entry_1 = iter_ExtensionFieldSetsInsideOptional_1.GetValue(); + jobject newElement_1; + jobject newElement_1_clusterID; + std::string newElement_1_clusterIDClassName = "java/lang/Long"; + std::string newElement_1_clusterIDCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_1_clusterIDClassName.c_str(), + newElement_1_clusterIDCtorSignature.c_str(), + entry_1.clusterID, newElement_1_clusterID); + jobject newElement_1_attributeValueList; + chip::JniReferences::GetInstance().CreateArrayList(newElement_1_attributeValueList); + + auto iter_newElement_1_attributeValueList_3 = entry_1.attributeValueList.begin(); + while (iter_newElement_1_attributeValueList_3.Next()) + { + auto & entry_3 = iter_newElement_1_attributeValueList_3.GetValue(); + jobject newElement_3; + jobject newElement_3_attributeID; + if (!entry_3.attributeID.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, newElement_3_attributeID); + } + else + { + jobject newElement_3_attributeIDInsideOptional; + std::string newElement_3_attributeIDInsideOptionalClassName = "java/lang/Long"; + std::string newElement_3_attributeIDInsideOptionalCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_3_attributeIDInsideOptionalClassName.c_str(), + newElement_3_attributeIDInsideOptionalCtorSignature.c_str(), entry_3.attributeID.Value(), + newElement_3_attributeIDInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(newElement_3_attributeIDInsideOptional, + newElement_3_attributeID); + } + jobject newElement_3_attributeValue; + chip::JniReferences::GetInstance().CreateArrayList(newElement_3_attributeValue); + + auto iter_newElement_3_attributeValue_5 = entry_3.attributeValue.begin(); + while (iter_newElement_3_attributeValue_5.Next()) + { + auto & entry_5 = iter_newElement_3_attributeValue_5.GetValue(); + jobject newElement_5; + std::string newElement_5ClassName = "java/lang/Integer"; + std::string newElement_5CtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_5ClassName.c_str(), newElement_5CtorSignature.c_str(), entry_5, newElement_5); + chip::JniReferences::GetInstance().AddToList(newElement_3_attributeValue, newElement_5); + } + + jclass attributeValuePairStructClass_4; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$ScenesClusterAttributeValuePair", attributeValuePairStructClass_4); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$ScenesClusterAttributeValuePair"); + return; + } + jmethodID attributeValuePairStructCtor_4 = + env->GetMethodID(attributeValuePairStructClass_4, "", "(Ljava/util/Optional;Ljava/util/ArrayList;)V"); + if (attributeValuePairStructCtor_4 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$ScenesClusterAttributeValuePair constructor"); + return; + } + + newElement_3 = env->NewObject(attributeValuePairStructClass_4, attributeValuePairStructCtor_4, + newElement_3_attributeID, newElement_3_attributeValue); + chip::JniReferences::GetInstance().AddToList(newElement_1_attributeValueList, newElement_3); + } + + jclass extensionFieldSetStructClass_2; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$ScenesClusterExtensionFieldSet", extensionFieldSetStructClass_2); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$ScenesClusterExtensionFieldSet"); + return; + } + jmethodID extensionFieldSetStructCtor_2 = + env->GetMethodID(extensionFieldSetStructClass_2, "", "(Ljava/lang/Long;Ljava/util/ArrayList;)V"); + if (extensionFieldSetStructCtor_2 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$ScenesClusterExtensionFieldSet constructor"); + return; + } + + newElement_1 = env->NewObject(extensionFieldSetStructClass_2, extensionFieldSetStructCtor_2, newElement_1_clusterID, + newElement_1_attributeValueList); + chip::JniReferences::GetInstance().AddToList(ExtensionFieldSetsInsideOptional, newElement_1); + } + chip::JniReferences::GetInstance().CreateOptional(ExtensionFieldSetsInsideOptional, ExtensionFieldSets); + } + + env->CallVoidMethod(javaCallbackRef, javaMethod, Status, GroupID, SceneID, TransitionTime, SceneName, ExtensionFieldSets); +} +CHIPScenesClusterCopySceneResponseCallback::CHIPScenesClusterCopySceneResponseCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); + } +} -CHIPScenesClusterStoreSceneCallback::~CHIPScenesClusterStoreSceneCallback() +CHIPScenesClusterCopySceneResponseCallback::~CHIPScenesClusterCopySceneResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -900,8 +1191,8 @@ CHIPScenesClusterStoreSceneCallback::~CHIPScenesClusterStoreSceneCallback() env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPScenesClusterStoreSceneCallback::CallbackFn( - void * context, const chip::app::Clusters::Scenes::Commands::StoreScene::DecodableType & dataResponse) +void CHIPScenesClusterCopySceneResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::Scenes::Commands::CopySceneResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -911,34 +1202,42 @@ void CHIPScenesClusterStoreSceneCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;)V", - &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject GroupID; - std::string GroupIDClassName = "java/lang/Integer"; - std::string GroupIDCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(GroupIDClassName.c_str(), GroupIDCtorSignature.c_str(), - dataResponse.groupID, GroupID); - jobject SceneID; - std::string SceneIDClassName = "java/lang/Integer"; - std::string SceneIDCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(SceneIDClassName.c_str(), SceneIDCtorSignature.c_str(), - dataResponse.sceneID, SceneID); + jobject Status; + std::string StatusClassName = "java/lang/Integer"; + std::string StatusCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), + dataResponse.status, Status); + jobject GroupIdentifierFrom; + std::string GroupIdentifierFromClassName = "java/lang/Integer"; + std::string GroupIdentifierFromCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(GroupIdentifierFromClassName.c_str(), + GroupIdentifierFromCtorSignature.c_str(), + dataResponse.groupIdentifierFrom, GroupIdentifierFrom); + jobject SceneIdentifierFrom; + std::string SceneIdentifierFromClassName = "java/lang/Integer"; + std::string SceneIdentifierFromCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(SceneIdentifierFromClassName.c_str(), + SceneIdentifierFromCtorSignature.c_str(), + dataResponse.sceneIdentifierFrom, SceneIdentifierFrom); - env->CallVoidMethod(javaCallbackRef, javaMethod, GroupID, SceneID); + env->CallVoidMethod(javaCallbackRef, javaMethod, Status, GroupIdentifierFrom, SceneIdentifierFrom); } -CHIPScenesClusterRecallSceneCallback::CHIPScenesClusterRecallSceneCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPOtaSoftwareUpdateProviderClusterQueryImageResponseCallback::CHIPOtaSoftwareUpdateProviderClusterQueryImageResponseCallback( + jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -954,7 +1253,7 @@ CHIPScenesClusterRecallSceneCallback::CHIPScenesClusterRecallSceneCallback(jobje } } -CHIPScenesClusterRecallSceneCallback::~CHIPScenesClusterRecallSceneCallback() +CHIPOtaSoftwareUpdateProviderClusterQueryImageResponseCallback::~CHIPOtaSoftwareUpdateProviderClusterQueryImageResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -965,8 +1264,9 @@ CHIPScenesClusterRecallSceneCallback::~CHIPScenesClusterRecallSceneCallback() env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPScenesClusterRecallSceneCallback::CallbackFn( - void * context, const chip::app::Clusters::Scenes::Commands::RecallScene::DecodableType & dataResponse) +void CHIPOtaSoftwareUpdateProviderClusterQueryImageResponseCallback::CallbackFn( + void * context, + const chip::app::Clusters::OtaSoftwareUpdateProvider::Commands::QueryImageResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -976,56 +1276,136 @@ void CHIPScenesClusterRecallSceneCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/util/Optional;)V", &javaMethod); + err = JniReferences::GetInstance().FindMethod( + env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/" + "Optional;Ljava/util/Optional;Ljava/util/Optional;)V", + &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject GroupID; - std::string GroupIDClassName = "java/lang/Integer"; - std::string GroupIDCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(GroupIDClassName.c_str(), GroupIDCtorSignature.c_str(), - dataResponse.groupID, GroupID); - jobject SceneID; - std::string SceneIDClassName = "java/lang/Integer"; - std::string SceneIDCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(SceneIDClassName.c_str(), SceneIDCtorSignature.c_str(), - dataResponse.sceneID, SceneID); - jobject TransitionTime; - if (!dataResponse.transitionTime.HasValue()) + jobject Status; + std::string StatusClassName = "java/lang/Integer"; + std::string StatusCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), + static_cast(dataResponse.status), Status); + jobject DelayedActionTime; + if (!dataResponse.delayedActionTime.HasValue()) { - chip::JniReferences::GetInstance().CreateOptional(nullptr, TransitionTime); + chip::JniReferences::GetInstance().CreateOptional(nullptr, DelayedActionTime); } else { - jobject TransitionTimeInsideOptional; - if (dataResponse.transitionTime.Value().IsNull()) - { - TransitionTimeInsideOptional = nullptr; - } - else - { - std::string TransitionTimeInsideOptionalClassName = "java/lang/Integer"; - std::string TransitionTimeInsideOptionalCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - TransitionTimeInsideOptionalClassName.c_str(), TransitionTimeInsideOptionalCtorSignature.c_str(), - dataResponse.transitionTime.Value().Value(), TransitionTimeInsideOptional); - } - chip::JniReferences::GetInstance().CreateOptional(TransitionTimeInsideOptional, TransitionTime); + jobject DelayedActionTimeInsideOptional; + std::string DelayedActionTimeInsideOptionalClassName = "java/lang/Long"; + std::string DelayedActionTimeInsideOptionalCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + DelayedActionTimeInsideOptionalClassName.c_str(), DelayedActionTimeInsideOptionalCtorSignature.c_str(), + dataResponse.delayedActionTime.Value(), DelayedActionTimeInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(DelayedActionTimeInsideOptional, DelayedActionTime); + } + jobject ImageURI; + if (!dataResponse.imageURI.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, ImageURI); + } + else + { + jobject ImageURIInsideOptional; + ImageURIInsideOptional = + env->NewStringUTF(std::string(dataResponse.imageURI.Value().data(), dataResponse.imageURI.Value().size()).c_str()); + chip::JniReferences::GetInstance().CreateOptional(ImageURIInsideOptional, ImageURI); + } + jobject SoftwareVersion; + if (!dataResponse.softwareVersion.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, SoftwareVersion); + } + else + { + jobject SoftwareVersionInsideOptional; + std::string SoftwareVersionInsideOptionalClassName = "java/lang/Long"; + std::string SoftwareVersionInsideOptionalCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + SoftwareVersionInsideOptionalClassName.c_str(), SoftwareVersionInsideOptionalCtorSignature.c_str(), + dataResponse.softwareVersion.Value(), SoftwareVersionInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(SoftwareVersionInsideOptional, SoftwareVersion); + } + jobject SoftwareVersionString; + if (!dataResponse.softwareVersionString.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, SoftwareVersionString); + } + else + { + jobject SoftwareVersionStringInsideOptional; + SoftwareVersionStringInsideOptional = env->NewStringUTF( + std::string(dataResponse.softwareVersionString.Value().data(), dataResponse.softwareVersionString.Value().size()) + .c_str()); + chip::JniReferences::GetInstance().CreateOptional(SoftwareVersionStringInsideOptional, SoftwareVersionString); + } + jobject UpdateToken; + if (!dataResponse.updateToken.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, UpdateToken); + } + else + { + jobject UpdateTokenInsideOptional; + jbyteArray UpdateTokenInsideOptionalByteArray = + env->NewByteArray(static_cast(dataResponse.updateToken.Value().size())); + env->SetByteArrayRegion(UpdateTokenInsideOptionalByteArray, 0, static_cast(dataResponse.updateToken.Value().size()), + reinterpret_cast(dataResponse.updateToken.Value().data())); + UpdateTokenInsideOptional = UpdateTokenInsideOptionalByteArray; + chip::JniReferences::GetInstance().CreateOptional(UpdateTokenInsideOptional, UpdateToken); + } + jobject UserConsentNeeded; + if (!dataResponse.userConsentNeeded.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, UserConsentNeeded); + } + else + { + jobject UserConsentNeededInsideOptional; + std::string UserConsentNeededInsideOptionalClassName = "java/lang/Boolean"; + std::string UserConsentNeededInsideOptionalCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + UserConsentNeededInsideOptionalClassName.c_str(), UserConsentNeededInsideOptionalCtorSignature.c_str(), + dataResponse.userConsentNeeded.Value(), UserConsentNeededInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(UserConsentNeededInsideOptional, UserConsentNeeded); + } + jobject MetadataForRequestor; + if (!dataResponse.metadataForRequestor.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, MetadataForRequestor); + } + else + { + jobject MetadataForRequestorInsideOptional; + jbyteArray MetadataForRequestorInsideOptionalByteArray = + env->NewByteArray(static_cast(dataResponse.metadataForRequestor.Value().size())); + env->SetByteArrayRegion(MetadataForRequestorInsideOptionalByteArray, 0, + static_cast(dataResponse.metadataForRequestor.Value().size()), + reinterpret_cast(dataResponse.metadataForRequestor.Value().data())); + MetadataForRequestorInsideOptional = MetadataForRequestorInsideOptionalByteArray; + chip::JniReferences::GetInstance().CreateOptional(MetadataForRequestorInsideOptional, MetadataForRequestor); } - env->CallVoidMethod(javaCallbackRef, javaMethod, GroupID, SceneID, TransitionTime); + env->CallVoidMethod(javaCallbackRef, javaMethod, Status, DelayedActionTime, ImageURI, SoftwareVersion, SoftwareVersionString, + UpdateToken, UserConsentNeeded, MetadataForRequestor); } -CHIPScenesClusterGetSceneMembershipCallback::CHIPScenesClusterGetSceneMembershipCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPOtaSoftwareUpdateProviderClusterApplyUpdateResponseCallback::CHIPOtaSoftwareUpdateProviderClusterApplyUpdateResponseCallback( + jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1041,7 +1421,7 @@ CHIPScenesClusterGetSceneMembershipCallback::CHIPScenesClusterGetSceneMembership } } -CHIPScenesClusterGetSceneMembershipCallback::~CHIPScenesClusterGetSceneMembershipCallback() +CHIPOtaSoftwareUpdateProviderClusterApplyUpdateResponseCallback::~CHIPOtaSoftwareUpdateProviderClusterApplyUpdateResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1052,8 +1432,9 @@ CHIPScenesClusterGetSceneMembershipCallback::~CHIPScenesClusterGetSceneMembershi env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPScenesClusterGetSceneMembershipCallback::CallbackFn( - void * context, const chip::app::Clusters::Scenes::Commands::GetSceneMembership::DecodableType & dataResponse) +void CHIPOtaSoftwareUpdateProviderClusterApplyUpdateResponseCallback::CallbackFn( + void * context, + const chip::app::Clusters::OtaSoftwareUpdateProvider::Commands::ApplyUpdateResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -1063,28 +1444,37 @@ void CHIPScenesClusterGetSceneMembershipCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Long;)V", + &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject GroupID; - std::string GroupIDClassName = "java/lang/Integer"; - std::string GroupIDCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(GroupIDClassName.c_str(), GroupIDCtorSignature.c_str(), - dataResponse.groupID, GroupID); + jobject Action; + std::string ActionClassName = "java/lang/Integer"; + std::string ActionCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(ActionClassName.c_str(), ActionCtorSignature.c_str(), + static_cast(dataResponse.action), Action); + jobject DelayedActionTime; + std::string DelayedActionTimeClassName = "java/lang/Long"; + std::string DelayedActionTimeCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(DelayedActionTimeClassName.c_str(), + DelayedActionTimeCtorSignature.c_str(), + dataResponse.delayedActionTime, DelayedActionTime); - env->CallVoidMethod(javaCallbackRef, javaMethod, GroupID); + env->CallVoidMethod(javaCallbackRef, javaMethod, Action, DelayedActionTime); } -CHIPScenesClusterEnhancedAddSceneCallback::CHIPScenesClusterEnhancedAddSceneCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPGeneralCommissioningClusterArmFailSafeResponseCallback::CHIPGeneralCommissioningClusterArmFailSafeResponseCallback( + jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1100,7 +1490,7 @@ CHIPScenesClusterEnhancedAddSceneCallback::CHIPScenesClusterEnhancedAddSceneCall } } -CHIPScenesClusterEnhancedAddSceneCallback::~CHIPScenesClusterEnhancedAddSceneCallback() +CHIPGeneralCommissioningClusterArmFailSafeResponseCallback::~CHIPGeneralCommissioningClusterArmFailSafeResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1111,8 +1501,8 @@ CHIPScenesClusterEnhancedAddSceneCallback::~CHIPScenesClusterEnhancedAddSceneCal env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPScenesClusterEnhancedAddSceneCallback::CallbackFn( - void * context, const chip::app::Clusters::Scenes::Commands::EnhancedAddScene::DecodableType & dataResponse) +void CHIPGeneralCommissioningClusterArmFailSafeResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::GeneralCommissioning::Commands::ArmFailSafeResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -1122,136 +1512,33 @@ void CHIPScenesClusterEnhancedAddSceneCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod( - env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;Ljava/util/ArrayList;)V", &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/String;)V", + &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject GroupID; - std::string GroupIDClassName = "java/lang/Integer"; - std::string GroupIDCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(GroupIDClassName.c_str(), GroupIDCtorSignature.c_str(), - dataResponse.groupID, GroupID); - jobject SceneID; - std::string SceneIDClassName = "java/lang/Integer"; - std::string SceneIDCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(SceneIDClassName.c_str(), SceneIDCtorSignature.c_str(), - dataResponse.sceneID, SceneID); - jobject TransitionTime; - std::string TransitionTimeClassName = "java/lang/Integer"; - std::string TransitionTimeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - TransitionTimeClassName.c_str(), TransitionTimeCtorSignature.c_str(), dataResponse.transitionTime, TransitionTime); - jobject SceneName; - SceneName = env->NewStringUTF(std::string(dataResponse.sceneName.data(), dataResponse.sceneName.size()).c_str()); - jobject ExtensionFieldSets; - chip::JniReferences::GetInstance().CreateArrayList(ExtensionFieldSets); - - auto iter_ExtensionFieldSets_0 = dataResponse.extensionFieldSets.begin(); - while (iter_ExtensionFieldSets_0.Next()) - { - auto & entry_0 = iter_ExtensionFieldSets_0.GetValue(); - jobject newElement_0; - jobject newElement_0_clusterID; - std::string newElement_0_clusterIDClassName = "java/lang/Long"; - std::string newElement_0_clusterIDCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0_clusterIDClassName.c_str(), - newElement_0_clusterIDCtorSignature.c_str(), - entry_0.clusterID, newElement_0_clusterID); - jobject newElement_0_attributeValueList; - chip::JniReferences::GetInstance().CreateArrayList(newElement_0_attributeValueList); - - auto iter_newElement_0_attributeValueList_2 = entry_0.attributeValueList.begin(); - while (iter_newElement_0_attributeValueList_2.Next()) - { - auto & entry_2 = iter_newElement_0_attributeValueList_2.GetValue(); - jobject newElement_2; - jobject newElement_2_attributeID; - if (!entry_2.attributeID.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, newElement_2_attributeID); - } - else - { - jobject newElement_2_attributeIDInsideOptional; - std::string newElement_2_attributeIDInsideOptionalClassName = "java/lang/Long"; - std::string newElement_2_attributeIDInsideOptionalCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_2_attributeIDInsideOptionalClassName.c_str(), - newElement_2_attributeIDInsideOptionalCtorSignature.c_str(), entry_2.attributeID.Value(), - newElement_2_attributeIDInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(newElement_2_attributeIDInsideOptional, newElement_2_attributeID); - } - jobject newElement_2_attributeValue; - chip::JniReferences::GetInstance().CreateArrayList(newElement_2_attributeValue); - - auto iter_newElement_2_attributeValue_4 = entry_2.attributeValue.begin(); - while (iter_newElement_2_attributeValue_4.Next()) - { - auto & entry_4 = iter_newElement_2_attributeValue_4.GetValue(); - jobject newElement_4; - std::string newElement_4ClassName = "java/lang/Integer"; - std::string newElement_4CtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_4ClassName.c_str(), newElement_4CtorSignature.c_str(), entry_4, newElement_4); - chip::JniReferences::GetInstance().AddToList(newElement_2_attributeValue, newElement_4); - } - - jclass attributeValuePairStructClass_3; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$ScenesClusterAttributeValuePair", attributeValuePairStructClass_3); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$ScenesClusterAttributeValuePair"); - return; - } - jmethodID attributeValuePairStructCtor_3 = - env->GetMethodID(attributeValuePairStructClass_3, "", "(Ljava/util/Optional;Ljava/util/ArrayList;)V"); - if (attributeValuePairStructCtor_3 == nullptr) - { - ChipLogError(Zcl, "Could not find ChipStructs$ScenesClusterAttributeValuePair constructor"); - return; - } - - newElement_2 = env->NewObject(attributeValuePairStructClass_3, attributeValuePairStructCtor_3, newElement_2_attributeID, - newElement_2_attributeValue); - chip::JniReferences::GetInstance().AddToList(newElement_0_attributeValueList, newElement_2); - } - - jclass extensionFieldSetStructClass_1; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$ScenesClusterExtensionFieldSet", extensionFieldSetStructClass_1); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$ScenesClusterExtensionFieldSet"); - return; - } - jmethodID extensionFieldSetStructCtor_1 = - env->GetMethodID(extensionFieldSetStructClass_1, "", "(Ljava/lang/Long;Ljava/util/ArrayList;)V"); - if (extensionFieldSetStructCtor_1 == nullptr) - { - ChipLogError(Zcl, "Could not find ChipStructs$ScenesClusterExtensionFieldSet constructor"); - return; - } - - newElement_0 = env->NewObject(extensionFieldSetStructClass_1, extensionFieldSetStructCtor_1, newElement_0_clusterID, - newElement_0_attributeValueList); - chip::JniReferences::GetInstance().AddToList(ExtensionFieldSets, newElement_0); - } + jobject ErrorCode; + std::string ErrorCodeClassName = "java/lang/Integer"; + std::string ErrorCodeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(ErrorCodeClassName.c_str(), ErrorCodeCtorSignature.c_str(), + static_cast(dataResponse.errorCode), ErrorCode); + jobject DebugText; + DebugText = env->NewStringUTF(std::string(dataResponse.debugText.data(), dataResponse.debugText.size()).c_str()); - env->CallVoidMethod(javaCallbackRef, javaMethod, GroupID, SceneID, TransitionTime, SceneName, ExtensionFieldSets); + env->CallVoidMethod(javaCallbackRef, javaMethod, ErrorCode, DebugText); } -CHIPScenesClusterEnhancedViewSceneCallback::CHIPScenesClusterEnhancedViewSceneCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPGeneralCommissioningClusterSetRegulatoryConfigResponseCallback:: + CHIPGeneralCommissioningClusterSetRegulatoryConfigResponseCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1267,7 +1554,8 @@ CHIPScenesClusterEnhancedViewSceneCallback::CHIPScenesClusterEnhancedViewSceneCa } } -CHIPScenesClusterEnhancedViewSceneCallback::~CHIPScenesClusterEnhancedViewSceneCallback() +CHIPGeneralCommissioningClusterSetRegulatoryConfigResponseCallback:: + ~CHIPGeneralCommissioningClusterSetRegulatoryConfigResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1278,8 +1566,9 @@ CHIPScenesClusterEnhancedViewSceneCallback::~CHIPScenesClusterEnhancedViewSceneC env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPScenesClusterEnhancedViewSceneCallback::CallbackFn( - void * context, const chip::app::Clusters::Scenes::Commands::EnhancedViewScene::DecodableType & dataResponse) +void CHIPGeneralCommissioningClusterSetRegulatoryConfigResponseCallback::CallbackFn( + void * context, + const chip::app::Clusters::GeneralCommissioning::Commands::SetRegulatoryConfigResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -1289,34 +1578,33 @@ void CHIPScenesClusterEnhancedViewSceneCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;)V", + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/String;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject GroupID; - std::string GroupIDClassName = "java/lang/Integer"; - std::string GroupIDCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(GroupIDClassName.c_str(), GroupIDCtorSignature.c_str(), - dataResponse.groupID, GroupID); - jobject SceneID; - std::string SceneIDClassName = "java/lang/Integer"; - std::string SceneIDCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(SceneIDClassName.c_str(), SceneIDCtorSignature.c_str(), - dataResponse.sceneID, SceneID); + jobject ErrorCode; + std::string ErrorCodeClassName = "java/lang/Integer"; + std::string ErrorCodeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(ErrorCodeClassName.c_str(), ErrorCodeCtorSignature.c_str(), + static_cast(dataResponse.errorCode), ErrorCode); + jobject DebugText; + DebugText = env->NewStringUTF(std::string(dataResponse.debugText.data(), dataResponse.debugText.size()).c_str()); - env->CallVoidMethod(javaCallbackRef, javaMethod, GroupID, SceneID); + env->CallVoidMethod(javaCallbackRef, javaMethod, ErrorCode, DebugText); } -CHIPScenesClusterCopySceneCallback::CHIPScenesClusterCopySceneCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPGeneralCommissioningClusterCommissioningCompleteResponseCallback:: + CHIPGeneralCommissioningClusterCommissioningCompleteResponseCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1332,7 +1620,8 @@ CHIPScenesClusterCopySceneCallback::CHIPScenesClusterCopySceneCallback(jobject j } } -CHIPScenesClusterCopySceneCallback::~CHIPScenesClusterCopySceneCallback() +CHIPGeneralCommissioningClusterCommissioningCompleteResponseCallback:: + ~CHIPGeneralCommissioningClusterCommissioningCompleteResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1343,8 +1632,9 @@ CHIPScenesClusterCopySceneCallback::~CHIPScenesClusterCopySceneCallback() env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPScenesClusterCopySceneCallback::CallbackFn( - void * context, const chip::app::Clusters::Scenes::Commands::CopyScene::DecodableType & dataResponse) +void CHIPGeneralCommissioningClusterCommissioningCompleteResponseCallback::CallbackFn( + void * context, + const chip::app::Clusters::GeneralCommissioning::Commands::CommissioningCompleteResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -1354,55 +1644,33 @@ void CHIPScenesClusterCopySceneCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod( - env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/String;)V", + &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject Mode; - std::string ModeClassName = "java/lang/Integer"; - std::string ModeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(ModeClassName.c_str(), ModeCtorSignature.c_str(), - dataResponse.mode.Raw(), Mode); - jobject GroupIdentifierFrom; - std::string GroupIdentifierFromClassName = "java/lang/Integer"; - std::string GroupIdentifierFromCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(GroupIdentifierFromClassName.c_str(), - GroupIdentifierFromCtorSignature.c_str(), - dataResponse.groupIdentifierFrom, GroupIdentifierFrom); - jobject SceneIdentifierFrom; - std::string SceneIdentifierFromClassName = "java/lang/Integer"; - std::string SceneIdentifierFromCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(SceneIdentifierFromClassName.c_str(), - SceneIdentifierFromCtorSignature.c_str(), - dataResponse.sceneIdentifierFrom, SceneIdentifierFrom); - jobject GroupIdentifierTo; - std::string GroupIdentifierToClassName = "java/lang/Integer"; - std::string GroupIdentifierToCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(GroupIdentifierToClassName.c_str(), - GroupIdentifierToCtorSignature.c_str(), - dataResponse.groupIdentifierTo, GroupIdentifierTo); - jobject SceneIdentifierTo; - std::string SceneIdentifierToClassName = "java/lang/Integer"; - std::string SceneIdentifierToCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(SceneIdentifierToClassName.c_str(), - SceneIdentifierToCtorSignature.c_str(), - dataResponse.sceneIdentifierTo, SceneIdentifierTo); - - env->CallVoidMethod(javaCallbackRef, javaMethod, Mode, GroupIdentifierFrom, SceneIdentifierFrom, GroupIdentifierTo, - SceneIdentifierTo); + jobject ErrorCode; + std::string ErrorCodeClassName = "java/lang/Integer"; + std::string ErrorCodeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(ErrorCodeClassName.c_str(), ErrorCodeCtorSignature.c_str(), + static_cast(dataResponse.errorCode), ErrorCode); + jobject DebugText; + DebugText = env->NewStringUTF(std::string(dataResponse.debugText.data(), dataResponse.debugText.size()).c_str()); + + env->CallVoidMethod(javaCallbackRef, javaMethod, ErrorCode, DebugText); } -CHIPOnOffClusterOffCallback::CHIPOnOffClusterOffCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPNetworkCommissioningClusterScanNetworksResponseCallback::CHIPNetworkCommissioningClusterScanNetworksResponseCallback( + jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1418,7 +1686,7 @@ CHIPOnOffClusterOffCallback::CHIPOnOffClusterOffCallback(jobject javaCallback) : } } -CHIPOnOffClusterOffCallback::~CHIPOnOffClusterOffCallback() +CHIPNetworkCommissioningClusterScanNetworksResponseCallback::~CHIPNetworkCommissioningClusterScanNetworksResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1429,8 +1697,8 @@ CHIPOnOffClusterOffCallback::~CHIPOnOffClusterOffCallback() env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPOnOffClusterOffCallback::CallbackFn(void * context, - const chip::app::Clusters::OnOff::Commands::Off::DecodableType & dataResponse) +void CHIPNetworkCommissioningClusterScanNetworksResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::NetworkCommissioning::Commands::ScanNetworksResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -1440,21 +1708,204 @@ void CHIPOnOffClusterOffCallback::CallbackFn(void * context, VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr cppCallback( - reinterpret_cast(context), chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); + err = JniReferences::GetInstance().FindMethod( + env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;)V", + &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - env->CallVoidMethod(javaCallbackRef, javaMethod); + jobject NetworkingStatus; + std::string NetworkingStatusClassName = "java/lang/Integer"; + std::string NetworkingStatusCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + NetworkingStatusClassName.c_str(), NetworkingStatusCtorSignature.c_str(), + static_cast(dataResponse.networkingStatus), NetworkingStatus); + jobject DebugText; + if (!dataResponse.debugText.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, DebugText); + } + else + { + jobject DebugTextInsideOptional; + DebugTextInsideOptional = + env->NewStringUTF(std::string(dataResponse.debugText.Value().data(), dataResponse.debugText.Value().size()).c_str()); + chip::JniReferences::GetInstance().CreateOptional(DebugTextInsideOptional, DebugText); + } + jobject WiFiScanResults; + if (!dataResponse.wiFiScanResults.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, WiFiScanResults); + } + else + { + jobject WiFiScanResultsInsideOptional; + chip::JniReferences::GetInstance().CreateArrayList(WiFiScanResultsInsideOptional); + + auto iter_WiFiScanResultsInsideOptional_1 = dataResponse.wiFiScanResults.Value().begin(); + while (iter_WiFiScanResultsInsideOptional_1.Next()) + { + auto & entry_1 = iter_WiFiScanResultsInsideOptional_1.GetValue(); + jobject newElement_1; + jobject newElement_1_security; + std::string newElement_1_securityClassName = "java/lang/Integer"; + std::string newElement_1_securityCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_1_securityClassName.c_str(), + newElement_1_securityCtorSignature.c_str(), + entry_1.security.Raw(), newElement_1_security); + jobject newElement_1_ssid; + jbyteArray newElement_1_ssidByteArray = env->NewByteArray(static_cast(entry_1.ssid.size())); + env->SetByteArrayRegion(newElement_1_ssidByteArray, 0, static_cast(entry_1.ssid.size()), + reinterpret_cast(entry_1.ssid.data())); + newElement_1_ssid = newElement_1_ssidByteArray; + jobject newElement_1_bssid; + jbyteArray newElement_1_bssidByteArray = env->NewByteArray(static_cast(entry_1.bssid.size())); + env->SetByteArrayRegion(newElement_1_bssidByteArray, 0, static_cast(entry_1.bssid.size()), + reinterpret_cast(entry_1.bssid.data())); + newElement_1_bssid = newElement_1_bssidByteArray; + jobject newElement_1_channel; + std::string newElement_1_channelClassName = "java/lang/Integer"; + std::string newElement_1_channelCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_1_channelClassName.c_str(), + newElement_1_channelCtorSignature.c_str(), + entry_1.channel, newElement_1_channel); + jobject newElement_1_wiFiBand; + std::string newElement_1_wiFiBandClassName = "java/lang/Integer"; + std::string newElement_1_wiFiBandCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_1_wiFiBandClassName.c_str(), newElement_1_wiFiBandCtorSignature.c_str(), + static_cast(entry_1.wiFiBand), newElement_1_wiFiBand); + jobject newElement_1_rssi; + std::string newElement_1_rssiClassName = "java/lang/Integer"; + std::string newElement_1_rssiCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_1_rssiClassName.c_str(), newElement_1_rssiCtorSignature.c_str(), entry_1.rssi, newElement_1_rssi); + + jclass wiFiInterfaceScanResultStructClass_2; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$NetworkCommissioningClusterWiFiInterfaceScanResult", + wiFiInterfaceScanResultStructClass_2); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$NetworkCommissioningClusterWiFiInterfaceScanResult"); + return; + } + jmethodID wiFiInterfaceScanResultStructCtor_2 = + env->GetMethodID(wiFiInterfaceScanResultStructClass_2, "", + "(Ljava/lang/Integer;[B[BLjava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V"); + if (wiFiInterfaceScanResultStructCtor_2 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$NetworkCommissioningClusterWiFiInterfaceScanResult constructor"); + return; + } + + newElement_1 = env->NewObject(wiFiInterfaceScanResultStructClass_2, wiFiInterfaceScanResultStructCtor_2, + newElement_1_security, newElement_1_ssid, newElement_1_bssid, newElement_1_channel, + newElement_1_wiFiBand, newElement_1_rssi); + chip::JniReferences::GetInstance().AddToList(WiFiScanResultsInsideOptional, newElement_1); + } + chip::JniReferences::GetInstance().CreateOptional(WiFiScanResultsInsideOptional, WiFiScanResults); + } + jobject ThreadScanResults; + if (!dataResponse.threadScanResults.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, ThreadScanResults); + } + else + { + jobject ThreadScanResultsInsideOptional; + chip::JniReferences::GetInstance().CreateArrayList(ThreadScanResultsInsideOptional); + + auto iter_ThreadScanResultsInsideOptional_1 = dataResponse.threadScanResults.Value().begin(); + while (iter_ThreadScanResultsInsideOptional_1.Next()) + { + auto & entry_1 = iter_ThreadScanResultsInsideOptional_1.GetValue(); + jobject newElement_1; + jobject newElement_1_panId; + std::string newElement_1_panIdClassName = "java/lang/Integer"; + std::string newElement_1_panIdCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_1_panIdClassName.c_str(), newElement_1_panIdCtorSignature.c_str(), entry_1.panId, newElement_1_panId); + jobject newElement_1_extendedPanId; + std::string newElement_1_extendedPanIdClassName = "java/lang/Long"; + std::string newElement_1_extendedPanIdCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_1_extendedPanIdClassName.c_str(), + newElement_1_extendedPanIdCtorSignature.c_str(), + entry_1.extendedPanId, newElement_1_extendedPanId); + jobject newElement_1_networkName; + newElement_1_networkName = + env->NewStringUTF(std::string(entry_1.networkName.data(), entry_1.networkName.size()).c_str()); + jobject newElement_1_channel; + std::string newElement_1_channelClassName = "java/lang/Integer"; + std::string newElement_1_channelCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_1_channelClassName.c_str(), + newElement_1_channelCtorSignature.c_str(), + entry_1.channel, newElement_1_channel); + jobject newElement_1_version; + std::string newElement_1_versionClassName = "java/lang/Integer"; + std::string newElement_1_versionCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_1_versionClassName.c_str(), + newElement_1_versionCtorSignature.c_str(), + entry_1.version, newElement_1_version); + jobject newElement_1_extendedAddress; + jbyteArray newElement_1_extendedAddressByteArray = + env->NewByteArray(static_cast(entry_1.extendedAddress.size())); + env->SetByteArrayRegion(newElement_1_extendedAddressByteArray, 0, static_cast(entry_1.extendedAddress.size()), + reinterpret_cast(entry_1.extendedAddress.data())); + newElement_1_extendedAddress = newElement_1_extendedAddressByteArray; + jobject newElement_1_rssi; + std::string newElement_1_rssiClassName = "java/lang/Integer"; + std::string newElement_1_rssiCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_1_rssiClassName.c_str(), newElement_1_rssiCtorSignature.c_str(), entry_1.rssi, newElement_1_rssi); + jobject newElement_1_lqi; + std::string newElement_1_lqiClassName = "java/lang/Integer"; + std::string newElement_1_lqiCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_1_lqiClassName.c_str(), newElement_1_lqiCtorSignature.c_str(), entry_1.lqi, newElement_1_lqi); + + jclass threadInterfaceScanResultStructClass_2; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$NetworkCommissioningClusterThreadInterfaceScanResult", + threadInterfaceScanResultStructClass_2); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$NetworkCommissioningClusterThreadInterfaceScanResult"); + return; + } + jmethodID threadInterfaceScanResultStructCtor_2 = + env->GetMethodID(threadInterfaceScanResultStructClass_2, "", + "(Ljava/lang/Integer;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/" + "Integer;[BLjava/lang/Integer;Ljava/lang/Integer;)V"); + if (threadInterfaceScanResultStructCtor_2 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$NetworkCommissioningClusterThreadInterfaceScanResult constructor"); + return; + } + + newElement_1 = + env->NewObject(threadInterfaceScanResultStructClass_2, threadInterfaceScanResultStructCtor_2, newElement_1_panId, + newElement_1_extendedPanId, newElement_1_networkName, newElement_1_channel, newElement_1_version, + newElement_1_extendedAddress, newElement_1_rssi, newElement_1_lqi); + chip::JniReferences::GetInstance().AddToList(ThreadScanResultsInsideOptional, newElement_1); + } + chip::JniReferences::GetInstance().CreateOptional(ThreadScanResultsInsideOptional, ThreadScanResults); + } + + env->CallVoidMethod(javaCallbackRef, javaMethod, NetworkingStatus, DebugText, WiFiScanResults, ThreadScanResults); } -CHIPOnOffClusterOnCallback::CHIPOnOffClusterOnCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPNetworkCommissioningClusterNetworkConfigResponseCallback::CHIPNetworkCommissioningClusterNetworkConfigResponseCallback( + jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1470,7 +1921,7 @@ CHIPOnOffClusterOnCallback::CHIPOnOffClusterOnCallback(jobject javaCallback) : } } -CHIPOnOffClusterOnCallback::~CHIPOnOffClusterOnCallback() +CHIPNetworkCommissioningClusterNetworkConfigResponseCallback::~CHIPNetworkCommissioningClusterNetworkConfigResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1481,8 +1932,8 @@ CHIPOnOffClusterOnCallback::~CHIPOnOffClusterOnCallback() env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPOnOffClusterOnCallback::CallbackFn(void * context, - const chip::app::Clusters::OnOff::Commands::On::DecodableType & dataResponse) +void CHIPNetworkCommissioningClusterNetworkConfigResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::NetworkCommissioning::Commands::NetworkConfigResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -1492,21 +1943,59 @@ void CHIPOnOffClusterOnCallback::CallbackFn(void * context, VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr cppCallback( - reinterpret_cast(context), chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/util/Optional;Ljava/util/Optional;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - env->CallVoidMethod(javaCallbackRef, javaMethod); + jobject NetworkingStatus; + std::string NetworkingStatusClassName = "java/lang/Integer"; + std::string NetworkingStatusCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + NetworkingStatusClassName.c_str(), NetworkingStatusCtorSignature.c_str(), + static_cast(dataResponse.networkingStatus), NetworkingStatus); + jobject DebugText; + if (!dataResponse.debugText.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, DebugText); + } + else + { + jobject DebugTextInsideOptional; + DebugTextInsideOptional = + env->NewStringUTF(std::string(dataResponse.debugText.Value().data(), dataResponse.debugText.Value().size()).c_str()); + chip::JniReferences::GetInstance().CreateOptional(DebugTextInsideOptional, DebugText); + } + jobject NetworkIndex; + if (!dataResponse.networkIndex.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, NetworkIndex); + } + else + { + jobject NetworkIndexInsideOptional; + std::string NetworkIndexInsideOptionalClassName = "java/lang/Integer"; + std::string NetworkIndexInsideOptionalCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + NetworkIndexInsideOptionalClassName.c_str(), NetworkIndexInsideOptionalCtorSignature.c_str(), + dataResponse.networkIndex.Value(), NetworkIndexInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(NetworkIndexInsideOptional, NetworkIndex); + } + + env->CallVoidMethod(javaCallbackRef, javaMethod, NetworkingStatus, DebugText, NetworkIndex); } -CHIPOnOffClusterToggleCallback::CHIPOnOffClusterToggleCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPNetworkCommissioningClusterConnectNetworkResponseCallback::CHIPNetworkCommissioningClusterConnectNetworkResponseCallback( + jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1522,7 +2011,7 @@ CHIPOnOffClusterToggleCallback::CHIPOnOffClusterToggleCallback(jobject javaCallb } } -CHIPOnOffClusterToggleCallback::~CHIPOnOffClusterToggleCallback() +CHIPNetworkCommissioningClusterConnectNetworkResponseCallback::~CHIPNetworkCommissioningClusterConnectNetworkResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1533,8 +2022,8 @@ CHIPOnOffClusterToggleCallback::~CHIPOnOffClusterToggleCallback() env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPOnOffClusterToggleCallback::CallbackFn(void * context, - const chip::app::Clusters::OnOff::Commands::Toggle::DecodableType & dataResponse) +void CHIPNetworkCommissioningClusterConnectNetworkResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::NetworkCommissioning::Commands::ConnectNetworkResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -1544,21 +2033,55 @@ void CHIPOnOffClusterToggleCallback::CallbackFn(void * context, VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr cppCallback( - reinterpret_cast(context), chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/util/Optional;Ljava/lang/Long;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - env->CallVoidMethod(javaCallbackRef, javaMethod); + jobject NetworkingStatus; + std::string NetworkingStatusClassName = "java/lang/Integer"; + std::string NetworkingStatusCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + NetworkingStatusClassName.c_str(), NetworkingStatusCtorSignature.c_str(), + static_cast(dataResponse.networkingStatus), NetworkingStatus); + jobject DebugText; + if (!dataResponse.debugText.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, DebugText); + } + else + { + jobject DebugTextInsideOptional; + DebugTextInsideOptional = + env->NewStringUTF(std::string(dataResponse.debugText.Value().data(), dataResponse.debugText.Value().size()).c_str()); + chip::JniReferences::GetInstance().CreateOptional(DebugTextInsideOptional, DebugText); + } + jobject ErrorValue; + if (dataResponse.errorValue.IsNull()) + { + ErrorValue = nullptr; + } + else + { + std::string ErrorValueClassName = "java/lang/Long"; + std::string ErrorValueCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(ErrorValueClassName.c_str(), ErrorValueCtorSignature.c_str(), + dataResponse.errorValue.Value(), ErrorValue); + } + + env->CallVoidMethod(javaCallbackRef, javaMethod, NetworkingStatus, DebugText, ErrorValue); } -CHIPOnOffClusterOffWithEffectCallback::CHIPOnOffClusterOffWithEffectCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPDiagnosticLogsClusterRetrieveLogsResponseCallback::CHIPDiagnosticLogsClusterRetrieveLogsResponseCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1574,7 +2097,7 @@ CHIPOnOffClusterOffWithEffectCallback::CHIPOnOffClusterOffWithEffectCallback(job } } -CHIPOnOffClusterOffWithEffectCallback::~CHIPOnOffClusterOffWithEffectCallback() +CHIPDiagnosticLogsClusterRetrieveLogsResponseCallback::~CHIPDiagnosticLogsClusterRetrieveLogsResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1585,8 +2108,8 @@ CHIPOnOffClusterOffWithEffectCallback::~CHIPOnOffClusterOffWithEffectCallback() env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPOnOffClusterOffWithEffectCallback::CallbackFn( - void * context, const chip::app::Clusters::OnOff::Commands::OffWithEffect::DecodableType & dataResponse) +void CHIPDiagnosticLogsClusterRetrieveLogsResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::DiagnosticLogs::Commands::RetrieveLogsResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -1596,35 +2119,66 @@ void CHIPOnOffClusterOffWithEffectCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;)V", - &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;[BLjava/util/Optional;Ljava/util/Optional;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject EffectIdentifier; - std::string EffectIdentifierClassName = "java/lang/Integer"; - std::string EffectIdentifierCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - EffectIdentifierClassName.c_str(), EffectIdentifierCtorSignature.c_str(), - static_cast(dataResponse.effectIdentifier), EffectIdentifier); - jobject EffectVariant; - std::string EffectVariantClassName = "java/lang/Integer"; - std::string EffectVariantCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - EffectVariantClassName.c_str(), EffectVariantCtorSignature.c_str(), dataResponse.effectVariant, EffectVariant); + jobject Status; + std::string StatusClassName = "java/lang/Integer"; + std::string StatusCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), + static_cast(dataResponse.status), Status); + jobject LogContent; + jbyteArray LogContentByteArray = env->NewByteArray(static_cast(dataResponse.logContent.size())); + env->SetByteArrayRegion(LogContentByteArray, 0, static_cast(dataResponse.logContent.size()), + reinterpret_cast(dataResponse.logContent.data())); + LogContent = LogContentByteArray; + jobject UTCTimeStamp; + if (!dataResponse.UTCTimeStamp.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, UTCTimeStamp); + } + else + { + jobject UTCTimeStampInsideOptional; + std::string UTCTimeStampInsideOptionalClassName = "java/lang/Long"; + std::string UTCTimeStampInsideOptionalCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + UTCTimeStampInsideOptionalClassName.c_str(), UTCTimeStampInsideOptionalCtorSignature.c_str(), + dataResponse.UTCTimeStamp.Value(), UTCTimeStampInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(UTCTimeStampInsideOptional, UTCTimeStamp); + } + jobject TimeSinceBoot; + if (!dataResponse.timeSinceBoot.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, TimeSinceBoot); + } + else + { + jobject TimeSinceBootInsideOptional; + std::string TimeSinceBootInsideOptionalClassName = "java/lang/Long"; + std::string TimeSinceBootInsideOptionalCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + TimeSinceBootInsideOptionalClassName.c_str(), TimeSinceBootInsideOptionalCtorSignature.c_str(), + dataResponse.timeSinceBoot.Value(), TimeSinceBootInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(TimeSinceBootInsideOptional, TimeSinceBoot); + } - env->CallVoidMethod(javaCallbackRef, javaMethod, EffectIdentifier, EffectVariant); + env->CallVoidMethod(javaCallbackRef, javaMethod, Status, LogContent, UTCTimeStamp, TimeSinceBoot); } -CHIPOnOffClusterOnWithRecallGlobalSceneCallback::CHIPOnOffClusterOnWithRecallGlobalSceneCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPOperationalCredentialsClusterAttestationResponseCallback::CHIPOperationalCredentialsClusterAttestationResponseCallback( + jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1640,7 +2194,7 @@ CHIPOnOffClusterOnWithRecallGlobalSceneCallback::CHIPOnOffClusterOnWithRecallGlo } } -CHIPOnOffClusterOnWithRecallGlobalSceneCallback::~CHIPOnOffClusterOnWithRecallGlobalSceneCallback() +CHIPOperationalCredentialsClusterAttestationResponseCallback::~CHIPOperationalCredentialsClusterAttestationResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1651,8 +2205,8 @@ CHIPOnOffClusterOnWithRecallGlobalSceneCallback::~CHIPOnOffClusterOnWithRecallGl env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPOnOffClusterOnWithRecallGlobalSceneCallback::CallbackFn( - void * context, const chip::app::Clusters::OnOff::Commands::OnWithRecallGlobalScene::DecodableType & dataResponse) +void CHIPOperationalCredentialsClusterAttestationResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::OperationalCredentials::Commands::AttestationResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -1662,22 +2216,35 @@ void CHIPOnOffClusterOnWithRecallGlobalSceneCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "([B[B)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - env->CallVoidMethod(javaCallbackRef, javaMethod); + jobject AttestationElements; + jbyteArray AttestationElementsByteArray = env->NewByteArray(static_cast(dataResponse.attestationElements.size())); + env->SetByteArrayRegion(AttestationElementsByteArray, 0, static_cast(dataResponse.attestationElements.size()), + reinterpret_cast(dataResponse.attestationElements.data())); + AttestationElements = AttestationElementsByteArray; + jobject AttestationSignature; + jbyteArray AttestationSignatureByteArray = env->NewByteArray(static_cast(dataResponse.attestationSignature.size())); + env->SetByteArrayRegion(AttestationSignatureByteArray, 0, static_cast(dataResponse.attestationSignature.size()), + reinterpret_cast(dataResponse.attestationSignature.data())); + AttestationSignature = AttestationSignatureByteArray; + + env->CallVoidMethod(javaCallbackRef, javaMethod, AttestationElements, AttestationSignature); } -CHIPOnOffClusterOnWithTimedOffCallback::CHIPOnOffClusterOnWithTimedOffCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPOperationalCredentialsClusterCertificateChainResponseCallback:: + CHIPOperationalCredentialsClusterCertificateChainResponseCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1693,7 +2260,8 @@ CHIPOnOffClusterOnWithTimedOffCallback::CHIPOnOffClusterOnWithTimedOffCallback(j } } -CHIPOnOffClusterOnWithTimedOffCallback::~CHIPOnOffClusterOnWithTimedOffCallback() +CHIPOperationalCredentialsClusterCertificateChainResponseCallback:: + ~CHIPOperationalCredentialsClusterCertificateChainResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1704,8 +2272,9 @@ CHIPOnOffClusterOnWithTimedOffCallback::~CHIPOnOffClusterOnWithTimedOffCallback( env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPOnOffClusterOnWithTimedOffCallback::CallbackFn( - void * context, const chip::app::Clusters::OnOff::Commands::OnWithTimedOff::DecodableType & dataResponse) +void CHIPOperationalCredentialsClusterCertificateChainResponseCallback::CallbackFn( + void * context, + const chip::app::Clusters::OperationalCredentials::Commands::CertificateChainResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -1715,39 +2284,29 @@ void CHIPOnOffClusterOnWithTimedOffCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "([B)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject OnOffControl; - std::string OnOffControlClassName = "java/lang/Integer"; - std::string OnOffControlCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(OnOffControlClassName.c_str(), OnOffControlCtorSignature.c_str(), - dataResponse.onOffControl.Raw(), OnOffControl); - jobject OnTime; - std::string OnTimeClassName = "java/lang/Integer"; - std::string OnTimeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(OnTimeClassName.c_str(), OnTimeCtorSignature.c_str(), - dataResponse.onTime, OnTime); - jobject OffWaitTime; - std::string OffWaitTimeClassName = "java/lang/Integer"; - std::string OffWaitTimeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(OffWaitTimeClassName.c_str(), OffWaitTimeCtorSignature.c_str(), - dataResponse.offWaitTime, OffWaitTime); - - env->CallVoidMethod(javaCallbackRef, javaMethod, OnOffControl, OnTime, OffWaitTime); + jobject Certificate; + jbyteArray CertificateByteArray = env->NewByteArray(static_cast(dataResponse.certificate.size())); + env->SetByteArrayRegion(CertificateByteArray, 0, static_cast(dataResponse.certificate.size()), + reinterpret_cast(dataResponse.certificate.data())); + Certificate = CertificateByteArray; + + env->CallVoidMethod(javaCallbackRef, javaMethod, Certificate); } -CHIPLevelControlClusterMoveToLevelCallback::CHIPLevelControlClusterMoveToLevelCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPOperationalCredentialsClusterCSRResponseCallback::CHIPOperationalCredentialsClusterCSRResponseCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1763,7 +2322,7 @@ CHIPLevelControlClusterMoveToLevelCallback::CHIPLevelControlClusterMoveToLevelCa } } -CHIPLevelControlClusterMoveToLevelCallback::~CHIPLevelControlClusterMoveToLevelCallback() +CHIPOperationalCredentialsClusterCSRResponseCallback::~CHIPOperationalCredentialsClusterCSRResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1774,8 +2333,8 @@ CHIPLevelControlClusterMoveToLevelCallback::~CHIPLevelControlClusterMoveToLevelC env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPLevelControlClusterMoveToLevelCallback::CallbackFn( - void * context, const chip::app::Clusters::LevelControl::Commands::MoveToLevel::DecodableType & dataResponse) +void CHIPOperationalCredentialsClusterCSRResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::OperationalCredentials::Commands::CSRResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -1785,54 +2344,34 @@ void CHIPLevelControlClusterMoveToLevelCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", - &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "([B[B)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject Level; - std::string LevelClassName = "java/lang/Integer"; - std::string LevelCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(LevelClassName.c_str(), LevelCtorSignature.c_str(), - dataResponse.level, Level); - jobject TransitionTime; - if (dataResponse.transitionTime.IsNull()) - { - TransitionTime = nullptr; - } - else - { - std::string TransitionTimeClassName = "java/lang/Integer"; - std::string TransitionTimeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(TransitionTimeClassName.c_str(), - TransitionTimeCtorSignature.c_str(), - dataResponse.transitionTime.Value(), TransitionTime); - } - jobject OptionsMask; - std::string OptionsMaskClassName = "java/lang/Integer"; - std::string OptionsMaskCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), - dataResponse.optionsMask.Raw(), OptionsMask); - jobject OptionsOverride; - std::string OptionsOverrideClassName = "java/lang/Integer"; - std::string OptionsOverrideCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(OptionsOverrideClassName.c_str(), - OptionsOverrideCtorSignature.c_str(), - dataResponse.optionsOverride.Raw(), OptionsOverride); - - env->CallVoidMethod(javaCallbackRef, javaMethod, Level, TransitionTime, OptionsMask, OptionsOverride); + jobject NOCSRElements; + jbyteArray NOCSRElementsByteArray = env->NewByteArray(static_cast(dataResponse.NOCSRElements.size())); + env->SetByteArrayRegion(NOCSRElementsByteArray, 0, static_cast(dataResponse.NOCSRElements.size()), + reinterpret_cast(dataResponse.NOCSRElements.data())); + NOCSRElements = NOCSRElementsByteArray; + jobject AttestationSignature; + jbyteArray AttestationSignatureByteArray = env->NewByteArray(static_cast(dataResponse.attestationSignature.size())); + env->SetByteArrayRegion(AttestationSignatureByteArray, 0, static_cast(dataResponse.attestationSignature.size()), + reinterpret_cast(dataResponse.attestationSignature.data())); + AttestationSignature = AttestationSignatureByteArray; + + env->CallVoidMethod(javaCallbackRef, javaMethod, NOCSRElements, AttestationSignature); } -CHIPLevelControlClusterMoveCallback::CHIPLevelControlClusterMoveCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPOperationalCredentialsClusterNOCResponseCallback::CHIPOperationalCredentialsClusterNOCResponseCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1848,7 +2387,7 @@ CHIPLevelControlClusterMoveCallback::CHIPLevelControlClusterMoveCallback(jobject } } -CHIPLevelControlClusterMoveCallback::~CHIPLevelControlClusterMoveCallback() +CHIPOperationalCredentialsClusterNOCResponseCallback::~CHIPOperationalCredentialsClusterNOCResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1859,8 +2398,8 @@ CHIPLevelControlClusterMoveCallback::~CHIPLevelControlClusterMoveCallback() env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPLevelControlClusterMoveCallback::CallbackFn( - void * context, const chip::app::Clusters::LevelControl::Commands::Move::DecodableType & dataResponse) +void CHIPOperationalCredentialsClusterNOCResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::OperationalCredentials::Commands::NOCResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -1870,9 +2409,10 @@ void CHIPLevelControlClusterMoveCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; @@ -1880,43 +2420,47 @@ void CHIPLevelControlClusterMoveCallback::CallbackFn( VerifyOrReturn(javaCallbackRef != nullptr); err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", - &javaMethod); + "(Ljava/lang/Integer;Ljava/util/Optional;Ljava/util/Optional;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject MoveMode; - std::string MoveModeClassName = "java/lang/Integer"; - std::string MoveModeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(MoveModeClassName.c_str(), MoveModeCtorSignature.c_str(), - static_cast(dataResponse.moveMode), MoveMode); - jobject Rate; - if (dataResponse.rate.IsNull()) + jobject StatusCode; + std::string StatusCodeClassName = "java/lang/Integer"; + std::string StatusCodeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(StatusCodeClassName.c_str(), StatusCodeCtorSignature.c_str(), + static_cast(dataResponse.statusCode), StatusCode); + jobject FabricIndex; + if (!dataResponse.fabricIndex.HasValue()) { - Rate = nullptr; + chip::JniReferences::GetInstance().CreateOptional(nullptr, FabricIndex); } else { - std::string RateClassName = "java/lang/Integer"; - std::string RateCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(RateClassName.c_str(), RateCtorSignature.c_str(), - dataResponse.rate.Value(), Rate); - } - jobject OptionsMask; - std::string OptionsMaskClassName = "java/lang/Integer"; - std::string OptionsMaskCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), - dataResponse.optionsMask.Raw(), OptionsMask); - jobject OptionsOverride; - std::string OptionsOverrideClassName = "java/lang/Integer"; - std::string OptionsOverrideCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(OptionsOverrideClassName.c_str(), - OptionsOverrideCtorSignature.c_str(), - dataResponse.optionsOverride.Raw(), OptionsOverride); - - env->CallVoidMethod(javaCallbackRef, javaMethod, MoveMode, Rate, OptionsMask, OptionsOverride); + jobject FabricIndexInsideOptional; + std::string FabricIndexInsideOptionalClassName = "java/lang/Integer"; + std::string FabricIndexInsideOptionalCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(FabricIndexInsideOptionalClassName.c_str(), + FabricIndexInsideOptionalCtorSignature.c_str(), + dataResponse.fabricIndex.Value(), FabricIndexInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(FabricIndexInsideOptional, FabricIndex); + } + jobject DebugText; + if (!dataResponse.debugText.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, DebugText); + } + else + { + jobject DebugTextInsideOptional; + DebugTextInsideOptional = + env->NewStringUTF(std::string(dataResponse.debugText.Value().data(), dataResponse.debugText.Value().size()).c_str()); + chip::JniReferences::GetInstance().CreateOptional(DebugTextInsideOptional, DebugText); + } + + env->CallVoidMethod(javaCallbackRef, javaMethod, StatusCode, FabricIndex, DebugText); } -CHIPLevelControlClusterStepCallback::CHIPLevelControlClusterStepCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPGroupKeyManagementClusterKeySetReadResponseCallback::CHIPGroupKeyManagementClusterKeySetReadResponseCallback( + jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1932,7 +2476,7 @@ CHIPLevelControlClusterStepCallback::CHIPLevelControlClusterStepCallback(jobject } } -CHIPLevelControlClusterStepCallback::~CHIPLevelControlClusterStepCallback() +CHIPGroupKeyManagementClusterKeySetReadResponseCallback::~CHIPGroupKeyManagementClusterKeySetReadResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -1943,8 +2487,8 @@ CHIPLevelControlClusterStepCallback::~CHIPLevelControlClusterStepCallback() env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPLevelControlClusterStepCallback::CallbackFn( - void * context, const chip::app::Clusters::LevelControl::Commands::Step::DecodableType & dataResponse) +void CHIPGroupKeyManagementClusterKeySetReadResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::GroupKeyManagement::Commands::KeySetReadResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -1954,9 +2498,10 @@ void CHIPLevelControlClusterStepCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; @@ -1964,49 +2509,132 @@ void CHIPLevelControlClusterStepCallback::CallbackFn( VerifyOrReturn(javaCallbackRef != nullptr); err = JniReferences::GetInstance().FindMethod( - env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", &javaMethod); + env, javaCallbackRef, "onSuccess", "(Lchip/devicecontroller/ChipStructs$GroupKeyManagementClusterGroupKeySetStruct;)V", + &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject StepMode; - std::string StepModeClassName = "java/lang/Integer"; - std::string StepModeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(StepModeClassName.c_str(), StepModeCtorSignature.c_str(), - static_cast(dataResponse.stepMode), StepMode); - jobject StepSize; - std::string StepSizeClassName = "java/lang/Integer"; - std::string StepSizeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(StepSizeClassName.c_str(), StepSizeCtorSignature.c_str(), - dataResponse.stepSize, StepSize); - jobject TransitionTime; - if (dataResponse.transitionTime.IsNull()) + jobject GroupKeySet; + jobject GroupKeySet_groupKeySetID; + std::string GroupKeySet_groupKeySetIDClassName = "java/lang/Integer"; + std::string GroupKeySet_groupKeySetIDCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + GroupKeySet_groupKeySetIDClassName.c_str(), GroupKeySet_groupKeySetIDCtorSignature.c_str(), + dataResponse.groupKeySet.groupKeySetID, GroupKeySet_groupKeySetID); + jobject GroupKeySet_groupKeySecurityPolicy; + std::string GroupKeySet_groupKeySecurityPolicyClassName = "java/lang/Integer"; + std::string GroupKeySet_groupKeySecurityPolicyCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + GroupKeySet_groupKeySecurityPolicyClassName.c_str(), GroupKeySet_groupKeySecurityPolicyCtorSignature.c_str(), + static_cast(dataResponse.groupKeySet.groupKeySecurityPolicy), GroupKeySet_groupKeySecurityPolicy); + jobject GroupKeySet_epochKey0; + if (dataResponse.groupKeySet.epochKey0.IsNull()) + { + GroupKeySet_epochKey0 = nullptr; + } + else + { + jbyteArray GroupKeySet_epochKey0ByteArray = + env->NewByteArray(static_cast(dataResponse.groupKeySet.epochKey0.Value().size())); + env->SetByteArrayRegion(GroupKeySet_epochKey0ByteArray, 0, + static_cast(dataResponse.groupKeySet.epochKey0.Value().size()), + reinterpret_cast(dataResponse.groupKeySet.epochKey0.Value().data())); + GroupKeySet_epochKey0 = GroupKeySet_epochKey0ByteArray; + } + jobject GroupKeySet_epochStartTime0; + if (dataResponse.groupKeySet.epochStartTime0.IsNull()) + { + GroupKeySet_epochStartTime0 = nullptr; + } + else + { + std::string GroupKeySet_epochStartTime0ClassName = "java/lang/Long"; + std::string GroupKeySet_epochStartTime0CtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + GroupKeySet_epochStartTime0ClassName.c_str(), GroupKeySet_epochStartTime0CtorSignature.c_str(), + dataResponse.groupKeySet.epochStartTime0.Value(), GroupKeySet_epochStartTime0); + } + jobject GroupKeySet_epochKey1; + if (dataResponse.groupKeySet.epochKey1.IsNull()) + { + GroupKeySet_epochKey1 = nullptr; + } + else + { + jbyteArray GroupKeySet_epochKey1ByteArray = + env->NewByteArray(static_cast(dataResponse.groupKeySet.epochKey1.Value().size())); + env->SetByteArrayRegion(GroupKeySet_epochKey1ByteArray, 0, + static_cast(dataResponse.groupKeySet.epochKey1.Value().size()), + reinterpret_cast(dataResponse.groupKeySet.epochKey1.Value().data())); + GroupKeySet_epochKey1 = GroupKeySet_epochKey1ByteArray; + } + jobject GroupKeySet_epochStartTime1; + if (dataResponse.groupKeySet.epochStartTime1.IsNull()) + { + GroupKeySet_epochStartTime1 = nullptr; + } + else + { + std::string GroupKeySet_epochStartTime1ClassName = "java/lang/Long"; + std::string GroupKeySet_epochStartTime1CtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + GroupKeySet_epochStartTime1ClassName.c_str(), GroupKeySet_epochStartTime1CtorSignature.c_str(), + dataResponse.groupKeySet.epochStartTime1.Value(), GroupKeySet_epochStartTime1); + } + jobject GroupKeySet_epochKey2; + if (dataResponse.groupKeySet.epochKey2.IsNull()) + { + GroupKeySet_epochKey2 = nullptr; + } + else + { + jbyteArray GroupKeySet_epochKey2ByteArray = + env->NewByteArray(static_cast(dataResponse.groupKeySet.epochKey2.Value().size())); + env->SetByteArrayRegion(GroupKeySet_epochKey2ByteArray, 0, + static_cast(dataResponse.groupKeySet.epochKey2.Value().size()), + reinterpret_cast(dataResponse.groupKeySet.epochKey2.Value().data())); + GroupKeySet_epochKey2 = GroupKeySet_epochKey2ByteArray; + } + jobject GroupKeySet_epochStartTime2; + if (dataResponse.groupKeySet.epochStartTime2.IsNull()) { - TransitionTime = nullptr; + GroupKeySet_epochStartTime2 = nullptr; } else { - std::string TransitionTimeClassName = "java/lang/Integer"; - std::string TransitionTimeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(TransitionTimeClassName.c_str(), - TransitionTimeCtorSignature.c_str(), - dataResponse.transitionTime.Value(), TransitionTime); - } - jobject OptionsMask; - std::string OptionsMaskClassName = "java/lang/Integer"; - std::string OptionsMaskCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), - dataResponse.optionsMask.Raw(), OptionsMask); - jobject OptionsOverride; - std::string OptionsOverrideClassName = "java/lang/Integer"; - std::string OptionsOverrideCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(OptionsOverrideClassName.c_str(), - OptionsOverrideCtorSignature.c_str(), - dataResponse.optionsOverride.Raw(), OptionsOverride); - - env->CallVoidMethod(javaCallbackRef, javaMethod, StepMode, StepSize, TransitionTime, OptionsMask, OptionsOverride); + std::string GroupKeySet_epochStartTime2ClassName = "java/lang/Long"; + std::string GroupKeySet_epochStartTime2CtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + GroupKeySet_epochStartTime2ClassName.c_str(), GroupKeySet_epochStartTime2CtorSignature.c_str(), + dataResponse.groupKeySet.epochStartTime2.Value(), GroupKeySet_epochStartTime2); + } + + jclass groupKeySetStructStructClass_0; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$GroupKeyManagementClusterGroupKeySetStruct", groupKeySetStructStructClass_0); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$GroupKeyManagementClusterGroupKeySetStruct"); + return; + } + jmethodID groupKeySetStructStructCtor_0 = + env->GetMethodID(groupKeySetStructStructClass_0, "", + "(Ljava/lang/Integer;Ljava/lang/Integer;[BLjava/lang/Long;[BLjava/lang/Long;[BLjava/lang/Long;)V"); + if (groupKeySetStructStructCtor_0 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$GroupKeyManagementClusterGroupKeySetStruct constructor"); + return; + } + + GroupKeySet = + env->NewObject(groupKeySetStructStructClass_0, groupKeySetStructStructCtor_0, GroupKeySet_groupKeySetID, + GroupKeySet_groupKeySecurityPolicy, GroupKeySet_epochKey0, GroupKeySet_epochStartTime0, + GroupKeySet_epochKey1, GroupKeySet_epochStartTime1, GroupKeySet_epochKey2, GroupKeySet_epochStartTime2); + + env->CallVoidMethod(javaCallbackRef, javaMethod, GroupKeySet); } -CHIPLevelControlClusterStopCallback::CHIPLevelControlClusterStopCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPGroupKeyManagementClusterKeySetReadAllIndicesResponseCallback:: + CHIPGroupKeyManagementClusterKeySetReadAllIndicesResponseCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2022,7 +2650,8 @@ CHIPLevelControlClusterStopCallback::CHIPLevelControlClusterStopCallback(jobject } } -CHIPLevelControlClusterStopCallback::~CHIPLevelControlClusterStopCallback() +CHIPGroupKeyManagementClusterKeySetReadAllIndicesResponseCallback:: + ~CHIPGroupKeyManagementClusterKeySetReadAllIndicesResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2033,8 +2662,9 @@ CHIPLevelControlClusterStopCallback::~CHIPLevelControlClusterStopCallback() env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPLevelControlClusterStopCallback::CallbackFn( - void * context, const chip::app::Clusters::LevelControl::Commands::Stop::DecodableType & dataResponse) +void CHIPGroupKeyManagementClusterKeySetReadAllIndicesResponseCallback::CallbackFn( + void * context, + const chip::app::Clusters::GroupKeyManagement::Commands::KeySetReadAllIndicesResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -2044,51 +2674,54 @@ void CHIPLevelControlClusterStopCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;)V", - &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/ArrayList;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject OptionsMask; - std::string OptionsMaskClassName = "java/lang/Integer"; - std::string OptionsMaskCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), - dataResponse.optionsMask.Raw(), OptionsMask); - jobject OptionsOverride; - std::string OptionsOverrideClassName = "java/lang/Integer"; - std::string OptionsOverrideCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(OptionsOverrideClassName.c_str(), - OptionsOverrideCtorSignature.c_str(), - dataResponse.optionsOverride.Raw(), OptionsOverride); - - env->CallVoidMethod(javaCallbackRef, javaMethod, OptionsMask, OptionsOverride); -} -CHIPLevelControlClusterMoveToLevelWithOnOffCallback::CHIPLevelControlClusterMoveToLevelWithOnOffCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not create global reference for Java callback"); - return; - } + jobject GroupKeySetIDs; + chip::JniReferences::GetInstance().CreateArrayList(GroupKeySetIDs); - javaCallbackRef = env->NewGlobalRef(javaCallback); - if (javaCallbackRef == nullptr) + auto iter_GroupKeySetIDs_0 = dataResponse.groupKeySetIDs.begin(); + while (iter_GroupKeySetIDs_0.Next()) + { + auto & entry_0 = iter_GroupKeySetIDs_0.GetValue(); + jobject newElement_0; + std::string newElement_0ClassName = "java/lang/Integer"; + std::string newElement_0CtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0ClassName.c_str(), + newElement_0CtorSignature.c_str(), entry_0, newElement_0); + chip::JniReferences::GetInstance().AddToList(GroupKeySetIDs, newElement_0); + } + + env->CallVoidMethod(javaCallbackRef, javaMethod, GroupKeySetIDs); +} +CHIPDoorLockClusterGetWeekDayScheduleResponseCallback::CHIPDoorLockClusterGetWeekDayScheduleResponseCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = 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"); } } -CHIPLevelControlClusterMoveToLevelWithOnOffCallback::~CHIPLevelControlClusterMoveToLevelWithOnOffCallback() +CHIPDoorLockClusterGetWeekDayScheduleResponseCallback::~CHIPDoorLockClusterGetWeekDayScheduleResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2099,8 +2732,8 @@ CHIPLevelControlClusterMoveToLevelWithOnOffCallback::~CHIPLevelControlClusterMov env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPLevelControlClusterMoveToLevelWithOnOffCallback::CallbackFn( - void * context, const chip::app::Clusters::LevelControl::Commands::MoveToLevelWithOnOff::DecodableType & dataResponse) +void CHIPDoorLockClusterGetWeekDayScheduleResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::DoorLock::Commands::GetWeekDayScheduleResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -2110,55 +2743,119 @@ void CHIPLevelControlClusterMoveToLevelWithOnOffCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", - &javaMethod); + err = JniReferences::GetInstance().FindMethod( + env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/" + "Optional;Ljava/util/Optional;Ljava/util/Optional;)V", + &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject Level; - std::string LevelClassName = "java/lang/Integer"; - std::string LevelCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(LevelClassName.c_str(), LevelCtorSignature.c_str(), - dataResponse.level, Level); - jobject TransitionTime; - if (dataResponse.transitionTime.IsNull()) + jobject WeekDayIndex; + std::string WeekDayIndexClassName = "java/lang/Integer"; + std::string WeekDayIndexCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(WeekDayIndexClassName.c_str(), WeekDayIndexCtorSignature.c_str(), + dataResponse.weekDayIndex, WeekDayIndex); + jobject UserIndex; + std::string UserIndexClassName = "java/lang/Integer"; + std::string UserIndexCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(UserIndexClassName.c_str(), UserIndexCtorSignature.c_str(), + dataResponse.userIndex, UserIndex); + jobject Status; + std::string StatusClassName = "java/lang/Integer"; + std::string StatusCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), + static_cast(dataResponse.status), Status); + jobject DaysMask; + if (!dataResponse.daysMask.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, DaysMask); + } + else + { + jobject DaysMaskInsideOptional; + std::string DaysMaskInsideOptionalClassName = "java/lang/Integer"; + std::string DaysMaskInsideOptionalCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(DaysMaskInsideOptionalClassName.c_str(), + DaysMaskInsideOptionalCtorSignature.c_str(), + dataResponse.daysMask.Value().Raw(), DaysMaskInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(DaysMaskInsideOptional, DaysMask); + } + jobject StartHour; + if (!dataResponse.startHour.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, StartHour); + } + else { - TransitionTime = nullptr; + jobject StartHourInsideOptional; + std::string StartHourInsideOptionalClassName = "java/lang/Integer"; + std::string StartHourInsideOptionalCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(StartHourInsideOptionalClassName.c_str(), + StartHourInsideOptionalCtorSignature.c_str(), + dataResponse.startHour.Value(), StartHourInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(StartHourInsideOptional, StartHour); + } + jobject StartMinute; + if (!dataResponse.startMinute.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, StartMinute); + } + else + { + jobject StartMinuteInsideOptional; + std::string StartMinuteInsideOptionalClassName = "java/lang/Integer"; + std::string StartMinuteInsideOptionalCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(StartMinuteInsideOptionalClassName.c_str(), + StartMinuteInsideOptionalCtorSignature.c_str(), + dataResponse.startMinute.Value(), StartMinuteInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(StartMinuteInsideOptional, StartMinute); + } + jobject EndHour; + if (!dataResponse.endHour.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, EndHour); + } + else + { + jobject EndHourInsideOptional; + std::string EndHourInsideOptionalClassName = "java/lang/Integer"; + std::string EndHourInsideOptionalCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(EndHourInsideOptionalClassName.c_str(), + EndHourInsideOptionalCtorSignature.c_str(), + dataResponse.endHour.Value(), EndHourInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(EndHourInsideOptional, EndHour); + } + jobject EndMinute; + if (!dataResponse.endMinute.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, EndMinute); } else { - std::string TransitionTimeClassName = "java/lang/Integer"; - std::string TransitionTimeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(TransitionTimeClassName.c_str(), - TransitionTimeCtorSignature.c_str(), - dataResponse.transitionTime.Value(), TransitionTime); - } - jobject OptionsMask; - std::string OptionsMaskClassName = "java/lang/Integer"; - std::string OptionsMaskCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), - dataResponse.optionsMask.Raw(), OptionsMask); - jobject OptionsOverride; - std::string OptionsOverrideClassName = "java/lang/Integer"; - std::string OptionsOverrideCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(OptionsOverrideClassName.c_str(), - OptionsOverrideCtorSignature.c_str(), - dataResponse.optionsOverride.Raw(), OptionsOverride); - - env->CallVoidMethod(javaCallbackRef, javaMethod, Level, TransitionTime, OptionsMask, OptionsOverride); + jobject EndMinuteInsideOptional; + std::string EndMinuteInsideOptionalClassName = "java/lang/Integer"; + std::string EndMinuteInsideOptionalCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(EndMinuteInsideOptionalClassName.c_str(), + EndMinuteInsideOptionalCtorSignature.c_str(), + dataResponse.endMinute.Value(), EndMinuteInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(EndMinuteInsideOptional, EndMinute); + } + + env->CallVoidMethod(javaCallbackRef, javaMethod, WeekDayIndex, UserIndex, Status, DaysMask, StartHour, StartMinute, EndHour, + EndMinute); } -CHIPLevelControlClusterMoveWithOnOffCallback::CHIPLevelControlClusterMoveWithOnOffCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPDoorLockClusterGetYearDayScheduleResponseCallback::CHIPDoorLockClusterGetYearDayScheduleResponseCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2174,7 +2871,7 @@ CHIPLevelControlClusterMoveWithOnOffCallback::CHIPLevelControlClusterMoveWithOnO } } -CHIPLevelControlClusterMoveWithOnOffCallback::~CHIPLevelControlClusterMoveWithOnOffCallback() +CHIPDoorLockClusterGetYearDayScheduleResponseCallback::~CHIPDoorLockClusterGetYearDayScheduleResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2185,8 +2882,8 @@ CHIPLevelControlClusterMoveWithOnOffCallback::~CHIPLevelControlClusterMoveWithOn env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPLevelControlClusterMoveWithOnOffCallback::CallbackFn( - void * context, const chip::app::Clusters::LevelControl::Commands::MoveWithOnOff::DecodableType & dataResponse) +void CHIPDoorLockClusterGetYearDayScheduleResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::DoorLock::Commands::GetYearDayScheduleResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -2196,53 +2893,71 @@ void CHIPLevelControlClusterMoveWithOnOffCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", - &javaMethod); + err = JniReferences::GetInstance().FindMethod( + env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/util/Optional;Ljava/util/Optional;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject MoveMode; - std::string MoveModeClassName = "java/lang/Integer"; - std::string MoveModeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(MoveModeClassName.c_str(), MoveModeCtorSignature.c_str(), - static_cast(dataResponse.moveMode), MoveMode); - jobject Rate; - if (dataResponse.rate.IsNull()) + jobject YearDayIndex; + std::string YearDayIndexClassName = "java/lang/Integer"; + std::string YearDayIndexCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(YearDayIndexClassName.c_str(), YearDayIndexCtorSignature.c_str(), + dataResponse.yearDayIndex, YearDayIndex); + jobject UserIndex; + std::string UserIndexClassName = "java/lang/Integer"; + std::string UserIndexCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(UserIndexClassName.c_str(), UserIndexCtorSignature.c_str(), + dataResponse.userIndex, UserIndex); + jobject Status; + std::string StatusClassName = "java/lang/Integer"; + std::string StatusCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), + static_cast(dataResponse.status), Status); + jobject LocalStartTime; + if (!dataResponse.localStartTime.HasValue()) { - Rate = nullptr; + chip::JniReferences::GetInstance().CreateOptional(nullptr, LocalStartTime); } else { - std::string RateClassName = "java/lang/Integer"; - std::string RateCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(RateClassName.c_str(), RateCtorSignature.c_str(), - dataResponse.rate.Value(), Rate); - } - jobject OptionsMask; - std::string OptionsMaskClassName = "java/lang/Integer"; - std::string OptionsMaskCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), - dataResponse.optionsMask.Raw(), OptionsMask); - jobject OptionsOverride; - std::string OptionsOverrideClassName = "java/lang/Integer"; - std::string OptionsOverrideCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(OptionsOverrideClassName.c_str(), - OptionsOverrideCtorSignature.c_str(), - dataResponse.optionsOverride.Raw(), OptionsOverride); - - env->CallVoidMethod(javaCallbackRef, javaMethod, MoveMode, Rate, OptionsMask, OptionsOverride); + jobject LocalStartTimeInsideOptional; + std::string LocalStartTimeInsideOptionalClassName = "java/lang/Long"; + std::string LocalStartTimeInsideOptionalCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + LocalStartTimeInsideOptionalClassName.c_str(), LocalStartTimeInsideOptionalCtorSignature.c_str(), + dataResponse.localStartTime.Value(), LocalStartTimeInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(LocalStartTimeInsideOptional, LocalStartTime); + } + jobject LocalEndTime; + if (!dataResponse.localEndTime.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, LocalEndTime); + } + else + { + jobject LocalEndTimeInsideOptional; + std::string LocalEndTimeInsideOptionalClassName = "java/lang/Long"; + std::string LocalEndTimeInsideOptionalCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + LocalEndTimeInsideOptionalClassName.c_str(), LocalEndTimeInsideOptionalCtorSignature.c_str(), + dataResponse.localEndTime.Value(), LocalEndTimeInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(LocalEndTimeInsideOptional, LocalEndTime); + } + + env->CallVoidMethod(javaCallbackRef, javaMethod, YearDayIndex, UserIndex, Status, LocalStartTime, LocalEndTime); } -CHIPLevelControlClusterStepWithOnOffCallback::CHIPLevelControlClusterStepWithOnOffCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPDoorLockClusterGetHolidayScheduleResponseCallback::CHIPDoorLockClusterGetHolidayScheduleResponseCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2258,7 +2973,7 @@ CHIPLevelControlClusterStepWithOnOffCallback::CHIPLevelControlClusterStepWithOnO } } -CHIPLevelControlClusterStepWithOnOffCallback::~CHIPLevelControlClusterStepWithOnOffCallback() +CHIPDoorLockClusterGetHolidayScheduleResponseCallback::~CHIPDoorLockClusterGetHolidayScheduleResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2269,8 +2984,8 @@ CHIPLevelControlClusterStepWithOnOffCallback::~CHIPLevelControlClusterStepWithOn env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPLevelControlClusterStepWithOnOffCallback::CallbackFn( - void * context, const chip::app::Clusters::LevelControl::Commands::StepWithOnOff::DecodableType & dataResponse) +void CHIPDoorLockClusterGetHolidayScheduleResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::DoorLock::Commands::GetHolidayScheduleResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -2280,9 +2995,10 @@ void CHIPLevelControlClusterStepWithOnOffCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; @@ -2291,48 +3007,69 @@ void CHIPLevelControlClusterStepWithOnOffCallback::CallbackFn( err = JniReferences::GetInstance().FindMethod( env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", &javaMethod); + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject StepMode; - std::string StepModeClassName = "java/lang/Integer"; - std::string StepModeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(StepModeClassName.c_str(), StepModeCtorSignature.c_str(), - static_cast(dataResponse.stepMode), StepMode); - jobject StepSize; - std::string StepSizeClassName = "java/lang/Integer"; - std::string StepSizeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(StepSizeClassName.c_str(), StepSizeCtorSignature.c_str(), - dataResponse.stepSize, StepSize); - jobject TransitionTime; - if (dataResponse.transitionTime.IsNull()) + jobject HolidayIndex; + std::string HolidayIndexClassName = "java/lang/Integer"; + std::string HolidayIndexCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(HolidayIndexClassName.c_str(), HolidayIndexCtorSignature.c_str(), + dataResponse.holidayIndex, HolidayIndex); + jobject Status; + std::string StatusClassName = "java/lang/Integer"; + std::string StatusCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), + static_cast(dataResponse.status), Status); + jobject LocalStartTime; + if (!dataResponse.localStartTime.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, LocalStartTime); + } + else + { + jobject LocalStartTimeInsideOptional; + std::string LocalStartTimeInsideOptionalClassName = "java/lang/Long"; + std::string LocalStartTimeInsideOptionalCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + LocalStartTimeInsideOptionalClassName.c_str(), LocalStartTimeInsideOptionalCtorSignature.c_str(), + dataResponse.localStartTime.Value(), LocalStartTimeInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(LocalStartTimeInsideOptional, LocalStartTime); + } + jobject LocalEndTime; + if (!dataResponse.localEndTime.HasValue()) { - TransitionTime = nullptr; + chip::JniReferences::GetInstance().CreateOptional(nullptr, LocalEndTime); } else { - std::string TransitionTimeClassName = "java/lang/Integer"; - std::string TransitionTimeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(TransitionTimeClassName.c_str(), - TransitionTimeCtorSignature.c_str(), - dataResponse.transitionTime.Value(), TransitionTime); - } - jobject OptionsMask; - std::string OptionsMaskClassName = "java/lang/Integer"; - std::string OptionsMaskCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), - dataResponse.optionsMask.Raw(), OptionsMask); - jobject OptionsOverride; - std::string OptionsOverrideClassName = "java/lang/Integer"; - std::string OptionsOverrideCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(OptionsOverrideClassName.c_str(), - OptionsOverrideCtorSignature.c_str(), - dataResponse.optionsOverride.Raw(), OptionsOverride); - - env->CallVoidMethod(javaCallbackRef, javaMethod, StepMode, StepSize, TransitionTime, OptionsMask, OptionsOverride); + jobject LocalEndTimeInsideOptional; + std::string LocalEndTimeInsideOptionalClassName = "java/lang/Long"; + std::string LocalEndTimeInsideOptionalCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + LocalEndTimeInsideOptionalClassName.c_str(), LocalEndTimeInsideOptionalCtorSignature.c_str(), + dataResponse.localEndTime.Value(), LocalEndTimeInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(LocalEndTimeInsideOptional, LocalEndTime); + } + jobject OperatingMode; + if (!dataResponse.operatingMode.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, OperatingMode); + } + else + { + jobject OperatingModeInsideOptional; + std::string OperatingModeInsideOptionalClassName = "java/lang/Integer"; + std::string OperatingModeInsideOptionalCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + OperatingModeInsideOptionalClassName.c_str(), OperatingModeInsideOptionalCtorSignature.c_str(), + static_cast(dataResponse.operatingMode.Value()), OperatingModeInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(OperatingModeInsideOptional, OperatingMode); + } + + env->CallVoidMethod(javaCallbackRef, javaMethod, HolidayIndex, Status, LocalStartTime, LocalEndTime, OperatingMode); } -CHIPLevelControlClusterStopWithOnOffCallback::CHIPLevelControlClusterStopWithOnOffCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPDoorLockClusterGetUserResponseCallback::CHIPDoorLockClusterGetUserResponseCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2348,7 +3085,7 @@ CHIPLevelControlClusterStopWithOnOffCallback::CHIPLevelControlClusterStopWithOnO } } -CHIPLevelControlClusterStopWithOnOffCallback::~CHIPLevelControlClusterStopWithOnOffCallback() +CHIPDoorLockClusterGetUserResponseCallback::~CHIPDoorLockClusterGetUserResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2359,8 +3096,8 @@ CHIPLevelControlClusterStopWithOnOffCallback::~CHIPLevelControlClusterStopWithOn env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPLevelControlClusterStopWithOnOffCallback::CallbackFn( - void * context, const chip::app::Clusters::LevelControl::Commands::StopWithOnOff::DecodableType & dataResponse) +void CHIPDoorLockClusterGetUserResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::DoorLock::Commands::GetUserResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -2370,35 +3107,180 @@ void CHIPLevelControlClusterStopWithOnOffCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr cppCallback( + reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;)V", - &javaMethod); + err = JniReferences::GetInstance().FindMethod( + env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/util/" + "ArrayList;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", + &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject OptionsMask; - std::string OptionsMaskClassName = "java/lang/Integer"; - std::string OptionsMaskCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), - dataResponse.optionsMask.Raw(), OptionsMask); - jobject OptionsOverride; - std::string OptionsOverrideClassName = "java/lang/Integer"; - std::string OptionsOverrideCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(OptionsOverrideClassName.c_str(), - OptionsOverrideCtorSignature.c_str(), - dataResponse.optionsOverride.Raw(), OptionsOverride); - - env->CallVoidMethod(javaCallbackRef, javaMethod, OptionsMask, OptionsOverride); + jobject UserIndex; + std::string UserIndexClassName = "java/lang/Integer"; + std::string UserIndexCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(UserIndexClassName.c_str(), UserIndexCtorSignature.c_str(), + dataResponse.userIndex, UserIndex); + jobject UserName; + if (dataResponse.userName.IsNull()) + { + UserName = nullptr; + } + else + { + UserName = + env->NewStringUTF(std::string(dataResponse.userName.Value().data(), dataResponse.userName.Value().size()).c_str()); + } + jobject UserUniqueID; + if (dataResponse.userUniqueID.IsNull()) + { + UserUniqueID = nullptr; + } + else + { + std::string UserUniqueIDClassName = "java/lang/Long"; + std::string UserUniqueIDCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + UserUniqueIDClassName.c_str(), UserUniqueIDCtorSignature.c_str(), dataResponse.userUniqueID.Value(), UserUniqueID); + } + jobject UserStatus; + if (dataResponse.userStatus.IsNull()) + { + UserStatus = nullptr; + } + else + { + std::string UserStatusClassName = "java/lang/Integer"; + std::string UserStatusCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(UserStatusClassName.c_str(), UserStatusCtorSignature.c_str(), + static_cast(dataResponse.userStatus.Value()), + UserStatus); + } + jobject UserType; + if (dataResponse.userType.IsNull()) + { + UserType = nullptr; + } + else + { + std::string UserTypeClassName = "java/lang/Integer"; + std::string UserTypeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(UserTypeClassName.c_str(), UserTypeCtorSignature.c_str(), + static_cast(dataResponse.userType.Value()), + UserType); + } + jobject CredentialRule; + if (dataResponse.credentialRule.IsNull()) + { + CredentialRule = nullptr; + } + else + { + std::string CredentialRuleClassName = "java/lang/Integer"; + std::string CredentialRuleCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + CredentialRuleClassName.c_str(), CredentialRuleCtorSignature.c_str(), + static_cast(dataResponse.credentialRule.Value()), CredentialRule); + } + jobject Credentials; + if (dataResponse.credentials.IsNull()) + { + Credentials = nullptr; + } + else + { + chip::JniReferences::GetInstance().CreateArrayList(Credentials); + + auto iter_Credentials_1 = dataResponse.credentials.Value().begin(); + while (iter_Credentials_1.Next()) + { + auto & entry_1 = iter_Credentials_1.GetValue(); + jobject newElement_1; + jobject newElement_1_credentialType; + std::string newElement_1_credentialTypeClassName = "java/lang/Integer"; + std::string newElement_1_credentialTypeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_1_credentialTypeClassName.c_str(), newElement_1_credentialTypeCtorSignature.c_str(), + static_cast(entry_1.credentialType), newElement_1_credentialType); + jobject newElement_1_credentialIndex; + std::string newElement_1_credentialIndexClassName = "java/lang/Integer"; + std::string newElement_1_credentialIndexCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_1_credentialIndexClassName.c_str(), + newElement_1_credentialIndexCtorSignature.c_str(), + entry_1.credentialIndex, newElement_1_credentialIndex); + + jclass credentialStructStructClass_2; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$DoorLockClusterCredentialStruct", credentialStructStructClass_2); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$DoorLockClusterCredentialStruct"); + return; + } + jmethodID credentialStructStructCtor_2 = + env->GetMethodID(credentialStructStructClass_2, "", "(Ljava/lang/Integer;Ljava/lang/Integer;)V"); + if (credentialStructStructCtor_2 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$DoorLockClusterCredentialStruct constructor"); + return; + } + + newElement_1 = env->NewObject(credentialStructStructClass_2, credentialStructStructCtor_2, newElement_1_credentialType, + newElement_1_credentialIndex); + chip::JniReferences::GetInstance().AddToList(Credentials, newElement_1); + } + } + jobject CreatorFabricIndex; + if (dataResponse.creatorFabricIndex.IsNull()) + { + CreatorFabricIndex = nullptr; + } + else + { + std::string CreatorFabricIndexClassName = "java/lang/Integer"; + std::string CreatorFabricIndexCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(CreatorFabricIndexClassName.c_str(), + CreatorFabricIndexCtorSignature.c_str(), + dataResponse.creatorFabricIndex.Value(), CreatorFabricIndex); + } + jobject LastModifiedFabricIndex; + if (dataResponse.lastModifiedFabricIndex.IsNull()) + { + LastModifiedFabricIndex = nullptr; + } + else + { + std::string LastModifiedFabricIndexClassName = "java/lang/Integer"; + std::string LastModifiedFabricIndexCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + LastModifiedFabricIndexClassName.c_str(), LastModifiedFabricIndexCtorSignature.c_str(), + dataResponse.lastModifiedFabricIndex.Value(), LastModifiedFabricIndex); + } + jobject NextUserIndex; + if (dataResponse.nextUserIndex.IsNull()) + { + NextUserIndex = nullptr; + } + else + { + std::string NextUserIndexClassName = "java/lang/Integer"; + std::string NextUserIndexCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + NextUserIndexClassName.c_str(), NextUserIndexCtorSignature.c_str(), dataResponse.nextUserIndex.Value(), NextUserIndex); + } + + env->CallVoidMethod(javaCallbackRef, javaMethod, UserIndex, UserName, UserUniqueID, UserStatus, UserType, CredentialRule, + Credentials, CreatorFabricIndex, LastModifiedFabricIndex, NextUserIndex); } -CHIPLevelControlClusterMoveToClosestFrequencyCallback::CHIPLevelControlClusterMoveToClosestFrequencyCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPDoorLockClusterSetCredentialResponseCallback::CHIPDoorLockClusterSetCredentialResponseCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2414,7 +3296,7 @@ CHIPLevelControlClusterMoveToClosestFrequencyCallback::CHIPLevelControlClusterMo } } -CHIPLevelControlClusterMoveToClosestFrequencyCallback::~CHIPLevelControlClusterMoveToClosestFrequencyCallback() +CHIPDoorLockClusterSetCredentialResponseCallback::~CHIPDoorLockClusterSetCredentialResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2425,8 +3307,8 @@ CHIPLevelControlClusterMoveToClosestFrequencyCallback::~CHIPLevelControlClusterM env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPLevelControlClusterMoveToClosestFrequencyCallback::CallbackFn( - void * context, const chip::app::Clusters::LevelControl::Commands::MoveToClosestFrequency::DecodableType & dataResponse) +void CHIPDoorLockClusterSetCredentialResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::DoorLock::Commands::SetCredentialResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -2436,29 +3318,55 @@ void CHIPLevelControlClusterMoveToClosestFrequencyCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject Frequency; - std::string FrequencyClassName = "java/lang/Integer"; - std::string FrequencyCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(FrequencyClassName.c_str(), FrequencyCtorSignature.c_str(), - dataResponse.frequency, Frequency); + jobject Status; + std::string StatusClassName = "java/lang/Integer"; + std::string StatusCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), + static_cast(dataResponse.status), Status); + jobject UserIndex; + if (dataResponse.userIndex.IsNull()) + { + UserIndex = nullptr; + } + else + { + std::string UserIndexClassName = "java/lang/Integer"; + std::string UserIndexCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(UserIndexClassName.c_str(), UserIndexCtorSignature.c_str(), + dataResponse.userIndex.Value(), UserIndex); + } + jobject NextCredentialIndex; + if (dataResponse.nextCredentialIndex.IsNull()) + { + NextCredentialIndex = nullptr; + } + else + { + std::string NextCredentialIndexClassName = "java/lang/Integer"; + std::string NextCredentialIndexCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + NextCredentialIndexClassName.c_str(), NextCredentialIndexCtorSignature.c_str(), + dataResponse.nextCredentialIndex.Value(), NextCredentialIndex); + } - env->CallVoidMethod(javaCallbackRef, javaMethod, Frequency); + env->CallVoidMethod(javaCallbackRef, javaMethod, Status, UserIndex, NextCredentialIndex); } -CHIPActionsClusterInstantActionCallback::CHIPActionsClusterInstantActionCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPDoorLockClusterGetCredentialStatusResponseCallback::CHIPDoorLockClusterGetCredentialStatusResponseCallback( + jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2474,7 +3382,7 @@ CHIPActionsClusterInstantActionCallback::CHIPActionsClusterInstantActionCallback } } -CHIPActionsClusterInstantActionCallback::~CHIPActionsClusterInstantActionCallback() +CHIPDoorLockClusterGetCredentialStatusResponseCallback::~CHIPDoorLockClusterGetCredentialStatusResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2485,8 +3393,8 @@ CHIPActionsClusterInstantActionCallback::~CHIPActionsClusterInstantActionCallbac env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPActionsClusterInstantActionCallback::CallbackFn( - void * context, const chip::app::Clusters::Actions::Commands::InstantAction::DecodableType & dataResponse) +void CHIPDoorLockClusterGetCredentialStatusResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::DoorLock::Commands::GetCredentialStatusResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -2496,125 +3404,84 @@ void CHIPActionsClusterInstantActionCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/util/Optional;)V", - &javaMethod); + err = JniReferences::GetInstance().FindMethod( + env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Boolean;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject ActionID; - std::string ActionIDClassName = "java/lang/Integer"; - std::string ActionIDCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(ActionIDClassName.c_str(), ActionIDCtorSignature.c_str(), - dataResponse.actionID, ActionID); - jobject InvokeID; - if (!dataResponse.invokeID.HasValue()) + jobject CredentialExists; + std::string CredentialExistsClassName = "java/lang/Boolean"; + std::string CredentialExistsCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + CredentialExistsClassName.c_str(), CredentialExistsCtorSignature.c_str(), dataResponse.credentialExists, CredentialExists); + jobject UserIndex; + if (dataResponse.userIndex.IsNull()) { - chip::JniReferences::GetInstance().CreateOptional(nullptr, InvokeID); + UserIndex = nullptr; } else { - jobject InvokeIDInsideOptional; - std::string InvokeIDInsideOptionalClassName = "java/lang/Long"; - std::string InvokeIDInsideOptionalCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(InvokeIDInsideOptionalClassName.c_str(), - InvokeIDInsideOptionalCtorSignature.c_str(), - dataResponse.invokeID.Value(), InvokeIDInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(InvokeIDInsideOptional, InvokeID); + std::string UserIndexClassName = "java/lang/Integer"; + std::string UserIndexCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(UserIndexClassName.c_str(), UserIndexCtorSignature.c_str(), + dataResponse.userIndex.Value(), UserIndex); } - - env->CallVoidMethod(javaCallbackRef, javaMethod, ActionID, InvokeID); -} -CHIPActionsClusterInstantActionWithTransitionCallback::CHIPActionsClusterInstantActionWithTransitionCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) + jobject CreatorFabricIndex; + if (dataResponse.creatorFabricIndex.IsNull()) { - ChipLogError(Zcl, "Could not create global reference for Java callback"); - return; + CreatorFabricIndex = nullptr; } - - javaCallbackRef = env->NewGlobalRef(javaCallback); - if (javaCallbackRef == nullptr) + else { - ChipLogError(Zcl, "Could not create global reference for Java callback"); + std::string CreatorFabricIndexClassName = "java/lang/Integer"; + std::string CreatorFabricIndexCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(CreatorFabricIndexClassName.c_str(), + CreatorFabricIndexCtorSignature.c_str(), + dataResponse.creatorFabricIndex.Value(), CreatorFabricIndex); } -} - -CHIPActionsClusterInstantActionWithTransitionCallback::~CHIPActionsClusterInstantActionWithTransitionCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) + jobject LastModifiedFabricIndex; + if (dataResponse.lastModifiedFabricIndex.IsNull()) { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; + LastModifiedFabricIndex = nullptr; } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPActionsClusterInstantActionWithTransitionCallback::CallbackFn( - void * context, const chip::app::Clusters::Actions::Commands::InstantActionWithTransition::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/util/Optional;Ljava/lang/Integer;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject ActionID; - std::string ActionIDClassName = "java/lang/Integer"; - std::string ActionIDCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(ActionIDClassName.c_str(), ActionIDCtorSignature.c_str(), - dataResponse.actionID, ActionID); - jobject InvokeID; - if (!dataResponse.invokeID.HasValue()) + else + { + std::string LastModifiedFabricIndexClassName = "java/lang/Integer"; + std::string LastModifiedFabricIndexCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + LastModifiedFabricIndexClassName.c_str(), LastModifiedFabricIndexCtorSignature.c_str(), + dataResponse.lastModifiedFabricIndex.Value(), LastModifiedFabricIndex); + } + jobject NextCredentialIndex; + if (dataResponse.nextCredentialIndex.IsNull()) { - chip::JniReferences::GetInstance().CreateOptional(nullptr, InvokeID); + NextCredentialIndex = nullptr; } else { - jobject InvokeIDInsideOptional; - std::string InvokeIDInsideOptionalClassName = "java/lang/Long"; - std::string InvokeIDInsideOptionalCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(InvokeIDInsideOptionalClassName.c_str(), - InvokeIDInsideOptionalCtorSignature.c_str(), - dataResponse.invokeID.Value(), InvokeIDInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(InvokeIDInsideOptional, InvokeID); + std::string NextCredentialIndexClassName = "java/lang/Integer"; + std::string NextCredentialIndexCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + NextCredentialIndexClassName.c_str(), NextCredentialIndexCtorSignature.c_str(), + dataResponse.nextCredentialIndex.Value(), NextCredentialIndex); } - jobject TransitionTime; - std::string TransitionTimeClassName = "java/lang/Integer"; - std::string TransitionTimeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - TransitionTimeClassName.c_str(), TransitionTimeCtorSignature.c_str(), dataResponse.transitionTime, TransitionTime); - env->CallVoidMethod(javaCallbackRef, javaMethod, ActionID, InvokeID, TransitionTime); + env->CallVoidMethod(javaCallbackRef, javaMethod, CredentialExists, UserIndex, CreatorFabricIndex, LastModifiedFabricIndex, + NextCredentialIndex); } -CHIPActionsClusterStartActionCallback::CHIPActionsClusterStartActionCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPThermostatClusterGetWeeklyScheduleResponseCallback::CHIPThermostatClusterGetWeeklyScheduleResponseCallback( + jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2630,7 +3497,7 @@ CHIPActionsClusterStartActionCallback::CHIPActionsClusterStartActionCallback(job } } -CHIPActionsClusterStartActionCallback::~CHIPActionsClusterStartActionCallback() +CHIPThermostatClusterGetWeeklyScheduleResponseCallback::~CHIPThermostatClusterGetWeeklyScheduleResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2641,8 +3508,8 @@ CHIPActionsClusterStartActionCallback::~CHIPActionsClusterStartActionCallback() env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPActionsClusterStartActionCallback::CallbackFn( - void * context, const chip::app::Clusters::Actions::Commands::StartAction::DecodableType & dataResponse) +void CHIPThermostatClusterGetWeeklyScheduleResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::Thermostat::Commands::GetWeeklyScheduleResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -2652,44 +3519,107 @@ void CHIPActionsClusterStartActionCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/util/Optional;)V", - &javaMethod); + err = JniReferences::GetInstance().FindMethod( + env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/util/ArrayList;)V", + &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject ActionID; - std::string ActionIDClassName = "java/lang/Integer"; - std::string ActionIDCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(ActionIDClassName.c_str(), ActionIDCtorSignature.c_str(), - dataResponse.actionID, ActionID); - jobject InvokeID; - if (!dataResponse.invokeID.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, InvokeID); - } - else + jobject NumberOfTransitionsForSequence; + std::string NumberOfTransitionsForSequenceClassName = "java/lang/Integer"; + std::string NumberOfTransitionsForSequenceCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + NumberOfTransitionsForSequenceClassName.c_str(), NumberOfTransitionsForSequenceCtorSignature.c_str(), + dataResponse.numberOfTransitionsForSequence, NumberOfTransitionsForSequence); + jobject DayOfWeekForSequence; + std::string DayOfWeekForSequenceClassName = "java/lang/Integer"; + std::string DayOfWeekForSequenceCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(DayOfWeekForSequenceClassName.c_str(), + DayOfWeekForSequenceCtorSignature.c_str(), + dataResponse.dayOfWeekForSequence.Raw(), DayOfWeekForSequence); + jobject ModeForSequence; + std::string ModeForSequenceClassName = "java/lang/Integer"; + std::string ModeForSequenceCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(ModeForSequenceClassName.c_str(), + ModeForSequenceCtorSignature.c_str(), + dataResponse.modeForSequence.Raw(), ModeForSequence); + jobject Transitions; + chip::JniReferences::GetInstance().CreateArrayList(Transitions); + + auto iter_Transitions_0 = dataResponse.transitions.begin(); + while (iter_Transitions_0.Next()) { - jobject InvokeIDInsideOptional; - std::string InvokeIDInsideOptionalClassName = "java/lang/Long"; - std::string InvokeIDInsideOptionalCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(InvokeIDInsideOptionalClassName.c_str(), - InvokeIDInsideOptionalCtorSignature.c_str(), - dataResponse.invokeID.Value(), InvokeIDInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(InvokeIDInsideOptional, InvokeID); + auto & entry_0 = iter_Transitions_0.GetValue(); + jobject newElement_0; + jobject newElement_0_transitionTime; + std::string newElement_0_transitionTimeClassName = "java/lang/Integer"; + std::string newElement_0_transitionTimeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0_transitionTimeClassName.c_str(), + newElement_0_transitionTimeCtorSignature.c_str(), + entry_0.transitionTime, newElement_0_transitionTime); + jobject newElement_0_heatSetpoint; + if (entry_0.heatSetpoint.IsNull()) + { + newElement_0_heatSetpoint = nullptr; + } + else + { + std::string newElement_0_heatSetpointClassName = "java/lang/Integer"; + std::string newElement_0_heatSetpointCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0_heatSetpointClassName.c_str(), + newElement_0_heatSetpointCtorSignature.c_str(), + entry_0.heatSetpoint.Value(), newElement_0_heatSetpoint); + } + jobject newElement_0_coolSetpoint; + if (entry_0.coolSetpoint.IsNull()) + { + newElement_0_coolSetpoint = nullptr; + } + else + { + std::string newElement_0_coolSetpointClassName = "java/lang/Integer"; + std::string newElement_0_coolSetpointCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0_coolSetpointClassName.c_str(), + newElement_0_coolSetpointCtorSignature.c_str(), + entry_0.coolSetpoint.Value(), newElement_0_coolSetpoint); + } + + jclass thermostatScheduleTransitionStructClass_1; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$ThermostatClusterThermostatScheduleTransition", + thermostatScheduleTransitionStructClass_1); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$ThermostatClusterThermostatScheduleTransition"); + return; + } + jmethodID thermostatScheduleTransitionStructCtor_1 = env->GetMethodID( + thermostatScheduleTransitionStructClass_1, "", "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V"); + if (thermostatScheduleTransitionStructCtor_1 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$ThermostatClusterThermostatScheduleTransition constructor"); + return; + } + + newElement_0 = env->NewObject(thermostatScheduleTransitionStructClass_1, thermostatScheduleTransitionStructCtor_1, + newElement_0_transitionTime, newElement_0_heatSetpoint, newElement_0_coolSetpoint); + chip::JniReferences::GetInstance().AddToList(Transitions, newElement_0); } - env->CallVoidMethod(javaCallbackRef, javaMethod, ActionID, InvokeID); + env->CallVoidMethod(javaCallbackRef, javaMethod, NumberOfTransitionsForSequence, DayOfWeekForSequence, ModeForSequence, + Transitions); } -CHIPActionsClusterStartActionWithDurationCallback::CHIPActionsClusterStartActionWithDurationCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPChannelClusterChangeChannelResponseCallback::CHIPChannelClusterChangeChannelResponseCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2705,7 +3635,7 @@ CHIPActionsClusterStartActionWithDurationCallback::CHIPActionsClusterStartAction } } -CHIPActionsClusterStartActionWithDurationCallback::~CHIPActionsClusterStartActionWithDurationCallback() +CHIPChannelClusterChangeChannelResponseCallback::~CHIPChannelClusterChangeChannelResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2716,8 +3646,8 @@ CHIPActionsClusterStartActionWithDurationCallback::~CHIPActionsClusterStartActio env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPActionsClusterStartActionWithDurationCallback::CallbackFn( - void * context, const chip::app::Clusters::Actions::Commands::StartActionWithDuration::DecodableType & dataResponse) +void CHIPChannelClusterChangeChannelResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::Channel::Commands::ChangeChannelResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -2727,50 +3657,42 @@ void CHIPActionsClusterStartActionWithDurationCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/util/Optional;Ljava/lang/Long;)V", &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/util/Optional;)V", + &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject ActionID; - std::string ActionIDClassName = "java/lang/Integer"; - std::string ActionIDCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(ActionIDClassName.c_str(), ActionIDCtorSignature.c_str(), - dataResponse.actionID, ActionID); - jobject InvokeID; - if (!dataResponse.invokeID.HasValue()) + jobject Status; + std::string StatusClassName = "java/lang/Integer"; + std::string StatusCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), + static_cast(dataResponse.status), Status); + jobject Data; + if (!dataResponse.data.HasValue()) { - chip::JniReferences::GetInstance().CreateOptional(nullptr, InvokeID); + chip::JniReferences::GetInstance().CreateOptional(nullptr, Data); } else { - jobject InvokeIDInsideOptional; - std::string InvokeIDInsideOptionalClassName = "java/lang/Long"; - std::string InvokeIDInsideOptionalCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(InvokeIDInsideOptionalClassName.c_str(), - InvokeIDInsideOptionalCtorSignature.c_str(), - dataResponse.invokeID.Value(), InvokeIDInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(InvokeIDInsideOptional, InvokeID); - } - jobject Duration; - std::string DurationClassName = "java/lang/Long"; - std::string DurationCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(DurationClassName.c_str(), DurationCtorSignature.c_str(), - dataResponse.duration, Duration); - - env->CallVoidMethod(javaCallbackRef, javaMethod, ActionID, InvokeID, Duration); + jobject DataInsideOptional; + DataInsideOptional = + env->NewStringUTF(std::string(dataResponse.data.Value().data(), dataResponse.data.Value().size()).c_str()); + chip::JniReferences::GetInstance().CreateOptional(DataInsideOptional, Data); + } + + env->CallVoidMethod(javaCallbackRef, javaMethod, Status, Data); } -CHIPActionsClusterStopActionCallback::CHIPActionsClusterStopActionCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPTargetNavigatorClusterNavigateTargetResponseCallback::CHIPTargetNavigatorClusterNavigateTargetResponseCallback( + jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2786,7 +3708,7 @@ CHIPActionsClusterStopActionCallback::CHIPActionsClusterStopActionCallback(jobje } } -CHIPActionsClusterStopActionCallback::~CHIPActionsClusterStopActionCallback() +CHIPTargetNavigatorClusterNavigateTargetResponseCallback::~CHIPTargetNavigatorClusterNavigateTargetResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2797,8 +3719,8 @@ CHIPActionsClusterStopActionCallback::~CHIPActionsClusterStopActionCallback() env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPActionsClusterStopActionCallback::CallbackFn( - void * context, const chip::app::Clusters::Actions::Commands::StopAction::DecodableType & dataResponse) +void CHIPTargetNavigatorClusterNavigateTargetResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::TargetNavigator::Commands::NavigateTargetResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -2808,9 +3730,10 @@ void CHIPActionsClusterStopActionCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; @@ -2821,31 +3744,28 @@ void CHIPActionsClusterStopActionCallback::CallbackFn( &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject ActionID; - std::string ActionIDClassName = "java/lang/Integer"; - std::string ActionIDCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(ActionIDClassName.c_str(), ActionIDCtorSignature.c_str(), - dataResponse.actionID, ActionID); - jobject InvokeID; - if (!dataResponse.invokeID.HasValue()) + jobject Status; + std::string StatusClassName = "java/lang/Integer"; + std::string StatusCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), + static_cast(dataResponse.status), Status); + jobject Data; + if (!dataResponse.data.HasValue()) { - chip::JniReferences::GetInstance().CreateOptional(nullptr, InvokeID); + chip::JniReferences::GetInstance().CreateOptional(nullptr, Data); } else { - jobject InvokeIDInsideOptional; - std::string InvokeIDInsideOptionalClassName = "java/lang/Long"; - std::string InvokeIDInsideOptionalCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(InvokeIDInsideOptionalClassName.c_str(), - InvokeIDInsideOptionalCtorSignature.c_str(), - dataResponse.invokeID.Value(), InvokeIDInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(InvokeIDInsideOptional, InvokeID); + jobject DataInsideOptional; + DataInsideOptional = + env->NewStringUTF(std::string(dataResponse.data.Value().data(), dataResponse.data.Value().size()).c_str()); + chip::JniReferences::GetInstance().CreateOptional(DataInsideOptional, Data); } - env->CallVoidMethod(javaCallbackRef, javaMethod, ActionID, InvokeID); + env->CallVoidMethod(javaCallbackRef, javaMethod, Status, Data); } -CHIPActionsClusterPauseActionCallback::CHIPActionsClusterPauseActionCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPMediaPlaybackClusterPlaybackResponseCallback::CHIPMediaPlaybackClusterPlaybackResponseCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2861,7 +3781,7 @@ CHIPActionsClusterPauseActionCallback::CHIPActionsClusterPauseActionCallback(job } } -CHIPActionsClusterPauseActionCallback::~CHIPActionsClusterPauseActionCallback() +CHIPMediaPlaybackClusterPlaybackResponseCallback::~CHIPMediaPlaybackClusterPlaybackResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2872,8 +3792,8 @@ CHIPActionsClusterPauseActionCallback::~CHIPActionsClusterPauseActionCallback() env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPActionsClusterPauseActionCallback::CallbackFn( - void * context, const chip::app::Clusters::Actions::Commands::PauseAction::DecodableType & dataResponse) +void CHIPMediaPlaybackClusterPlaybackResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::MediaPlayback::Commands::PlaybackResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -2883,9 +3803,9 @@ void CHIPActionsClusterPauseActionCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; @@ -2896,31 +3816,28 @@ void CHIPActionsClusterPauseActionCallback::CallbackFn( &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject ActionID; - std::string ActionIDClassName = "java/lang/Integer"; - std::string ActionIDCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(ActionIDClassName.c_str(), ActionIDCtorSignature.c_str(), - dataResponse.actionID, ActionID); - jobject InvokeID; - if (!dataResponse.invokeID.HasValue()) + jobject Status; + std::string StatusClassName = "java/lang/Integer"; + std::string StatusCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), + static_cast(dataResponse.status), Status); + jobject Data; + if (!dataResponse.data.HasValue()) { - chip::JniReferences::GetInstance().CreateOptional(nullptr, InvokeID); + chip::JniReferences::GetInstance().CreateOptional(nullptr, Data); } else { - jobject InvokeIDInsideOptional; - std::string InvokeIDInsideOptionalClassName = "java/lang/Long"; - std::string InvokeIDInsideOptionalCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(InvokeIDInsideOptionalClassName.c_str(), - InvokeIDInsideOptionalCtorSignature.c_str(), - dataResponse.invokeID.Value(), InvokeIDInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(InvokeIDInsideOptional, InvokeID); + jobject DataInsideOptional; + DataInsideOptional = + env->NewStringUTF(std::string(dataResponse.data.Value().data(), dataResponse.data.Value().size()).c_str()); + chip::JniReferences::GetInstance().CreateOptional(DataInsideOptional, Data); } - env->CallVoidMethod(javaCallbackRef, javaMethod, ActionID, InvokeID); + env->CallVoidMethod(javaCallbackRef, javaMethod, Status, Data); } -CHIPActionsClusterPauseActionWithDurationCallback::CHIPActionsClusterPauseActionWithDurationCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPKeypadInputClusterSendKeyResponseCallback::CHIPKeypadInputClusterSendKeyResponseCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2936,7 +3853,7 @@ CHIPActionsClusterPauseActionWithDurationCallback::CHIPActionsClusterPauseAction } } -CHIPActionsClusterPauseActionWithDurationCallback::~CHIPActionsClusterPauseActionWithDurationCallback() +CHIPKeypadInputClusterSendKeyResponseCallback::~CHIPKeypadInputClusterSendKeyResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -2947,8 +3864,8 @@ CHIPActionsClusterPauseActionWithDurationCallback::~CHIPActionsClusterPauseActio env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPActionsClusterPauseActionWithDurationCallback::CallbackFn( - void * context, const chip::app::Clusters::Actions::Commands::PauseActionWithDuration::DecodableType & dataResponse) +void CHIPKeypadInputClusterSendKeyResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::KeypadInput::Commands::SendKeyResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -2958,50 +3875,28 @@ void CHIPActionsClusterPauseActionWithDurationCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/util/Optional;Ljava/lang/Long;)V", &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject ActionID; - std::string ActionIDClassName = "java/lang/Integer"; - std::string ActionIDCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(ActionIDClassName.c_str(), ActionIDCtorSignature.c_str(), - dataResponse.actionID, ActionID); - jobject InvokeID; - if (!dataResponse.invokeID.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, InvokeID); - } - else - { - jobject InvokeIDInsideOptional; - std::string InvokeIDInsideOptionalClassName = "java/lang/Long"; - std::string InvokeIDInsideOptionalCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(InvokeIDInsideOptionalClassName.c_str(), - InvokeIDInsideOptionalCtorSignature.c_str(), - dataResponse.invokeID.Value(), InvokeIDInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(InvokeIDInsideOptional, InvokeID); - } - jobject Duration; - std::string DurationClassName = "java/lang/Long"; - std::string DurationCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(DurationClassName.c_str(), DurationCtorSignature.c_str(), - dataResponse.duration, Duration); - - env->CallVoidMethod(javaCallbackRef, javaMethod, ActionID, InvokeID, Duration); + jobject Status; + std::string StatusClassName = "java/lang/Integer"; + std::string StatusCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), + static_cast(dataResponse.status), Status); + + env->CallVoidMethod(javaCallbackRef, javaMethod, Status); } -CHIPActionsClusterResumeActionCallback::CHIPActionsClusterResumeActionCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPContentLauncherClusterLauncherResponseCallback::CHIPContentLauncherClusterLauncherResponseCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3017,7 +3912,7 @@ CHIPActionsClusterResumeActionCallback::CHIPActionsClusterResumeActionCallback(j } } -CHIPActionsClusterResumeActionCallback::~CHIPActionsClusterResumeActionCallback() +CHIPContentLauncherClusterLauncherResponseCallback::~CHIPContentLauncherClusterLauncherResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3028,8 +3923,8 @@ CHIPActionsClusterResumeActionCallback::~CHIPActionsClusterResumeActionCallback( env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPActionsClusterResumeActionCallback::CallbackFn( - void * context, const chip::app::Clusters::Actions::Commands::ResumeAction::DecodableType & dataResponse) +void CHIPContentLauncherClusterLauncherResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::ContentLauncher::Commands::LauncherResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -3039,9 +3934,10 @@ void CHIPActionsClusterResumeActionCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; @@ -3052,31 +3948,29 @@ void CHIPActionsClusterResumeActionCallback::CallbackFn( &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject ActionID; - std::string ActionIDClassName = "java/lang/Integer"; - std::string ActionIDCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(ActionIDClassName.c_str(), ActionIDCtorSignature.c_str(), - dataResponse.actionID, ActionID); - jobject InvokeID; - if (!dataResponse.invokeID.HasValue()) + jobject Status; + std::string StatusClassName = "java/lang/Integer"; + std::string StatusCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), + static_cast(dataResponse.status), Status); + jobject Data; + if (!dataResponse.data.HasValue()) { - chip::JniReferences::GetInstance().CreateOptional(nullptr, InvokeID); + chip::JniReferences::GetInstance().CreateOptional(nullptr, Data); } else { - jobject InvokeIDInsideOptional; - std::string InvokeIDInsideOptionalClassName = "java/lang/Long"; - std::string InvokeIDInsideOptionalCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(InvokeIDInsideOptionalClassName.c_str(), - InvokeIDInsideOptionalCtorSignature.c_str(), - dataResponse.invokeID.Value(), InvokeIDInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(InvokeIDInsideOptional, InvokeID); + jobject DataInsideOptional; + DataInsideOptional = + env->NewStringUTF(std::string(dataResponse.data.Value().data(), dataResponse.data.Value().size()).c_str()); + chip::JniReferences::GetInstance().CreateOptional(DataInsideOptional, Data); } - env->CallVoidMethod(javaCallbackRef, javaMethod, ActionID, InvokeID); + env->CallVoidMethod(javaCallbackRef, javaMethod, Status, Data); } -CHIPActionsClusterEnableActionCallback::CHIPActionsClusterEnableActionCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPApplicationLauncherClusterLauncherResponseCallback::CHIPApplicationLauncherClusterLauncherResponseCallback( + jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3092,7 +3986,7 @@ CHIPActionsClusterEnableActionCallback::CHIPActionsClusterEnableActionCallback(j } } -CHIPActionsClusterEnableActionCallback::~CHIPActionsClusterEnableActionCallback() +CHIPApplicationLauncherClusterLauncherResponseCallback::~CHIPApplicationLauncherClusterLauncherResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3103,8 +3997,8 @@ CHIPActionsClusterEnableActionCallback::~CHIPActionsClusterEnableActionCallback( env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPActionsClusterEnableActionCallback::CallbackFn( - void * context, const chip::app::Clusters::Actions::Commands::EnableAction::DecodableType & dataResponse) +void CHIPApplicationLauncherClusterLauncherResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::ApplicationLauncher::Commands::LauncherResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -3114,9 +4008,10 @@ void CHIPActionsClusterEnableActionCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; @@ -3127,31 +4022,30 @@ void CHIPActionsClusterEnableActionCallback::CallbackFn( &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject ActionID; - std::string ActionIDClassName = "java/lang/Integer"; - std::string ActionIDCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(ActionIDClassName.c_str(), ActionIDCtorSignature.c_str(), - dataResponse.actionID, ActionID); - jobject InvokeID; - if (!dataResponse.invokeID.HasValue()) + jobject Status; + std::string StatusClassName = "java/lang/Integer"; + std::string StatusCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(StatusClassName.c_str(), StatusCtorSignature.c_str(), + static_cast(dataResponse.status), Status); + jobject Data; + if (!dataResponse.data.HasValue()) { - chip::JniReferences::GetInstance().CreateOptional(nullptr, InvokeID); + chip::JniReferences::GetInstance().CreateOptional(nullptr, Data); } else { - jobject InvokeIDInsideOptional; - std::string InvokeIDInsideOptionalClassName = "java/lang/Long"; - std::string InvokeIDInsideOptionalCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(InvokeIDInsideOptionalClassName.c_str(), - InvokeIDInsideOptionalCtorSignature.c_str(), - dataResponse.invokeID.Value(), InvokeIDInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(InvokeIDInsideOptional, InvokeID); + jobject DataInsideOptional; + jbyteArray DataInsideOptionalByteArray = env->NewByteArray(static_cast(dataResponse.data.Value().size())); + env->SetByteArrayRegion(DataInsideOptionalByteArray, 0, static_cast(dataResponse.data.Value().size()), + reinterpret_cast(dataResponse.data.Value().data())); + DataInsideOptional = DataInsideOptionalByteArray; + chip::JniReferences::GetInstance().CreateOptional(DataInsideOptional, Data); } - env->CallVoidMethod(javaCallbackRef, javaMethod, ActionID, InvokeID); + env->CallVoidMethod(javaCallbackRef, javaMethod, Status, Data); } -CHIPActionsClusterEnableActionWithDurationCallback::CHIPActionsClusterEnableActionWithDurationCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPAccountLoginClusterGetSetupPINResponseCallback::CHIPAccountLoginClusterGetSetupPINResponseCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3167,7 +4061,7 @@ CHIPActionsClusterEnableActionWithDurationCallback::CHIPActionsClusterEnableActi } } -CHIPActionsClusterEnableActionWithDurationCallback::~CHIPActionsClusterEnableActionWithDurationCallback() +CHIPAccountLoginClusterGetSetupPINResponseCallback::~CHIPAccountLoginClusterGetSetupPINResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3178,8 +4072,8 @@ CHIPActionsClusterEnableActionWithDurationCallback::~CHIPActionsClusterEnableAct env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPActionsClusterEnableActionWithDurationCallback::CallbackFn( - void * context, const chip::app::Clusters::Actions::Commands::EnableActionWithDuration::DecodableType & dataResponse) +void CHIPAccountLoginClusterGetSetupPINResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::AccountLogin::Commands::GetSetupPINResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -3189,50 +4083,27 @@ void CHIPActionsClusterEnableActionWithDurationCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/util/Optional;Ljava/lang/Long;)V", &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/String;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject ActionID; - std::string ActionIDClassName = "java/lang/Integer"; - std::string ActionIDCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(ActionIDClassName.c_str(), ActionIDCtorSignature.c_str(), - dataResponse.actionID, ActionID); - jobject InvokeID; - if (!dataResponse.invokeID.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, InvokeID); - } - else - { - jobject InvokeIDInsideOptional; - std::string InvokeIDInsideOptionalClassName = "java/lang/Long"; - std::string InvokeIDInsideOptionalCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(InvokeIDInsideOptionalClassName.c_str(), - InvokeIDInsideOptionalCtorSignature.c_str(), - dataResponse.invokeID.Value(), InvokeIDInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(InvokeIDInsideOptional, InvokeID); - } - jobject Duration; - std::string DurationClassName = "java/lang/Long"; - std::string DurationCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(DurationClassName.c_str(), DurationCtorSignature.c_str(), - dataResponse.duration, Duration); - - env->CallVoidMethod(javaCallbackRef, javaMethod, ActionID, InvokeID, Duration); + jobject SetupPIN; + SetupPIN = env->NewStringUTF(std::string(dataResponse.setupPIN.data(), dataResponse.setupPIN.size()).c_str()); + + env->CallVoidMethod(javaCallbackRef, javaMethod, SetupPIN); } -CHIPActionsClusterDisableActionCallback::CHIPActionsClusterDisableActionCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPElectricalMeasurementClusterGetProfileInfoResponseCommandCallback:: + CHIPElectricalMeasurementClusterGetProfileInfoResponseCommandCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3248,7 +4119,8 @@ CHIPActionsClusterDisableActionCallback::CHIPActionsClusterDisableActionCallback } } -CHIPActionsClusterDisableActionCallback::~CHIPActionsClusterDisableActionCallback() +CHIPElectricalMeasurementClusterGetProfileInfoResponseCommandCallback:: + ~CHIPElectricalMeasurementClusterGetProfileInfoResponseCommandCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3259,8 +4131,9 @@ CHIPActionsClusterDisableActionCallback::~CHIPActionsClusterDisableActionCallbac env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPActionsClusterDisableActionCallback::CallbackFn( - void * context, const chip::app::Clusters::Actions::Commands::DisableAction::DecodableType & dataResponse) +void CHIPElectricalMeasurementClusterGetProfileInfoResponseCommandCallback::CallbackFn( + void * context, + const chip::app::Clusters::ElectricalMeasurement::Commands::GetProfileInfoResponseCommand::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -3270,44 +4143,58 @@ void CHIPActionsClusterDisableActionCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/util/Optional;)V", - &javaMethod); + err = JniReferences::GetInstance().FindMethod( + env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/util/ArrayList;)V", + &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject ActionID; - std::string ActionIDClassName = "java/lang/Integer"; - std::string ActionIDCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(ActionIDClassName.c_str(), ActionIDCtorSignature.c_str(), - dataResponse.actionID, ActionID); - jobject InvokeID; - if (!dataResponse.invokeID.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, InvokeID); - } - else - { - jobject InvokeIDInsideOptional; - std::string InvokeIDInsideOptionalClassName = "java/lang/Long"; - std::string InvokeIDInsideOptionalCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(InvokeIDInsideOptionalClassName.c_str(), - InvokeIDInsideOptionalCtorSignature.c_str(), - dataResponse.invokeID.Value(), InvokeIDInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(InvokeIDInsideOptional, InvokeID); + jobject profileCount; + std::string profileCountClassName = "java/lang/Integer"; + std::string profileCountCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(profileCountClassName.c_str(), profileCountCtorSignature.c_str(), + dataResponse.profileCount, profileCount); + jobject profileIntervalPeriod; + std::string profileIntervalPeriodClassName = "java/lang/Integer"; + std::string profileIntervalPeriodCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(profileIntervalPeriodClassName.c_str(), + profileIntervalPeriodCtorSignature.c_str(), + dataResponse.profileIntervalPeriod, profileIntervalPeriod); + jobject maxNumberOfIntervals; + std::string maxNumberOfIntervalsClassName = "java/lang/Integer"; + std::string maxNumberOfIntervalsCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(maxNumberOfIntervalsClassName.c_str(), + maxNumberOfIntervalsCtorSignature.c_str(), + dataResponse.maxNumberOfIntervals, maxNumberOfIntervals); + jobject listOfAttributes; + chip::JniReferences::GetInstance().CreateArrayList(listOfAttributes); + + auto iter_listOfAttributes_0 = dataResponse.listOfAttributes.begin(); + while (iter_listOfAttributes_0.Next()) + { + auto & entry_0 = iter_listOfAttributes_0.GetValue(); + jobject newElement_0; + std::string newElement_0ClassName = "java/lang/Integer"; + std::string newElement_0CtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0ClassName.c_str(), + newElement_0CtorSignature.c_str(), entry_0, newElement_0); + chip::JniReferences::GetInstance().AddToList(listOfAttributes, newElement_0); } - env->CallVoidMethod(javaCallbackRef, javaMethod, ActionID, InvokeID); + env->CallVoidMethod(javaCallbackRef, javaMethod, profileCount, profileIntervalPeriod, maxNumberOfIntervals, listOfAttributes); } -CHIPActionsClusterDisableActionWithDurationCallback::CHIPActionsClusterDisableActionWithDurationCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPElectricalMeasurementClusterGetMeasurementProfileResponseCommandCallback:: + CHIPElectricalMeasurementClusterGetMeasurementProfileResponseCommandCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3323,7 +4210,8 @@ CHIPActionsClusterDisableActionWithDurationCallback::CHIPActionsClusterDisableAc } } -CHIPActionsClusterDisableActionWithDurationCallback::~CHIPActionsClusterDisableActionWithDurationCallback() +CHIPElectricalMeasurementClusterGetMeasurementProfileResponseCommandCallback:: + ~CHIPElectricalMeasurementClusterGetMeasurementProfileResponseCommandCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -3334,8 +4222,9 @@ CHIPActionsClusterDisableActionWithDurationCallback::~CHIPActionsClusterDisableA env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPActionsClusterDisableActionWithDurationCallback::CallbackFn( - void * context, const chip::app::Clusters::Actions::Commands::DisableActionWithDuration::DecodableType & dataResponse) +void CHIPElectricalMeasurementClusterGetMeasurementProfileResponseCommandCallback::CallbackFn( + void * context, + const chip::app::Clusters::ElectricalMeasurement::Commands::GetMeasurementProfileResponseCommand::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -3345,10611 +4234,69 @@ void CHIPActionsClusterDisableActionWithDurationCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/util/Optional;Ljava/lang/Long;)V", &javaMethod); + err = JniReferences::GetInstance().FindMethod( + env, javaCallbackRef, "onSuccess", + "(Ljava/lang/Long;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/util/ArrayList;)V", + &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject ActionID; - std::string ActionIDClassName = "java/lang/Integer"; - std::string ActionIDCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(ActionIDClassName.c_str(), ActionIDCtorSignature.c_str(), - dataResponse.actionID, ActionID); - jobject InvokeID; - if (!dataResponse.invokeID.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, InvokeID); - } - else - { - jobject InvokeIDInsideOptional; - std::string InvokeIDInsideOptionalClassName = "java/lang/Long"; - std::string InvokeIDInsideOptionalCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(InvokeIDInsideOptionalClassName.c_str(), - InvokeIDInsideOptionalCtorSignature.c_str(), - dataResponse.invokeID.Value(), InvokeIDInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(InvokeIDInsideOptional, InvokeID); - } - jobject Duration; - std::string DurationClassName = "java/lang/Long"; - std::string DurationCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(DurationClassName.c_str(), DurationCtorSignature.c_str(), - dataResponse.duration, Duration); - - env->CallVoidMethod(javaCallbackRef, javaMethod, ActionID, InvokeID, Duration); -} -CHIPBasicInformationClusterMfgSpecificPingCallback::CHIPBasicInformationClusterMfgSpecificPingCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPBasicInformationClusterMfgSpecificPingCallback::~CHIPBasicInformationClusterMfgSpecificPingCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPBasicInformationClusterMfgSpecificPingCallback::CallbackFn( - void * context, const chip::app::Clusters::BasicInformation::Commands::MfgSpecificPing::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - env->CallVoidMethod(javaCallbackRef, javaMethod); -} -CHIPOtaSoftwareUpdateProviderClusterQueryImageCallback::CHIPOtaSoftwareUpdateProviderClusterQueryImageCallback( - jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPOtaSoftwareUpdateProviderClusterQueryImageCallback::~CHIPOtaSoftwareUpdateProviderClusterQueryImageCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPOtaSoftwareUpdateProviderClusterQueryImageCallback::CallbackFn( - void * context, const chip::app::Clusters::OtaSoftwareUpdateProvider::Commands::QueryImage::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = - JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Long;Ljava/util/ArrayList;Ljava/" - "util/Optional;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;)V", - &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject VendorID; - std::string VendorIDClassName = "java/lang/Integer"; - std::string VendorIDCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(VendorIDClassName.c_str(), VendorIDCtorSignature.c_str(), - static_cast(dataResponse.vendorID), VendorID); - jobject ProductID; - std::string ProductIDClassName = "java/lang/Integer"; - std::string ProductIDCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(ProductIDClassName.c_str(), ProductIDCtorSignature.c_str(), - dataResponse.productID, ProductID); - jobject SoftwareVersion; - std::string SoftwareVersionClassName = "java/lang/Long"; - std::string SoftwareVersionCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - SoftwareVersionClassName.c_str(), SoftwareVersionCtorSignature.c_str(), dataResponse.softwareVersion, SoftwareVersion); - jobject ProtocolsSupported; - chip::JniReferences::GetInstance().CreateArrayList(ProtocolsSupported); - - auto iter_ProtocolsSupported_0 = dataResponse.protocolsSupported.begin(); - while (iter_ProtocolsSupported_0.Next()) - { - auto & entry_0 = iter_ProtocolsSupported_0.GetValue(); - jobject newElement_0; - std::string newElement_0ClassName = "java/lang/Integer"; - std::string newElement_0CtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), static_cast(entry_0), newElement_0); - chip::JniReferences::GetInstance().AddToList(ProtocolsSupported, newElement_0); - } - jobject HardwareVersion; - if (!dataResponse.hardwareVersion.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, HardwareVersion); - } - else - { - jobject HardwareVersionInsideOptional; - std::string HardwareVersionInsideOptionalClassName = "java/lang/Integer"; - std::string HardwareVersionInsideOptionalCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - HardwareVersionInsideOptionalClassName.c_str(), HardwareVersionInsideOptionalCtorSignature.c_str(), - dataResponse.hardwareVersion.Value(), HardwareVersionInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(HardwareVersionInsideOptional, HardwareVersion); - } - jobject Location; - if (!dataResponse.location.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, Location); - } - else - { - jobject LocationInsideOptional; - LocationInsideOptional = - env->NewStringUTF(std::string(dataResponse.location.Value().data(), dataResponse.location.Value().size()).c_str()); - chip::JniReferences::GetInstance().CreateOptional(LocationInsideOptional, Location); - } - jobject RequestorCanConsent; - if (!dataResponse.requestorCanConsent.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, RequestorCanConsent); - } - else - { - jobject RequestorCanConsentInsideOptional; - std::string RequestorCanConsentInsideOptionalClassName = "java/lang/Boolean"; - std::string RequestorCanConsentInsideOptionalCtorSignature = "(Z)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - RequestorCanConsentInsideOptionalClassName.c_str(), RequestorCanConsentInsideOptionalCtorSignature.c_str(), - dataResponse.requestorCanConsent.Value(), RequestorCanConsentInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(RequestorCanConsentInsideOptional, RequestorCanConsent); - } - jobject MetadataForProvider; - if (!dataResponse.metadataForProvider.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, MetadataForProvider); - } - else - { - jobject MetadataForProviderInsideOptional; - jbyteArray MetadataForProviderInsideOptionalByteArray = - env->NewByteArray(static_cast(dataResponse.metadataForProvider.Value().size())); - env->SetByteArrayRegion(MetadataForProviderInsideOptionalByteArray, 0, - static_cast(dataResponse.metadataForProvider.Value().size()), - reinterpret_cast(dataResponse.metadataForProvider.Value().data())); - MetadataForProviderInsideOptional = MetadataForProviderInsideOptionalByteArray; - chip::JniReferences::GetInstance().CreateOptional(MetadataForProviderInsideOptional, MetadataForProvider); - } - - env->CallVoidMethod(javaCallbackRef, javaMethod, VendorID, ProductID, SoftwareVersion, ProtocolsSupported, HardwareVersion, - Location, RequestorCanConsent, MetadataForProvider); -} -CHIPOtaSoftwareUpdateProviderClusterApplyUpdateRequestCallback::CHIPOtaSoftwareUpdateProviderClusterApplyUpdateRequestCallback( - jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPOtaSoftwareUpdateProviderClusterApplyUpdateRequestCallback::~CHIPOtaSoftwareUpdateProviderClusterApplyUpdateRequestCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPOtaSoftwareUpdateProviderClusterApplyUpdateRequestCallback::CallbackFn( - void * context, - const chip::app::Clusters::OtaSoftwareUpdateProvider::Commands::ApplyUpdateRequest::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "([BLjava/lang/Long;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject UpdateToken; - jbyteArray UpdateTokenByteArray = env->NewByteArray(static_cast(dataResponse.updateToken.size())); - env->SetByteArrayRegion(UpdateTokenByteArray, 0, static_cast(dataResponse.updateToken.size()), - reinterpret_cast(dataResponse.updateToken.data())); - UpdateToken = UpdateTokenByteArray; - jobject NewVersion; - std::string NewVersionClassName = "java/lang/Long"; - std::string NewVersionCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(NewVersionClassName.c_str(), NewVersionCtorSignature.c_str(), - dataResponse.newVersion, NewVersion); - - env->CallVoidMethod(javaCallbackRef, javaMethod, UpdateToken, NewVersion); -} -CHIPOtaSoftwareUpdateProviderClusterNotifyUpdateAppliedCallback::CHIPOtaSoftwareUpdateProviderClusterNotifyUpdateAppliedCallback( - jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPOtaSoftwareUpdateProviderClusterNotifyUpdateAppliedCallback::~CHIPOtaSoftwareUpdateProviderClusterNotifyUpdateAppliedCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPOtaSoftwareUpdateProviderClusterNotifyUpdateAppliedCallback::CallbackFn( - void * context, - const chip::app::Clusters::OtaSoftwareUpdateProvider::Commands::NotifyUpdateApplied::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "([BLjava/lang/Long;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject UpdateToken; - jbyteArray UpdateTokenByteArray = env->NewByteArray(static_cast(dataResponse.updateToken.size())); - env->SetByteArrayRegion(UpdateTokenByteArray, 0, static_cast(dataResponse.updateToken.size()), - reinterpret_cast(dataResponse.updateToken.data())); - UpdateToken = UpdateTokenByteArray; - jobject SoftwareVersion; - std::string SoftwareVersionClassName = "java/lang/Long"; - std::string SoftwareVersionCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - SoftwareVersionClassName.c_str(), SoftwareVersionCtorSignature.c_str(), dataResponse.softwareVersion, SoftwareVersion); - - env->CallVoidMethod(javaCallbackRef, javaMethod, UpdateToken, SoftwareVersion); -} -CHIPOtaSoftwareUpdateRequestorClusterAnnounceOTAProviderCallback::CHIPOtaSoftwareUpdateRequestorClusterAnnounceOTAProviderCallback( - jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPOtaSoftwareUpdateRequestorClusterAnnounceOTAProviderCallback:: - ~CHIPOtaSoftwareUpdateRequestorClusterAnnounceOTAProviderCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPOtaSoftwareUpdateRequestorClusterAnnounceOTAProviderCallback::CallbackFn( - void * context, - const chip::app::Clusters::OtaSoftwareUpdateRequestor::Commands::AnnounceOTAProvider::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod( - env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Long;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/util/Optional;Ljava/lang/Integer;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject ProviderNodeID; - std::string ProviderNodeIDClassName = "java/lang/Long"; - std::string ProviderNodeIDCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - ProviderNodeIDClassName.c_str(), ProviderNodeIDCtorSignature.c_str(), dataResponse.providerNodeID, ProviderNodeID); - jobject VendorID; - std::string VendorIDClassName = "java/lang/Integer"; - std::string VendorIDCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(VendorIDClassName.c_str(), VendorIDCtorSignature.c_str(), - static_cast(dataResponse.vendorID), VendorID); - jobject AnnouncementReason; - std::string AnnouncementReasonClassName = "java/lang/Integer"; - std::string AnnouncementReasonCtorSignature = "(I)V"; + jobject startTime; + std::string startTimeClassName = "java/lang/Long"; + std::string startTimeCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(startTimeClassName.c_str(), startTimeCtorSignature.c_str(), + dataResponse.startTime, startTime); + jobject status; + std::string statusClassName = "java/lang/Integer"; + std::string statusCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(statusClassName.c_str(), statusCtorSignature.c_str(), + dataResponse.status, status); + jobject profileIntervalPeriod; + std::string profileIntervalPeriodClassName = "java/lang/Integer"; + std::string profileIntervalPeriodCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(profileIntervalPeriodClassName.c_str(), + profileIntervalPeriodCtorSignature.c_str(), + dataResponse.profileIntervalPeriod, profileIntervalPeriod); + jobject numberOfIntervalsDelivered; + std::string numberOfIntervalsDeliveredClassName = "java/lang/Integer"; + std::string numberOfIntervalsDeliveredCtorSignature = "(I)V"; chip::JniReferences::GetInstance().CreateBoxedObject( - AnnouncementReasonClassName.c_str(), AnnouncementReasonCtorSignature.c_str(), - static_cast(dataResponse.announcementReason), AnnouncementReason); - jobject MetadataForNode; - if (!dataResponse.metadataForNode.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, MetadataForNode); - } - else - { - jobject MetadataForNodeInsideOptional; - jbyteArray MetadataForNodeInsideOptionalByteArray = - env->NewByteArray(static_cast(dataResponse.metadataForNode.Value().size())); - env->SetByteArrayRegion(MetadataForNodeInsideOptionalByteArray, 0, - static_cast(dataResponse.metadataForNode.Value().size()), - reinterpret_cast(dataResponse.metadataForNode.Value().data())); - MetadataForNodeInsideOptional = MetadataForNodeInsideOptionalByteArray; - chip::JniReferences::GetInstance().CreateOptional(MetadataForNodeInsideOptional, MetadataForNode); - } - jobject Endpoint; - std::string EndpointClassName = "java/lang/Integer"; - std::string EndpointCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(EndpointClassName.c_str(), EndpointCtorSignature.c_str(), - dataResponse.endpoint, Endpoint); - - env->CallVoidMethod(javaCallbackRef, javaMethod, ProviderNodeID, VendorID, AnnouncementReason, MetadataForNode, Endpoint); -} -CHIPGeneralCommissioningClusterArmFailSafeCallback::CHIPGeneralCommissioningClusterArmFailSafeCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPGeneralCommissioningClusterArmFailSafeCallback::~CHIPGeneralCommissioningClusterArmFailSafeCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPGeneralCommissioningClusterArmFailSafeCallback::CallbackFn( - void * context, const chip::app::Clusters::GeneralCommissioning::Commands::ArmFailSafe::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Long;)V", - &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject ExpiryLengthSeconds; - std::string ExpiryLengthSecondsClassName = "java/lang/Integer"; - std::string ExpiryLengthSecondsCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(ExpiryLengthSecondsClassName.c_str(), - ExpiryLengthSecondsCtorSignature.c_str(), - dataResponse.expiryLengthSeconds, ExpiryLengthSeconds); - jobject Breadcrumb; - std::string BreadcrumbClassName = "java/lang/Long"; - std::string BreadcrumbCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(BreadcrumbClassName.c_str(), BreadcrumbCtorSignature.c_str(), - dataResponse.breadcrumb, Breadcrumb); - - env->CallVoidMethod(javaCallbackRef, javaMethod, ExpiryLengthSeconds, Breadcrumb); -} -CHIPGeneralCommissioningClusterSetRegulatoryConfigCallback::CHIPGeneralCommissioningClusterSetRegulatoryConfigCallback( - jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPGeneralCommissioningClusterSetRegulatoryConfigCallback::~CHIPGeneralCommissioningClusterSetRegulatoryConfigCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPGeneralCommissioningClusterSetRegulatoryConfigCallback::CallbackFn( - void * context, const chip::app::Clusters::GeneralCommissioning::Commands::SetRegulatoryConfig::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/Long;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject NewRegulatoryConfig; - std::string NewRegulatoryConfigClassName = "java/lang/Integer"; - std::string NewRegulatoryConfigCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - NewRegulatoryConfigClassName.c_str(), NewRegulatoryConfigCtorSignature.c_str(), - static_cast(dataResponse.newRegulatoryConfig), NewRegulatoryConfig); - jobject CountryCode; - CountryCode = env->NewStringUTF(std::string(dataResponse.countryCode.data(), dataResponse.countryCode.size()).c_str()); - jobject Breadcrumb; - std::string BreadcrumbClassName = "java/lang/Long"; - std::string BreadcrumbCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(BreadcrumbClassName.c_str(), BreadcrumbCtorSignature.c_str(), - dataResponse.breadcrumb, Breadcrumb); - - env->CallVoidMethod(javaCallbackRef, javaMethod, NewRegulatoryConfig, CountryCode, Breadcrumb); -} -CHIPGeneralCommissioningClusterCommissioningCompleteCallback::CHIPGeneralCommissioningClusterCommissioningCompleteCallback( - jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPGeneralCommissioningClusterCommissioningCompleteCallback::~CHIPGeneralCommissioningClusterCommissioningCompleteCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPGeneralCommissioningClusterCommissioningCompleteCallback::CallbackFn( - void * context, const chip::app::Clusters::GeneralCommissioning::Commands::CommissioningComplete::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - env->CallVoidMethod(javaCallbackRef, javaMethod); -} -CHIPNetworkCommissioningClusterScanNetworksCallback::CHIPNetworkCommissioningClusterScanNetworksCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPNetworkCommissioningClusterScanNetworksCallback::~CHIPNetworkCommissioningClusterScanNetworksCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPNetworkCommissioningClusterScanNetworksCallback::CallbackFn( - void * context, const chip::app::Clusters::NetworkCommissioning::Commands::ScanNetworks::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/Optional;Ljava/util/Optional;)V", - &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject SSID; - if (!dataResponse.ssid.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, SSID); - } - else - { - jobject SSIDInsideOptional; - if (dataResponse.ssid.Value().IsNull()) - { - SSIDInsideOptional = nullptr; - } - else - { - jbyteArray SSIDInsideOptionalByteArray = - env->NewByteArray(static_cast(dataResponse.ssid.Value().Value().size())); - env->SetByteArrayRegion(SSIDInsideOptionalByteArray, 0, static_cast(dataResponse.ssid.Value().Value().size()), - reinterpret_cast(dataResponse.ssid.Value().Value().data())); - SSIDInsideOptional = SSIDInsideOptionalByteArray; - } - chip::JniReferences::GetInstance().CreateOptional(SSIDInsideOptional, SSID); - } - jobject Breadcrumb; - if (!dataResponse.breadcrumb.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, Breadcrumb); - } - else - { - jobject BreadcrumbInsideOptional; - std::string BreadcrumbInsideOptionalClassName = "java/lang/Long"; - std::string BreadcrumbInsideOptionalCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(BreadcrumbInsideOptionalClassName.c_str(), - BreadcrumbInsideOptionalCtorSignature.c_str(), - dataResponse.breadcrumb.Value(), BreadcrumbInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(BreadcrumbInsideOptional, Breadcrumb); - } - - env->CallVoidMethod(javaCallbackRef, javaMethod, SSID, Breadcrumb); -} -CHIPNetworkCommissioningClusterAddOrUpdateWiFiNetworkCallback::CHIPNetworkCommissioningClusterAddOrUpdateWiFiNetworkCallback( - jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPNetworkCommissioningClusterAddOrUpdateWiFiNetworkCallback::~CHIPNetworkCommissioningClusterAddOrUpdateWiFiNetworkCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPNetworkCommissioningClusterAddOrUpdateWiFiNetworkCallback::CallbackFn( - void * context, const chip::app::Clusters::NetworkCommissioning::Commands::AddOrUpdateWiFiNetwork::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "([B[BLjava/util/Optional;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject SSID; - jbyteArray SSIDByteArray = env->NewByteArray(static_cast(dataResponse.ssid.size())); - env->SetByteArrayRegion(SSIDByteArray, 0, static_cast(dataResponse.ssid.size()), - reinterpret_cast(dataResponse.ssid.data())); - SSID = SSIDByteArray; - jobject Credentials; - jbyteArray CredentialsByteArray = env->NewByteArray(static_cast(dataResponse.credentials.size())); - env->SetByteArrayRegion(CredentialsByteArray, 0, static_cast(dataResponse.credentials.size()), - reinterpret_cast(dataResponse.credentials.data())); - Credentials = CredentialsByteArray; - jobject breadcrumb; - if (!dataResponse.breadcrumb.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, breadcrumb); - } - else - { - jobject breadcrumbInsideOptional; - std::string breadcrumbInsideOptionalClassName = "java/lang/Long"; - std::string breadcrumbInsideOptionalCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(breadcrumbInsideOptionalClassName.c_str(), - breadcrumbInsideOptionalCtorSignature.c_str(), - dataResponse.breadcrumb.Value(), breadcrumbInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(breadcrumbInsideOptional, breadcrumb); - } - - env->CallVoidMethod(javaCallbackRef, javaMethod, SSID, Credentials, breadcrumb); -} -CHIPNetworkCommissioningClusterAddOrUpdateThreadNetworkCallback::CHIPNetworkCommissioningClusterAddOrUpdateThreadNetworkCallback( - jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPNetworkCommissioningClusterAddOrUpdateThreadNetworkCallback::~CHIPNetworkCommissioningClusterAddOrUpdateThreadNetworkCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPNetworkCommissioningClusterAddOrUpdateThreadNetworkCallback::CallbackFn( - void * context, - const chip::app::Clusters::NetworkCommissioning::Commands::AddOrUpdateThreadNetwork::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "([BLjava/util/Optional;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject OperationalDataset; - jbyteArray OperationalDatasetByteArray = env->NewByteArray(static_cast(dataResponse.operationalDataset.size())); - env->SetByteArrayRegion(OperationalDatasetByteArray, 0, static_cast(dataResponse.operationalDataset.size()), - reinterpret_cast(dataResponse.operationalDataset.data())); - OperationalDataset = OperationalDatasetByteArray; - jobject Breadcrumb; - if (!dataResponse.breadcrumb.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, Breadcrumb); - } - else - { - jobject BreadcrumbInsideOptional; - std::string BreadcrumbInsideOptionalClassName = "java/lang/Long"; - std::string BreadcrumbInsideOptionalCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(BreadcrumbInsideOptionalClassName.c_str(), - BreadcrumbInsideOptionalCtorSignature.c_str(), - dataResponse.breadcrumb.Value(), BreadcrumbInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(BreadcrumbInsideOptional, Breadcrumb); - } - - env->CallVoidMethod(javaCallbackRef, javaMethod, OperationalDataset, Breadcrumb); -} -CHIPNetworkCommissioningClusterRemoveNetworkCallback::CHIPNetworkCommissioningClusterRemoveNetworkCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPNetworkCommissioningClusterRemoveNetworkCallback::~CHIPNetworkCommissioningClusterRemoveNetworkCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPNetworkCommissioningClusterRemoveNetworkCallback::CallbackFn( - void * context, const chip::app::Clusters::NetworkCommissioning::Commands::RemoveNetwork::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "([BLjava/util/Optional;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject NetworkID; - jbyteArray NetworkIDByteArray = env->NewByteArray(static_cast(dataResponse.networkID.size())); - env->SetByteArrayRegion(NetworkIDByteArray, 0, static_cast(dataResponse.networkID.size()), - reinterpret_cast(dataResponse.networkID.data())); - NetworkID = NetworkIDByteArray; - jobject Breadcrumb; - if (!dataResponse.breadcrumb.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, Breadcrumb); - } - else - { - jobject BreadcrumbInsideOptional; - std::string BreadcrumbInsideOptionalClassName = "java/lang/Long"; - std::string BreadcrumbInsideOptionalCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(BreadcrumbInsideOptionalClassName.c_str(), - BreadcrumbInsideOptionalCtorSignature.c_str(), - dataResponse.breadcrumb.Value(), BreadcrumbInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(BreadcrumbInsideOptional, Breadcrumb); - } - - env->CallVoidMethod(javaCallbackRef, javaMethod, NetworkID, Breadcrumb); -} -CHIPNetworkCommissioningClusterConnectNetworkCallback::CHIPNetworkCommissioningClusterConnectNetworkCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPNetworkCommissioningClusterConnectNetworkCallback::~CHIPNetworkCommissioningClusterConnectNetworkCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPNetworkCommissioningClusterConnectNetworkCallback::CallbackFn( - void * context, const chip::app::Clusters::NetworkCommissioning::Commands::ConnectNetwork::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "([BLjava/util/Optional;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject NetworkID; - jbyteArray NetworkIDByteArray = env->NewByteArray(static_cast(dataResponse.networkID.size())); - env->SetByteArrayRegion(NetworkIDByteArray, 0, static_cast(dataResponse.networkID.size()), - reinterpret_cast(dataResponse.networkID.data())); - NetworkID = NetworkIDByteArray; - jobject Breadcrumb; - if (!dataResponse.breadcrumb.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, Breadcrumb); - } - else - { - jobject BreadcrumbInsideOptional; - std::string BreadcrumbInsideOptionalClassName = "java/lang/Long"; - std::string BreadcrumbInsideOptionalCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(BreadcrumbInsideOptionalClassName.c_str(), - BreadcrumbInsideOptionalCtorSignature.c_str(), - dataResponse.breadcrumb.Value(), BreadcrumbInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(BreadcrumbInsideOptional, Breadcrumb); - } - - env->CallVoidMethod(javaCallbackRef, javaMethod, NetworkID, Breadcrumb); -} -CHIPNetworkCommissioningClusterReorderNetworkCallback::CHIPNetworkCommissioningClusterReorderNetworkCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPNetworkCommissioningClusterReorderNetworkCallback::~CHIPNetworkCommissioningClusterReorderNetworkCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPNetworkCommissioningClusterReorderNetworkCallback::CallbackFn( - void * context, const chip::app::Clusters::NetworkCommissioning::Commands::ReorderNetwork::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "([BLjava/lang/Integer;Ljava/util/Optional;)V", - &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject NetworkID; - jbyteArray NetworkIDByteArray = env->NewByteArray(static_cast(dataResponse.networkID.size())); - env->SetByteArrayRegion(NetworkIDByteArray, 0, static_cast(dataResponse.networkID.size()), - reinterpret_cast(dataResponse.networkID.data())); - NetworkID = NetworkIDByteArray; - jobject NetworkIndex; - std::string NetworkIndexClassName = "java/lang/Integer"; - std::string NetworkIndexCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(NetworkIndexClassName.c_str(), NetworkIndexCtorSignature.c_str(), - dataResponse.networkIndex, NetworkIndex); - jobject Breadcrumb; - if (!dataResponse.breadcrumb.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, Breadcrumb); - } - else - { - jobject BreadcrumbInsideOptional; - std::string BreadcrumbInsideOptionalClassName = "java/lang/Long"; - std::string BreadcrumbInsideOptionalCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(BreadcrumbInsideOptionalClassName.c_str(), - BreadcrumbInsideOptionalCtorSignature.c_str(), - dataResponse.breadcrumb.Value(), BreadcrumbInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(BreadcrumbInsideOptional, Breadcrumb); - } - - env->CallVoidMethod(javaCallbackRef, javaMethod, NetworkID, NetworkIndex, Breadcrumb); -} -CHIPDiagnosticLogsClusterRetrieveLogsRequestCallback::CHIPDiagnosticLogsClusterRetrieveLogsRequestCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPDiagnosticLogsClusterRetrieveLogsRequestCallback::~CHIPDiagnosticLogsClusterRetrieveLogsRequestCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPDiagnosticLogsClusterRetrieveLogsRequestCallback::CallbackFn( - void * context, const chip::app::Clusters::DiagnosticLogs::Commands::RetrieveLogsRequest::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/util/Optional;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject Intent; - std::string IntentClassName = "java/lang/Integer"; - std::string IntentCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(IntentClassName.c_str(), IntentCtorSignature.c_str(), - static_cast(dataResponse.intent), Intent); - jobject RequestedProtocol; - std::string RequestedProtocolClassName = "java/lang/Integer"; - std::string RequestedProtocolCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - RequestedProtocolClassName.c_str(), RequestedProtocolCtorSignature.c_str(), - static_cast(dataResponse.requestedProtocol), RequestedProtocol); - jobject TransferFileDesignator; - if (!dataResponse.transferFileDesignator.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, TransferFileDesignator); - } - else - { - jobject TransferFileDesignatorInsideOptional; - TransferFileDesignatorInsideOptional = env->NewStringUTF( - std::string(dataResponse.transferFileDesignator.Value().data(), dataResponse.transferFileDesignator.Value().size()) - .c_str()); - chip::JniReferences::GetInstance().CreateOptional(TransferFileDesignatorInsideOptional, TransferFileDesignator); - } - - env->CallVoidMethod(javaCallbackRef, javaMethod, Intent, RequestedProtocol, TransferFileDesignator); -} -CHIPGeneralDiagnosticsClusterTestEventTriggerCallback::CHIPGeneralDiagnosticsClusterTestEventTriggerCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPGeneralDiagnosticsClusterTestEventTriggerCallback::~CHIPGeneralDiagnosticsClusterTestEventTriggerCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPGeneralDiagnosticsClusterTestEventTriggerCallback::CallbackFn( - void * context, const chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "([BLjava/lang/Long;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject EnableKey; - jbyteArray EnableKeyByteArray = env->NewByteArray(static_cast(dataResponse.enableKey.size())); - env->SetByteArrayRegion(EnableKeyByteArray, 0, static_cast(dataResponse.enableKey.size()), - reinterpret_cast(dataResponse.enableKey.data())); - EnableKey = EnableKeyByteArray; - jobject EventTrigger; - std::string EventTriggerClassName = "java/lang/Long"; - std::string EventTriggerCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(EventTriggerClassName.c_str(), EventTriggerCtorSignature.c_str(), - dataResponse.eventTrigger, EventTrigger); - - env->CallVoidMethod(javaCallbackRef, javaMethod, EnableKey, EventTrigger); -} -CHIPSoftwareDiagnosticsClusterResetWatermarksCallback::CHIPSoftwareDiagnosticsClusterResetWatermarksCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPSoftwareDiagnosticsClusterResetWatermarksCallback::~CHIPSoftwareDiagnosticsClusterResetWatermarksCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPSoftwareDiagnosticsClusterResetWatermarksCallback::CallbackFn( - void * context, const chip::app::Clusters::SoftwareDiagnostics::Commands::ResetWatermarks::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - env->CallVoidMethod(javaCallbackRef, javaMethod); -} -CHIPThreadNetworkDiagnosticsClusterResetCountsCallback::CHIPThreadNetworkDiagnosticsClusterResetCountsCallback( - jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPThreadNetworkDiagnosticsClusterResetCountsCallback::~CHIPThreadNetworkDiagnosticsClusterResetCountsCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPThreadNetworkDiagnosticsClusterResetCountsCallback::CallbackFn( - void * context, const chip::app::Clusters::ThreadNetworkDiagnostics::Commands::ResetCounts::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - env->CallVoidMethod(javaCallbackRef, javaMethod); -} -CHIPWiFiNetworkDiagnosticsClusterResetCountsCallback::CHIPWiFiNetworkDiagnosticsClusterResetCountsCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPWiFiNetworkDiagnosticsClusterResetCountsCallback::~CHIPWiFiNetworkDiagnosticsClusterResetCountsCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPWiFiNetworkDiagnosticsClusterResetCountsCallback::CallbackFn( - void * context, const chip::app::Clusters::WiFiNetworkDiagnostics::Commands::ResetCounts::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - env->CallVoidMethod(javaCallbackRef, javaMethod); -} -CHIPEthernetNetworkDiagnosticsClusterResetCountsCallback::CHIPEthernetNetworkDiagnosticsClusterResetCountsCallback( - jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPEthernetNetworkDiagnosticsClusterResetCountsCallback::~CHIPEthernetNetworkDiagnosticsClusterResetCountsCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPEthernetNetworkDiagnosticsClusterResetCountsCallback::CallbackFn( - void * context, const chip::app::Clusters::EthernetNetworkDiagnostics::Commands::ResetCounts::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - env->CallVoidMethod(javaCallbackRef, javaMethod); -} -CHIPAdministratorCommissioningClusterOpenCommissioningWindowCallback:: - CHIPAdministratorCommissioningClusterOpenCommissioningWindowCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPAdministratorCommissioningClusterOpenCommissioningWindowCallback:: - ~CHIPAdministratorCommissioningClusterOpenCommissioningWindowCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPAdministratorCommissioningClusterOpenCommissioningWindowCallback::CallbackFn( - void * context, - const chip::app::Clusters::AdministratorCommissioning::Commands::OpenCommissioningWindow::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;[BLjava/lang/Integer;Ljava/lang/Long;[B)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject CommissioningTimeout; - std::string CommissioningTimeoutClassName = "java/lang/Integer"; - std::string CommissioningTimeoutCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(CommissioningTimeoutClassName.c_str(), - CommissioningTimeoutCtorSignature.c_str(), - dataResponse.commissioningTimeout, CommissioningTimeout); - jobject PAKEPasscodeVerifier; - jbyteArray PAKEPasscodeVerifierByteArray = env->NewByteArray(static_cast(dataResponse.PAKEPasscodeVerifier.size())); - env->SetByteArrayRegion(PAKEPasscodeVerifierByteArray, 0, static_cast(dataResponse.PAKEPasscodeVerifier.size()), - reinterpret_cast(dataResponse.PAKEPasscodeVerifier.data())); - PAKEPasscodeVerifier = PAKEPasscodeVerifierByteArray; - jobject Discriminator; - std::string DiscriminatorClassName = "java/lang/Integer"; - std::string DiscriminatorCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - DiscriminatorClassName.c_str(), DiscriminatorCtorSignature.c_str(), dataResponse.discriminator, Discriminator); - jobject Iterations; - std::string IterationsClassName = "java/lang/Long"; - std::string IterationsCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(IterationsClassName.c_str(), IterationsCtorSignature.c_str(), - dataResponse.iterations, Iterations); - jobject Salt; - jbyteArray SaltByteArray = env->NewByteArray(static_cast(dataResponse.salt.size())); - env->SetByteArrayRegion(SaltByteArray, 0, static_cast(dataResponse.salt.size()), - reinterpret_cast(dataResponse.salt.data())); - Salt = SaltByteArray; - - env->CallVoidMethod(javaCallbackRef, javaMethod, CommissioningTimeout, PAKEPasscodeVerifier, Discriminator, Iterations, Salt); -} -CHIPAdministratorCommissioningClusterOpenBasicCommissioningWindowCallback:: - CHIPAdministratorCommissioningClusterOpenBasicCommissioningWindowCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPAdministratorCommissioningClusterOpenBasicCommissioningWindowCallback:: - ~CHIPAdministratorCommissioningClusterOpenBasicCommissioningWindowCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPAdministratorCommissioningClusterOpenBasicCommissioningWindowCallback::CallbackFn( - void * context, - const chip::app::Clusters::AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject CommissioningTimeout; - std::string CommissioningTimeoutClassName = "java/lang/Integer"; - std::string CommissioningTimeoutCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(CommissioningTimeoutClassName.c_str(), - CommissioningTimeoutCtorSignature.c_str(), - dataResponse.commissioningTimeout, CommissioningTimeout); - - env->CallVoidMethod(javaCallbackRef, javaMethod, CommissioningTimeout); -} -CHIPAdministratorCommissioningClusterRevokeCommissioningCallback::CHIPAdministratorCommissioningClusterRevokeCommissioningCallback( - jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPAdministratorCommissioningClusterRevokeCommissioningCallback:: - ~CHIPAdministratorCommissioningClusterRevokeCommissioningCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPAdministratorCommissioningClusterRevokeCommissioningCallback::CallbackFn( - void * context, - const chip::app::Clusters::AdministratorCommissioning::Commands::RevokeCommissioning::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - env->CallVoidMethod(javaCallbackRef, javaMethod); -} -CHIPOperationalCredentialsClusterAttestationRequestCallback::CHIPOperationalCredentialsClusterAttestationRequestCallback( - jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPOperationalCredentialsClusterAttestationRequestCallback::~CHIPOperationalCredentialsClusterAttestationRequestCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPOperationalCredentialsClusterAttestationRequestCallback::CallbackFn( - void * context, const chip::app::Clusters::OperationalCredentials::Commands::AttestationRequest::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "([B)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject AttestationNonce; - jbyteArray AttestationNonceByteArray = env->NewByteArray(static_cast(dataResponse.attestationNonce.size())); - env->SetByteArrayRegion(AttestationNonceByteArray, 0, static_cast(dataResponse.attestationNonce.size()), - reinterpret_cast(dataResponse.attestationNonce.data())); - AttestationNonce = AttestationNonceByteArray; - - env->CallVoidMethod(javaCallbackRef, javaMethod, AttestationNonce); -} -CHIPOperationalCredentialsClusterCertificateChainRequestCallback::CHIPOperationalCredentialsClusterCertificateChainRequestCallback( - jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPOperationalCredentialsClusterCertificateChainRequestCallback:: - ~CHIPOperationalCredentialsClusterCertificateChainRequestCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPOperationalCredentialsClusterCertificateChainRequestCallback::CallbackFn( - void * context, - const chip::app::Clusters::OperationalCredentials::Commands::CertificateChainRequest::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject CertificateType; - std::string CertificateTypeClassName = "java/lang/Integer"; - std::string CertificateTypeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - CertificateTypeClassName.c_str(), CertificateTypeCtorSignature.c_str(), static_cast(dataResponse.certificateType), - CertificateType); - - env->CallVoidMethod(javaCallbackRef, javaMethod, CertificateType); -} -CHIPOperationalCredentialsClusterCSRRequestCallback::CHIPOperationalCredentialsClusterCSRRequestCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPOperationalCredentialsClusterCSRRequestCallback::~CHIPOperationalCredentialsClusterCSRRequestCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPOperationalCredentialsClusterCSRRequestCallback::CallbackFn( - void * context, const chip::app::Clusters::OperationalCredentials::Commands::CSRRequest::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "([BLjava/util/Optional;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject CSRNonce; - jbyteArray CSRNonceByteArray = env->NewByteArray(static_cast(dataResponse.CSRNonce.size())); - env->SetByteArrayRegion(CSRNonceByteArray, 0, static_cast(dataResponse.CSRNonce.size()), - reinterpret_cast(dataResponse.CSRNonce.data())); - CSRNonce = CSRNonceByteArray; - jobject IsForUpdateNOC; - if (!dataResponse.isForUpdateNOC.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, IsForUpdateNOC); - } - else - { - jobject IsForUpdateNOCInsideOptional; - std::string IsForUpdateNOCInsideOptionalClassName = "java/lang/Boolean"; - std::string IsForUpdateNOCInsideOptionalCtorSignature = "(Z)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - IsForUpdateNOCInsideOptionalClassName.c_str(), IsForUpdateNOCInsideOptionalCtorSignature.c_str(), - dataResponse.isForUpdateNOC.Value(), IsForUpdateNOCInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(IsForUpdateNOCInsideOptional, IsForUpdateNOC); - } - - env->CallVoidMethod(javaCallbackRef, javaMethod, CSRNonce, IsForUpdateNOC); -} -CHIPOperationalCredentialsClusterAddNOCCallback::CHIPOperationalCredentialsClusterAddNOCCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPOperationalCredentialsClusterAddNOCCallback::~CHIPOperationalCredentialsClusterAddNOCCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPOperationalCredentialsClusterAddNOCCallback::CallbackFn( - void * context, const chip::app::Clusters::OperationalCredentials::Commands::AddNOC::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", - "([BLjava/util/Optional;[BLjava/lang/Long;Ljava/lang/Integer;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject NOCValue; - jbyteArray NOCValueByteArray = env->NewByteArray(static_cast(dataResponse.NOCValue.size())); - env->SetByteArrayRegion(NOCValueByteArray, 0, static_cast(dataResponse.NOCValue.size()), - reinterpret_cast(dataResponse.NOCValue.data())); - NOCValue = NOCValueByteArray; - jobject ICACValue; - if (!dataResponse.ICACValue.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, ICACValue); - } - else - { - jobject ICACValueInsideOptional; - jbyteArray ICACValueInsideOptionalByteArray = env->NewByteArray(static_cast(dataResponse.ICACValue.Value().size())); - env->SetByteArrayRegion(ICACValueInsideOptionalByteArray, 0, static_cast(dataResponse.ICACValue.Value().size()), - reinterpret_cast(dataResponse.ICACValue.Value().data())); - ICACValueInsideOptional = ICACValueInsideOptionalByteArray; - chip::JniReferences::GetInstance().CreateOptional(ICACValueInsideOptional, ICACValue); - } - jobject IPKValue; - jbyteArray IPKValueByteArray = env->NewByteArray(static_cast(dataResponse.IPKValue.size())); - env->SetByteArrayRegion(IPKValueByteArray, 0, static_cast(dataResponse.IPKValue.size()), - reinterpret_cast(dataResponse.IPKValue.data())); - IPKValue = IPKValueByteArray; - jobject CaseAdminSubject; - std::string CaseAdminSubjectClassName = "java/lang/Long"; - std::string CaseAdminSubjectCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - CaseAdminSubjectClassName.c_str(), CaseAdminSubjectCtorSignature.c_str(), dataResponse.caseAdminSubject, CaseAdminSubject); - jobject AdminVendorId; - std::string AdminVendorIdClassName = "java/lang/Integer"; - std::string AdminVendorIdCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - AdminVendorIdClassName.c_str(), AdminVendorIdCtorSignature.c_str(), static_cast(dataResponse.adminVendorId), - AdminVendorId); - - env->CallVoidMethod(javaCallbackRef, javaMethod, NOCValue, ICACValue, IPKValue, CaseAdminSubject, AdminVendorId); -} -CHIPOperationalCredentialsClusterUpdateNOCCallback::CHIPOperationalCredentialsClusterUpdateNOCCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPOperationalCredentialsClusterUpdateNOCCallback::~CHIPOperationalCredentialsClusterUpdateNOCCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPOperationalCredentialsClusterUpdateNOCCallback::CallbackFn( - void * context, const chip::app::Clusters::OperationalCredentials::Commands::UpdateNOC::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "([BLjava/util/Optional;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject NOCValue; - jbyteArray NOCValueByteArray = env->NewByteArray(static_cast(dataResponse.NOCValue.size())); - env->SetByteArrayRegion(NOCValueByteArray, 0, static_cast(dataResponse.NOCValue.size()), - reinterpret_cast(dataResponse.NOCValue.data())); - NOCValue = NOCValueByteArray; - jobject ICACValue; - if (!dataResponse.ICACValue.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, ICACValue); - } - else - { - jobject ICACValueInsideOptional; - jbyteArray ICACValueInsideOptionalByteArray = env->NewByteArray(static_cast(dataResponse.ICACValue.Value().size())); - env->SetByteArrayRegion(ICACValueInsideOptionalByteArray, 0, static_cast(dataResponse.ICACValue.Value().size()), - reinterpret_cast(dataResponse.ICACValue.Value().data())); - ICACValueInsideOptional = ICACValueInsideOptionalByteArray; - chip::JniReferences::GetInstance().CreateOptional(ICACValueInsideOptional, ICACValue); - } - - env->CallVoidMethod(javaCallbackRef, javaMethod, NOCValue, ICACValue); -} -CHIPOperationalCredentialsClusterUpdateFabricLabelCallback::CHIPOperationalCredentialsClusterUpdateFabricLabelCallback( - jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPOperationalCredentialsClusterUpdateFabricLabelCallback::~CHIPOperationalCredentialsClusterUpdateFabricLabelCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPOperationalCredentialsClusterUpdateFabricLabelCallback::CallbackFn( - void * context, const chip::app::Clusters::OperationalCredentials::Commands::UpdateFabricLabel::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/String;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject Label; - Label = env->NewStringUTF(std::string(dataResponse.label.data(), dataResponse.label.size()).c_str()); - - env->CallVoidMethod(javaCallbackRef, javaMethod, Label); -} -CHIPOperationalCredentialsClusterRemoveFabricCallback::CHIPOperationalCredentialsClusterRemoveFabricCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPOperationalCredentialsClusterRemoveFabricCallback::~CHIPOperationalCredentialsClusterRemoveFabricCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPOperationalCredentialsClusterRemoveFabricCallback::CallbackFn( - void * context, const chip::app::Clusters::OperationalCredentials::Commands::RemoveFabric::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject FabricIndex; - std::string FabricIndexClassName = "java/lang/Integer"; - std::string FabricIndexCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(FabricIndexClassName.c_str(), FabricIndexCtorSignature.c_str(), - dataResponse.fabricIndex, FabricIndex); - - env->CallVoidMethod(javaCallbackRef, javaMethod, FabricIndex); -} -CHIPOperationalCredentialsClusterAddTrustedRootCertificateCallback:: - CHIPOperationalCredentialsClusterAddTrustedRootCertificateCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPOperationalCredentialsClusterAddTrustedRootCertificateCallback:: - ~CHIPOperationalCredentialsClusterAddTrustedRootCertificateCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPOperationalCredentialsClusterAddTrustedRootCertificateCallback::CallbackFn( - void * context, - const chip::app::Clusters::OperationalCredentials::Commands::AddTrustedRootCertificate::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "([B)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject RootCACertificate; - jbyteArray RootCACertificateByteArray = env->NewByteArray(static_cast(dataResponse.rootCACertificate.size())); - env->SetByteArrayRegion(RootCACertificateByteArray, 0, static_cast(dataResponse.rootCACertificate.size()), - reinterpret_cast(dataResponse.rootCACertificate.data())); - RootCACertificate = RootCACertificateByteArray; - - env->CallVoidMethod(javaCallbackRef, javaMethod, RootCACertificate); -} -CHIPGroupKeyManagementClusterKeySetWriteCallback::CHIPGroupKeyManagementClusterKeySetWriteCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPGroupKeyManagementClusterKeySetWriteCallback::~CHIPGroupKeyManagementClusterKeySetWriteCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPGroupKeyManagementClusterKeySetWriteCallback::CallbackFn( - void * context, const chip::app::Clusters::GroupKeyManagement::Commands::KeySetWrite::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod( - env, javaCallbackRef, "onSuccess", "(Lchip/devicecontroller/ChipStructs$GroupKeyManagementClusterGroupKeySetStruct;)V", - &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject GroupKeySet; - jobject GroupKeySet_groupKeySetID; - std::string GroupKeySet_groupKeySetIDClassName = "java/lang/Integer"; - std::string GroupKeySet_groupKeySetIDCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - GroupKeySet_groupKeySetIDClassName.c_str(), GroupKeySet_groupKeySetIDCtorSignature.c_str(), - dataResponse.groupKeySet.groupKeySetID, GroupKeySet_groupKeySetID); - jobject GroupKeySet_groupKeySecurityPolicy; - std::string GroupKeySet_groupKeySecurityPolicyClassName = "java/lang/Integer"; - std::string GroupKeySet_groupKeySecurityPolicyCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - GroupKeySet_groupKeySecurityPolicyClassName.c_str(), GroupKeySet_groupKeySecurityPolicyCtorSignature.c_str(), - static_cast(dataResponse.groupKeySet.groupKeySecurityPolicy), GroupKeySet_groupKeySecurityPolicy); - jobject GroupKeySet_epochKey0; - if (dataResponse.groupKeySet.epochKey0.IsNull()) - { - GroupKeySet_epochKey0 = nullptr; - } - else - { - jbyteArray GroupKeySet_epochKey0ByteArray = - env->NewByteArray(static_cast(dataResponse.groupKeySet.epochKey0.Value().size())); - env->SetByteArrayRegion(GroupKeySet_epochKey0ByteArray, 0, - static_cast(dataResponse.groupKeySet.epochKey0.Value().size()), - reinterpret_cast(dataResponse.groupKeySet.epochKey0.Value().data())); - GroupKeySet_epochKey0 = GroupKeySet_epochKey0ByteArray; - } - jobject GroupKeySet_epochStartTime0; - if (dataResponse.groupKeySet.epochStartTime0.IsNull()) - { - GroupKeySet_epochStartTime0 = nullptr; - } - else - { - std::string GroupKeySet_epochStartTime0ClassName = "java/lang/Long"; - std::string GroupKeySet_epochStartTime0CtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - GroupKeySet_epochStartTime0ClassName.c_str(), GroupKeySet_epochStartTime0CtorSignature.c_str(), - dataResponse.groupKeySet.epochStartTime0.Value(), GroupKeySet_epochStartTime0); - } - jobject GroupKeySet_epochKey1; - if (dataResponse.groupKeySet.epochKey1.IsNull()) - { - GroupKeySet_epochKey1 = nullptr; - } - else - { - jbyteArray GroupKeySet_epochKey1ByteArray = - env->NewByteArray(static_cast(dataResponse.groupKeySet.epochKey1.Value().size())); - env->SetByteArrayRegion(GroupKeySet_epochKey1ByteArray, 0, - static_cast(dataResponse.groupKeySet.epochKey1.Value().size()), - reinterpret_cast(dataResponse.groupKeySet.epochKey1.Value().data())); - GroupKeySet_epochKey1 = GroupKeySet_epochKey1ByteArray; - } - jobject GroupKeySet_epochStartTime1; - if (dataResponse.groupKeySet.epochStartTime1.IsNull()) - { - GroupKeySet_epochStartTime1 = nullptr; - } - else - { - std::string GroupKeySet_epochStartTime1ClassName = "java/lang/Long"; - std::string GroupKeySet_epochStartTime1CtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - GroupKeySet_epochStartTime1ClassName.c_str(), GroupKeySet_epochStartTime1CtorSignature.c_str(), - dataResponse.groupKeySet.epochStartTime1.Value(), GroupKeySet_epochStartTime1); - } - jobject GroupKeySet_epochKey2; - if (dataResponse.groupKeySet.epochKey2.IsNull()) - { - GroupKeySet_epochKey2 = nullptr; - } - else - { - jbyteArray GroupKeySet_epochKey2ByteArray = - env->NewByteArray(static_cast(dataResponse.groupKeySet.epochKey2.Value().size())); - env->SetByteArrayRegion(GroupKeySet_epochKey2ByteArray, 0, - static_cast(dataResponse.groupKeySet.epochKey2.Value().size()), - reinterpret_cast(dataResponse.groupKeySet.epochKey2.Value().data())); - GroupKeySet_epochKey2 = GroupKeySet_epochKey2ByteArray; - } - jobject GroupKeySet_epochStartTime2; - if (dataResponse.groupKeySet.epochStartTime2.IsNull()) - { - GroupKeySet_epochStartTime2 = nullptr; - } - else - { - std::string GroupKeySet_epochStartTime2ClassName = "java/lang/Long"; - std::string GroupKeySet_epochStartTime2CtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - GroupKeySet_epochStartTime2ClassName.c_str(), GroupKeySet_epochStartTime2CtorSignature.c_str(), - dataResponse.groupKeySet.epochStartTime2.Value(), GroupKeySet_epochStartTime2); - } - - jclass groupKeySetStructStructClass_0; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$GroupKeyManagementClusterGroupKeySetStruct", groupKeySetStructStructClass_0); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$GroupKeyManagementClusterGroupKeySetStruct"); - return; - } - jmethodID groupKeySetStructStructCtor_0 = - env->GetMethodID(groupKeySetStructStructClass_0, "", - "(Ljava/lang/Integer;Ljava/lang/Integer;[BLjava/lang/Long;[BLjava/lang/Long;[BLjava/lang/Long;)V"); - if (groupKeySetStructStructCtor_0 == nullptr) - { - ChipLogError(Zcl, "Could not find ChipStructs$GroupKeyManagementClusterGroupKeySetStruct constructor"); - return; - } - - GroupKeySet = - env->NewObject(groupKeySetStructStructClass_0, groupKeySetStructStructCtor_0, GroupKeySet_groupKeySetID, - GroupKeySet_groupKeySecurityPolicy, GroupKeySet_epochKey0, GroupKeySet_epochStartTime0, - GroupKeySet_epochKey1, GroupKeySet_epochStartTime1, GroupKeySet_epochKey2, GroupKeySet_epochStartTime2); - - env->CallVoidMethod(javaCallbackRef, javaMethod, GroupKeySet); -} -CHIPGroupKeyManagementClusterKeySetReadCallback::CHIPGroupKeyManagementClusterKeySetReadCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPGroupKeyManagementClusterKeySetReadCallback::~CHIPGroupKeyManagementClusterKeySetReadCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPGroupKeyManagementClusterKeySetReadCallback::CallbackFn( - void * context, const chip::app::Clusters::GroupKeyManagement::Commands::KeySetRead::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject GroupKeySetID; - std::string GroupKeySetIDClassName = "java/lang/Integer"; - std::string GroupKeySetIDCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - GroupKeySetIDClassName.c_str(), GroupKeySetIDCtorSignature.c_str(), dataResponse.groupKeySetID, GroupKeySetID); - - env->CallVoidMethod(javaCallbackRef, javaMethod, GroupKeySetID); -} -CHIPGroupKeyManagementClusterKeySetRemoveCallback::CHIPGroupKeyManagementClusterKeySetRemoveCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPGroupKeyManagementClusterKeySetRemoveCallback::~CHIPGroupKeyManagementClusterKeySetRemoveCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPGroupKeyManagementClusterKeySetRemoveCallback::CallbackFn( - void * context, const chip::app::Clusters::GroupKeyManagement::Commands::KeySetRemove::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject GroupKeySetID; - std::string GroupKeySetIDClassName = "java/lang/Integer"; - std::string GroupKeySetIDCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - GroupKeySetIDClassName.c_str(), GroupKeySetIDCtorSignature.c_str(), dataResponse.groupKeySetID, GroupKeySetID); - - env->CallVoidMethod(javaCallbackRef, javaMethod, GroupKeySetID); -} -CHIPGroupKeyManagementClusterKeySetReadAllIndicesCallback::CHIPGroupKeyManagementClusterKeySetReadAllIndicesCallback( - jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPGroupKeyManagementClusterKeySetReadAllIndicesCallback::~CHIPGroupKeyManagementClusterKeySetReadAllIndicesCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPGroupKeyManagementClusterKeySetReadAllIndicesCallback::CallbackFn( - void * context, const chip::app::Clusters::GroupKeyManagement::Commands::KeySetReadAllIndices::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/ArrayList;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject GroupKeySetIDs; - chip::JniReferences::GetInstance().CreateArrayList(GroupKeySetIDs); - - auto iter_GroupKeySetIDs_0 = dataResponse.groupKeySetIDs.begin(); - while (iter_GroupKeySetIDs_0.Next()) - { - auto & entry_0 = iter_GroupKeySetIDs_0.GetValue(); - jobject newElement_0; - std::string newElement_0ClassName = "java/lang/Integer"; - std::string newElement_0CtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0ClassName.c_str(), - newElement_0CtorSignature.c_str(), entry_0, newElement_0); - chip::JniReferences::GetInstance().AddToList(GroupKeySetIDs, newElement_0); - } - - env->CallVoidMethod(javaCallbackRef, javaMethod, GroupKeySetIDs); -} -CHIPModeSelectClusterChangeToModeCallback::CHIPModeSelectClusterChangeToModeCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPModeSelectClusterChangeToModeCallback::~CHIPModeSelectClusterChangeToModeCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPModeSelectClusterChangeToModeCallback::CallbackFn( - void * context, const chip::app::Clusters::ModeSelect::Commands::ChangeToMode::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject NewMode; - std::string NewModeClassName = "java/lang/Integer"; - std::string NewModeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(NewModeClassName.c_str(), NewModeCtorSignature.c_str(), - dataResponse.newMode, NewMode); - - env->CallVoidMethod(javaCallbackRef, javaMethod, NewMode); -} -CHIPDoorLockClusterLockDoorCallback::CHIPDoorLockClusterLockDoorCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPDoorLockClusterLockDoorCallback::~CHIPDoorLockClusterLockDoorCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPDoorLockClusterLockDoorCallback::CallbackFn( - void * context, const chip::app::Clusters::DoorLock::Commands::LockDoor::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/Optional;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject PINCode; - if (!dataResponse.PINCode.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, PINCode); - } - else - { - jobject PINCodeInsideOptional; - jbyteArray PINCodeInsideOptionalByteArray = env->NewByteArray(static_cast(dataResponse.PINCode.Value().size())); - env->SetByteArrayRegion(PINCodeInsideOptionalByteArray, 0, static_cast(dataResponse.PINCode.Value().size()), - reinterpret_cast(dataResponse.PINCode.Value().data())); - PINCodeInsideOptional = PINCodeInsideOptionalByteArray; - chip::JniReferences::GetInstance().CreateOptional(PINCodeInsideOptional, PINCode); - } - - env->CallVoidMethod(javaCallbackRef, javaMethod, PINCode); -} -CHIPDoorLockClusterUnlockDoorCallback::CHIPDoorLockClusterUnlockDoorCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPDoorLockClusterUnlockDoorCallback::~CHIPDoorLockClusterUnlockDoorCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPDoorLockClusterUnlockDoorCallback::CallbackFn( - void * context, const chip::app::Clusters::DoorLock::Commands::UnlockDoor::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/Optional;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject PINCode; - if (!dataResponse.PINCode.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, PINCode); - } - else - { - jobject PINCodeInsideOptional; - jbyteArray PINCodeInsideOptionalByteArray = env->NewByteArray(static_cast(dataResponse.PINCode.Value().size())); - env->SetByteArrayRegion(PINCodeInsideOptionalByteArray, 0, static_cast(dataResponse.PINCode.Value().size()), - reinterpret_cast(dataResponse.PINCode.Value().data())); - PINCodeInsideOptional = PINCodeInsideOptionalByteArray; - chip::JniReferences::GetInstance().CreateOptional(PINCodeInsideOptional, PINCode); - } - - env->CallVoidMethod(javaCallbackRef, javaMethod, PINCode); -} -CHIPDoorLockClusterUnlockWithTimeoutCallback::CHIPDoorLockClusterUnlockWithTimeoutCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPDoorLockClusterUnlockWithTimeoutCallback::~CHIPDoorLockClusterUnlockWithTimeoutCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPDoorLockClusterUnlockWithTimeoutCallback::CallbackFn( - void * context, const chip::app::Clusters::DoorLock::Commands::UnlockWithTimeout::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/util/Optional;)V", - &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject Timeout; - std::string TimeoutClassName = "java/lang/Integer"; - std::string TimeoutCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(TimeoutClassName.c_str(), TimeoutCtorSignature.c_str(), - dataResponse.timeout, Timeout); - jobject PINCode; - if (!dataResponse.PINCode.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, PINCode); - } - else - { - jobject PINCodeInsideOptional; - jbyteArray PINCodeInsideOptionalByteArray = env->NewByteArray(static_cast(dataResponse.PINCode.Value().size())); - env->SetByteArrayRegion(PINCodeInsideOptionalByteArray, 0, static_cast(dataResponse.PINCode.Value().size()), - reinterpret_cast(dataResponse.PINCode.Value().data())); - PINCodeInsideOptional = PINCodeInsideOptionalByteArray; - chip::JniReferences::GetInstance().CreateOptional(PINCodeInsideOptional, PINCode); - } - - env->CallVoidMethod(javaCallbackRef, javaMethod, Timeout, PINCode); -} -CHIPDoorLockClusterSetWeekDayScheduleCallback::CHIPDoorLockClusterSetWeekDayScheduleCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPDoorLockClusterSetWeekDayScheduleCallback::~CHIPDoorLockClusterSetWeekDayScheduleCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPDoorLockClusterSetWeekDayScheduleCallback::CallbackFn( - void * context, const chip::app::Clusters::DoorLock::Commands::SetWeekDaySchedule::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/" - "Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", - &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject WeekDayIndex; - std::string WeekDayIndexClassName = "java/lang/Integer"; - std::string WeekDayIndexCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(WeekDayIndexClassName.c_str(), WeekDayIndexCtorSignature.c_str(), - dataResponse.weekDayIndex, WeekDayIndex); - jobject UserIndex; - std::string UserIndexClassName = "java/lang/Integer"; - std::string UserIndexCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(UserIndexClassName.c_str(), UserIndexCtorSignature.c_str(), - dataResponse.userIndex, UserIndex); - jobject DaysMask; - std::string DaysMaskClassName = "java/lang/Integer"; - std::string DaysMaskCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(DaysMaskClassName.c_str(), DaysMaskCtorSignature.c_str(), - dataResponse.daysMask.Raw(), DaysMask); - jobject StartHour; - std::string StartHourClassName = "java/lang/Integer"; - std::string StartHourCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(StartHourClassName.c_str(), StartHourCtorSignature.c_str(), - dataResponse.startHour, StartHour); - jobject StartMinute; - std::string StartMinuteClassName = "java/lang/Integer"; - std::string StartMinuteCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(StartMinuteClassName.c_str(), StartMinuteCtorSignature.c_str(), - dataResponse.startMinute, StartMinute); - jobject EndHour; - std::string EndHourClassName = "java/lang/Integer"; - std::string EndHourCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(EndHourClassName.c_str(), EndHourCtorSignature.c_str(), - dataResponse.endHour, EndHour); - jobject EndMinute; - std::string EndMinuteClassName = "java/lang/Integer"; - std::string EndMinuteCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(EndMinuteClassName.c_str(), EndMinuteCtorSignature.c_str(), - dataResponse.endMinute, EndMinute); - - env->CallVoidMethod(javaCallbackRef, javaMethod, WeekDayIndex, UserIndex, DaysMask, StartHour, StartMinute, EndHour, EndMinute); -} -CHIPDoorLockClusterGetWeekDayScheduleCallback::CHIPDoorLockClusterGetWeekDayScheduleCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPDoorLockClusterGetWeekDayScheduleCallback::~CHIPDoorLockClusterGetWeekDayScheduleCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPDoorLockClusterGetWeekDayScheduleCallback::CallbackFn( - void * context, const chip::app::Clusters::DoorLock::Commands::GetWeekDaySchedule::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;)V", - &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject WeekDayIndex; - std::string WeekDayIndexClassName = "java/lang/Integer"; - std::string WeekDayIndexCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(WeekDayIndexClassName.c_str(), WeekDayIndexCtorSignature.c_str(), - dataResponse.weekDayIndex, WeekDayIndex); - jobject UserIndex; - std::string UserIndexClassName = "java/lang/Integer"; - std::string UserIndexCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(UserIndexClassName.c_str(), UserIndexCtorSignature.c_str(), - dataResponse.userIndex, UserIndex); - - env->CallVoidMethod(javaCallbackRef, javaMethod, WeekDayIndex, UserIndex); -} -CHIPDoorLockClusterClearWeekDayScheduleCallback::CHIPDoorLockClusterClearWeekDayScheduleCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPDoorLockClusterClearWeekDayScheduleCallback::~CHIPDoorLockClusterClearWeekDayScheduleCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPDoorLockClusterClearWeekDayScheduleCallback::CallbackFn( - void * context, const chip::app::Clusters::DoorLock::Commands::ClearWeekDaySchedule::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;)V", - &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject WeekDayIndex; - std::string WeekDayIndexClassName = "java/lang/Integer"; - std::string WeekDayIndexCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(WeekDayIndexClassName.c_str(), WeekDayIndexCtorSignature.c_str(), - dataResponse.weekDayIndex, WeekDayIndex); - jobject UserIndex; - std::string UserIndexClassName = "java/lang/Integer"; - std::string UserIndexCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(UserIndexClassName.c_str(), UserIndexCtorSignature.c_str(), - dataResponse.userIndex, UserIndex); - - env->CallVoidMethod(javaCallbackRef, javaMethod, WeekDayIndex, UserIndex); -} -CHIPDoorLockClusterSetYearDayScheduleCallback::CHIPDoorLockClusterSetYearDayScheduleCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPDoorLockClusterSetYearDayScheduleCallback::~CHIPDoorLockClusterSetYearDayScheduleCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPDoorLockClusterSetYearDayScheduleCallback::CallbackFn( - void * context, const chip::app::Clusters::DoorLock::Commands::SetYearDaySchedule::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Long;Ljava/lang/Long;)V", - &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject YearDayIndex; - std::string YearDayIndexClassName = "java/lang/Integer"; - std::string YearDayIndexCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(YearDayIndexClassName.c_str(), YearDayIndexCtorSignature.c_str(), - dataResponse.yearDayIndex, YearDayIndex); - jobject UserIndex; - std::string UserIndexClassName = "java/lang/Integer"; - std::string UserIndexCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(UserIndexClassName.c_str(), UserIndexCtorSignature.c_str(), - dataResponse.userIndex, UserIndex); - jobject LocalStartTime; - std::string LocalStartTimeClassName = "java/lang/Long"; - std::string LocalStartTimeCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - LocalStartTimeClassName.c_str(), LocalStartTimeCtorSignature.c_str(), dataResponse.localStartTime, LocalStartTime); - jobject LocalEndTime; - std::string LocalEndTimeClassName = "java/lang/Long"; - std::string LocalEndTimeCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(LocalEndTimeClassName.c_str(), LocalEndTimeCtorSignature.c_str(), - dataResponse.localEndTime, LocalEndTime); - - env->CallVoidMethod(javaCallbackRef, javaMethod, YearDayIndex, UserIndex, LocalStartTime, LocalEndTime); -} -CHIPDoorLockClusterGetYearDayScheduleCallback::CHIPDoorLockClusterGetYearDayScheduleCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPDoorLockClusterGetYearDayScheduleCallback::~CHIPDoorLockClusterGetYearDayScheduleCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPDoorLockClusterGetYearDayScheduleCallback::CallbackFn( - void * context, const chip::app::Clusters::DoorLock::Commands::GetYearDaySchedule::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;)V", - &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject YearDayIndex; - std::string YearDayIndexClassName = "java/lang/Integer"; - std::string YearDayIndexCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(YearDayIndexClassName.c_str(), YearDayIndexCtorSignature.c_str(), - dataResponse.yearDayIndex, YearDayIndex); - jobject UserIndex; - std::string UserIndexClassName = "java/lang/Integer"; - std::string UserIndexCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(UserIndexClassName.c_str(), UserIndexCtorSignature.c_str(), - dataResponse.userIndex, UserIndex); - - env->CallVoidMethod(javaCallbackRef, javaMethod, YearDayIndex, UserIndex); -} -CHIPDoorLockClusterClearYearDayScheduleCallback::CHIPDoorLockClusterClearYearDayScheduleCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPDoorLockClusterClearYearDayScheduleCallback::~CHIPDoorLockClusterClearYearDayScheduleCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPDoorLockClusterClearYearDayScheduleCallback::CallbackFn( - void * context, const chip::app::Clusters::DoorLock::Commands::ClearYearDaySchedule::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;)V", - &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject YearDayIndex; - std::string YearDayIndexClassName = "java/lang/Integer"; - std::string YearDayIndexCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(YearDayIndexClassName.c_str(), YearDayIndexCtorSignature.c_str(), - dataResponse.yearDayIndex, YearDayIndex); - jobject UserIndex; - std::string UserIndexClassName = "java/lang/Integer"; - std::string UserIndexCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(UserIndexClassName.c_str(), UserIndexCtorSignature.c_str(), - dataResponse.userIndex, UserIndex); - - env->CallVoidMethod(javaCallbackRef, javaMethod, YearDayIndex, UserIndex); -} -CHIPDoorLockClusterSetHolidayScheduleCallback::CHIPDoorLockClusterSetHolidayScheduleCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPDoorLockClusterSetHolidayScheduleCallback::~CHIPDoorLockClusterSetHolidayScheduleCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPDoorLockClusterSetHolidayScheduleCallback::CallbackFn( - void * context, const chip::app::Clusters::DoorLock::Commands::SetHolidaySchedule::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Integer;)V", - &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject HolidayIndex; - std::string HolidayIndexClassName = "java/lang/Integer"; - std::string HolidayIndexCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(HolidayIndexClassName.c_str(), HolidayIndexCtorSignature.c_str(), - dataResponse.holidayIndex, HolidayIndex); - jobject LocalStartTime; - std::string LocalStartTimeClassName = "java/lang/Long"; - std::string LocalStartTimeCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - LocalStartTimeClassName.c_str(), LocalStartTimeCtorSignature.c_str(), dataResponse.localStartTime, LocalStartTime); - jobject LocalEndTime; - std::string LocalEndTimeClassName = "java/lang/Long"; - std::string LocalEndTimeCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(LocalEndTimeClassName.c_str(), LocalEndTimeCtorSignature.c_str(), - dataResponse.localEndTime, LocalEndTime); - jobject OperatingMode; - std::string OperatingModeClassName = "java/lang/Integer"; - std::string OperatingModeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(OperatingModeClassName.c_str(), - OperatingModeCtorSignature.c_str(), - static_cast(dataResponse.operatingMode), OperatingMode); - - env->CallVoidMethod(javaCallbackRef, javaMethod, HolidayIndex, LocalStartTime, LocalEndTime, OperatingMode); -} -CHIPDoorLockClusterGetHolidayScheduleCallback::CHIPDoorLockClusterGetHolidayScheduleCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPDoorLockClusterGetHolidayScheduleCallback::~CHIPDoorLockClusterGetHolidayScheduleCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPDoorLockClusterGetHolidayScheduleCallback::CallbackFn( - void * context, const chip::app::Clusters::DoorLock::Commands::GetHolidaySchedule::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject HolidayIndex; - std::string HolidayIndexClassName = "java/lang/Integer"; - std::string HolidayIndexCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(HolidayIndexClassName.c_str(), HolidayIndexCtorSignature.c_str(), - dataResponse.holidayIndex, HolidayIndex); - - env->CallVoidMethod(javaCallbackRef, javaMethod, HolidayIndex); -} -CHIPDoorLockClusterClearHolidayScheduleCallback::CHIPDoorLockClusterClearHolidayScheduleCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPDoorLockClusterClearHolidayScheduleCallback::~CHIPDoorLockClusterClearHolidayScheduleCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPDoorLockClusterClearHolidayScheduleCallback::CallbackFn( - void * context, const chip::app::Clusters::DoorLock::Commands::ClearHolidaySchedule::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject HolidayIndex; - std::string HolidayIndexClassName = "java/lang/Integer"; - std::string HolidayIndexCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(HolidayIndexClassName.c_str(), HolidayIndexCtorSignature.c_str(), - dataResponse.holidayIndex, HolidayIndex); - - env->CallVoidMethod(javaCallbackRef, javaMethod, HolidayIndex); -} -CHIPDoorLockClusterSetUserCallback::CHIPDoorLockClusterSetUserCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPDoorLockClusterSetUserCallback::~CHIPDoorLockClusterSetUserCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPDoorLockClusterSetUserCallback::CallbackFn( - void * context, const chip::app::Clusters::DoorLock::Commands::SetUser::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/Long;Ljava/" - "lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", - &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject OperationType; - std::string OperationTypeClassName = "java/lang/Integer"; - std::string OperationTypeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(OperationTypeClassName.c_str(), - OperationTypeCtorSignature.c_str(), - static_cast(dataResponse.operationType), OperationType); - jobject UserIndex; - std::string UserIndexClassName = "java/lang/Integer"; - std::string UserIndexCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(UserIndexClassName.c_str(), UserIndexCtorSignature.c_str(), - dataResponse.userIndex, UserIndex); - jobject UserName; - if (dataResponse.userName.IsNull()) - { - UserName = nullptr; - } - else - { - UserName = - env->NewStringUTF(std::string(dataResponse.userName.Value().data(), dataResponse.userName.Value().size()).c_str()); - } - jobject UserUniqueID; - if (dataResponse.userUniqueID.IsNull()) - { - UserUniqueID = nullptr; - } - else - { - std::string UserUniqueIDClassName = "java/lang/Long"; - std::string UserUniqueIDCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - UserUniqueIDClassName.c_str(), UserUniqueIDCtorSignature.c_str(), dataResponse.userUniqueID.Value(), UserUniqueID); - } - jobject UserStatus; - if (dataResponse.userStatus.IsNull()) - { - UserStatus = nullptr; - } - else - { - std::string UserStatusClassName = "java/lang/Integer"; - std::string UserStatusCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(UserStatusClassName.c_str(), UserStatusCtorSignature.c_str(), - static_cast(dataResponse.userStatus.Value()), - UserStatus); - } - jobject UserType; - if (dataResponse.userType.IsNull()) - { - UserType = nullptr; - } - else - { - std::string UserTypeClassName = "java/lang/Integer"; - std::string UserTypeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(UserTypeClassName.c_str(), UserTypeCtorSignature.c_str(), - static_cast(dataResponse.userType.Value()), - UserType); - } - jobject CredentialRule; - if (dataResponse.credentialRule.IsNull()) - { - CredentialRule = nullptr; - } - else - { - std::string CredentialRuleClassName = "java/lang/Integer"; - std::string CredentialRuleCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - CredentialRuleClassName.c_str(), CredentialRuleCtorSignature.c_str(), - static_cast(dataResponse.credentialRule.Value()), CredentialRule); - } - - env->CallVoidMethod(javaCallbackRef, javaMethod, OperationType, UserIndex, UserName, UserUniqueID, UserStatus, UserType, - CredentialRule); -} -CHIPDoorLockClusterGetUserCallback::CHIPDoorLockClusterGetUserCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPDoorLockClusterGetUserCallback::~CHIPDoorLockClusterGetUserCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPDoorLockClusterGetUserCallback::CallbackFn( - void * context, const chip::app::Clusters::DoorLock::Commands::GetUser::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject UserIndex; - std::string UserIndexClassName = "java/lang/Integer"; - std::string UserIndexCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(UserIndexClassName.c_str(), UserIndexCtorSignature.c_str(), - dataResponse.userIndex, UserIndex); - - env->CallVoidMethod(javaCallbackRef, javaMethod, UserIndex); -} -CHIPDoorLockClusterClearUserCallback::CHIPDoorLockClusterClearUserCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPDoorLockClusterClearUserCallback::~CHIPDoorLockClusterClearUserCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPDoorLockClusterClearUserCallback::CallbackFn( - void * context, const chip::app::Clusters::DoorLock::Commands::ClearUser::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject UserIndex; - std::string UserIndexClassName = "java/lang/Integer"; - std::string UserIndexCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(UserIndexClassName.c_str(), UserIndexCtorSignature.c_str(), - dataResponse.userIndex, UserIndex); - - env->CallVoidMethod(javaCallbackRef, javaMethod, UserIndex); -} -CHIPDoorLockClusterSetCredentialCallback::CHIPDoorLockClusterSetCredentialCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPDoorLockClusterSetCredentialCallback::~CHIPDoorLockClusterSetCredentialCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPDoorLockClusterSetCredentialCallback::CallbackFn( - void * context, const chip::app::Clusters::DoorLock::Commands::SetCredential::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod( - env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Lchip/devicecontroller/ChipStructs$DoorLockClusterCredentialStruct;[BLjava/lang/Integer;Ljava/lang/" - "Integer;Ljava/lang/Integer;)V", - &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject OperationType; - std::string OperationTypeClassName = "java/lang/Integer"; - std::string OperationTypeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(OperationTypeClassName.c_str(), - OperationTypeCtorSignature.c_str(), - static_cast(dataResponse.operationType), OperationType); - jobject Credential; - jobject Credential_credentialType; - std::string Credential_credentialTypeClassName = "java/lang/Integer"; - std::string Credential_credentialTypeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - Credential_credentialTypeClassName.c_str(), Credential_credentialTypeCtorSignature.c_str(), - static_cast(dataResponse.credential.credentialType), Credential_credentialType); - jobject Credential_credentialIndex; - std::string Credential_credentialIndexClassName = "java/lang/Integer"; - std::string Credential_credentialIndexCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - Credential_credentialIndexClassName.c_str(), Credential_credentialIndexCtorSignature.c_str(), - dataResponse.credential.credentialIndex, Credential_credentialIndex); - - jclass credentialStructStructClass_0; - err = chip::JniReferences::GetInstance().GetClassRef(env, "chip/devicecontroller/ChipStructs$DoorLockClusterCredentialStruct", - credentialStructStructClass_0); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$DoorLockClusterCredentialStruct"); - return; - } - jmethodID credentialStructStructCtor_0 = - env->GetMethodID(credentialStructStructClass_0, "", "(Ljava/lang/Integer;Ljava/lang/Integer;)V"); - if (credentialStructStructCtor_0 == nullptr) - { - ChipLogError(Zcl, "Could not find ChipStructs$DoorLockClusterCredentialStruct constructor"); - return; - } - - Credential = env->NewObject(credentialStructStructClass_0, credentialStructStructCtor_0, Credential_credentialType, - Credential_credentialIndex); - jobject CredentialData; - jbyteArray CredentialDataByteArray = env->NewByteArray(static_cast(dataResponse.credentialData.size())); - env->SetByteArrayRegion(CredentialDataByteArray, 0, static_cast(dataResponse.credentialData.size()), - reinterpret_cast(dataResponse.credentialData.data())); - CredentialData = CredentialDataByteArray; - jobject UserIndex; - if (dataResponse.userIndex.IsNull()) - { - UserIndex = nullptr; - } - else - { - std::string UserIndexClassName = "java/lang/Integer"; - std::string UserIndexCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(UserIndexClassName.c_str(), UserIndexCtorSignature.c_str(), - dataResponse.userIndex.Value(), UserIndex); - } - jobject UserStatus; - if (dataResponse.userStatus.IsNull()) - { - UserStatus = nullptr; - } - else - { - std::string UserStatusClassName = "java/lang/Integer"; - std::string UserStatusCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(UserStatusClassName.c_str(), UserStatusCtorSignature.c_str(), - static_cast(dataResponse.userStatus.Value()), - UserStatus); - } - jobject UserType; - if (dataResponse.userType.IsNull()) - { - UserType = nullptr; - } - else - { - std::string UserTypeClassName = "java/lang/Integer"; - std::string UserTypeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(UserTypeClassName.c_str(), UserTypeCtorSignature.c_str(), - static_cast(dataResponse.userType.Value()), - UserType); - } - - env->CallVoidMethod(javaCallbackRef, javaMethod, OperationType, Credential, CredentialData, UserIndex, UserStatus, UserType); -} -CHIPDoorLockClusterGetCredentialStatusCallback::CHIPDoorLockClusterGetCredentialStatusCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPDoorLockClusterGetCredentialStatusCallback::~CHIPDoorLockClusterGetCredentialStatusCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPDoorLockClusterGetCredentialStatusCallback::CallbackFn( - void * context, const chip::app::Clusters::DoorLock::Commands::GetCredentialStatus::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod( - env, javaCallbackRef, "onSuccess", "(Lchip/devicecontroller/ChipStructs$DoorLockClusterCredentialStruct;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject Credential; - jobject Credential_credentialType; - std::string Credential_credentialTypeClassName = "java/lang/Integer"; - std::string Credential_credentialTypeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - Credential_credentialTypeClassName.c_str(), Credential_credentialTypeCtorSignature.c_str(), - static_cast(dataResponse.credential.credentialType), Credential_credentialType); - jobject Credential_credentialIndex; - std::string Credential_credentialIndexClassName = "java/lang/Integer"; - std::string Credential_credentialIndexCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - Credential_credentialIndexClassName.c_str(), Credential_credentialIndexCtorSignature.c_str(), - dataResponse.credential.credentialIndex, Credential_credentialIndex); - - jclass credentialStructStructClass_0; - err = chip::JniReferences::GetInstance().GetClassRef(env, "chip/devicecontroller/ChipStructs$DoorLockClusterCredentialStruct", - credentialStructStructClass_0); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$DoorLockClusterCredentialStruct"); - return; - } - jmethodID credentialStructStructCtor_0 = - env->GetMethodID(credentialStructStructClass_0, "", "(Ljava/lang/Integer;Ljava/lang/Integer;)V"); - if (credentialStructStructCtor_0 == nullptr) - { - ChipLogError(Zcl, "Could not find ChipStructs$DoorLockClusterCredentialStruct constructor"); - return; - } - - Credential = env->NewObject(credentialStructStructClass_0, credentialStructStructCtor_0, Credential_credentialType, - Credential_credentialIndex); - - env->CallVoidMethod(javaCallbackRef, javaMethod, Credential); -} -CHIPDoorLockClusterClearCredentialCallback::CHIPDoorLockClusterClearCredentialCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPDoorLockClusterClearCredentialCallback::~CHIPDoorLockClusterClearCredentialCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPDoorLockClusterClearCredentialCallback::CallbackFn( - void * context, const chip::app::Clusters::DoorLock::Commands::ClearCredential::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod( - env, javaCallbackRef, "onSuccess", "(Lchip/devicecontroller/ChipStructs$DoorLockClusterCredentialStruct;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject Credential; - if (dataResponse.credential.IsNull()) - { - Credential = nullptr; - } - else - { - jobject Credential_credentialType; - std::string Credential_credentialTypeClassName = "java/lang/Integer"; - std::string Credential_credentialTypeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - Credential_credentialTypeClassName.c_str(), Credential_credentialTypeCtorSignature.c_str(), - static_cast(dataResponse.credential.Value().credentialType), Credential_credentialType); - jobject Credential_credentialIndex; - std::string Credential_credentialIndexClassName = "java/lang/Integer"; - std::string Credential_credentialIndexCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - Credential_credentialIndexClassName.c_str(), Credential_credentialIndexCtorSignature.c_str(), - dataResponse.credential.Value().credentialIndex, Credential_credentialIndex); - - jclass credentialStructStructClass_1; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$DoorLockClusterCredentialStruct", credentialStructStructClass_1); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$DoorLockClusterCredentialStruct"); - return; - } - jmethodID credentialStructStructCtor_1 = - env->GetMethodID(credentialStructStructClass_1, "", "(Ljava/lang/Integer;Ljava/lang/Integer;)V"); - if (credentialStructStructCtor_1 == nullptr) - { - ChipLogError(Zcl, "Could not find ChipStructs$DoorLockClusterCredentialStruct constructor"); - return; - } - - Credential = env->NewObject(credentialStructStructClass_1, credentialStructStructCtor_1, Credential_credentialType, - Credential_credentialIndex); - } - - env->CallVoidMethod(javaCallbackRef, javaMethod, Credential); -} -CHIPWindowCoveringClusterUpOrOpenCallback::CHIPWindowCoveringClusterUpOrOpenCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPWindowCoveringClusterUpOrOpenCallback::~CHIPWindowCoveringClusterUpOrOpenCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPWindowCoveringClusterUpOrOpenCallback::CallbackFn( - void * context, const chip::app::Clusters::WindowCovering::Commands::UpOrOpen::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - env->CallVoidMethod(javaCallbackRef, javaMethod); -} -CHIPWindowCoveringClusterDownOrCloseCallback::CHIPWindowCoveringClusterDownOrCloseCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPWindowCoveringClusterDownOrCloseCallback::~CHIPWindowCoveringClusterDownOrCloseCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPWindowCoveringClusterDownOrCloseCallback::CallbackFn( - void * context, const chip::app::Clusters::WindowCovering::Commands::DownOrClose::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - env->CallVoidMethod(javaCallbackRef, javaMethod); -} -CHIPWindowCoveringClusterStopMotionCallback::CHIPWindowCoveringClusterStopMotionCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPWindowCoveringClusterStopMotionCallback::~CHIPWindowCoveringClusterStopMotionCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPWindowCoveringClusterStopMotionCallback::CallbackFn( - void * context, const chip::app::Clusters::WindowCovering::Commands::StopMotion::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - env->CallVoidMethod(javaCallbackRef, javaMethod); -} -CHIPWindowCoveringClusterGoToLiftValueCallback::CHIPWindowCoveringClusterGoToLiftValueCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPWindowCoveringClusterGoToLiftValueCallback::~CHIPWindowCoveringClusterGoToLiftValueCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPWindowCoveringClusterGoToLiftValueCallback::CallbackFn( - void * context, const chip::app::Clusters::WindowCovering::Commands::GoToLiftValue::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject liftValue; - std::string liftValueClassName = "java/lang/Integer"; - std::string liftValueCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(liftValueClassName.c_str(), liftValueCtorSignature.c_str(), - dataResponse.liftValue, liftValue); - - env->CallVoidMethod(javaCallbackRef, javaMethod, liftValue); -} -CHIPWindowCoveringClusterGoToLiftPercentageCallback::CHIPWindowCoveringClusterGoToLiftPercentageCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPWindowCoveringClusterGoToLiftPercentageCallback::~CHIPWindowCoveringClusterGoToLiftPercentageCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPWindowCoveringClusterGoToLiftPercentageCallback::CallbackFn( - void * context, const chip::app::Clusters::WindowCovering::Commands::GoToLiftPercentage::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject liftPercent100thsValue; - std::string liftPercent100thsValueClassName = "java/lang/Integer"; - std::string liftPercent100thsValueCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(liftPercent100thsValueClassName.c_str(), - liftPercent100thsValueCtorSignature.c_str(), - dataResponse.liftPercent100thsValue, liftPercent100thsValue); - - env->CallVoidMethod(javaCallbackRef, javaMethod, liftPercent100thsValue); -} -CHIPWindowCoveringClusterGoToTiltValueCallback::CHIPWindowCoveringClusterGoToTiltValueCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPWindowCoveringClusterGoToTiltValueCallback::~CHIPWindowCoveringClusterGoToTiltValueCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPWindowCoveringClusterGoToTiltValueCallback::CallbackFn( - void * context, const chip::app::Clusters::WindowCovering::Commands::GoToTiltValue::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject tiltValue; - std::string tiltValueClassName = "java/lang/Integer"; - std::string tiltValueCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(tiltValueClassName.c_str(), tiltValueCtorSignature.c_str(), - dataResponse.tiltValue, tiltValue); - - env->CallVoidMethod(javaCallbackRef, javaMethod, tiltValue); -} -CHIPWindowCoveringClusterGoToTiltPercentageCallback::CHIPWindowCoveringClusterGoToTiltPercentageCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPWindowCoveringClusterGoToTiltPercentageCallback::~CHIPWindowCoveringClusterGoToTiltPercentageCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPWindowCoveringClusterGoToTiltPercentageCallback::CallbackFn( - void * context, const chip::app::Clusters::WindowCovering::Commands::GoToTiltPercentage::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject tiltPercent100thsValue; - std::string tiltPercent100thsValueClassName = "java/lang/Integer"; - std::string tiltPercent100thsValueCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(tiltPercent100thsValueClassName.c_str(), - tiltPercent100thsValueCtorSignature.c_str(), - dataResponse.tiltPercent100thsValue, tiltPercent100thsValue); - - env->CallVoidMethod(javaCallbackRef, javaMethod, tiltPercent100thsValue); -} -CHIPBarrierControlClusterBarrierControlGoToPercentCallback::CHIPBarrierControlClusterBarrierControlGoToPercentCallback( - jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPBarrierControlClusterBarrierControlGoToPercentCallback::~CHIPBarrierControlClusterBarrierControlGoToPercentCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPBarrierControlClusterBarrierControlGoToPercentCallback::CallbackFn( - void * context, const chip::app::Clusters::BarrierControl::Commands::BarrierControlGoToPercent::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject percentOpen; - std::string percentOpenClassName = "java/lang/Integer"; - std::string percentOpenCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(percentOpenClassName.c_str(), percentOpenCtorSignature.c_str(), - dataResponse.percentOpen, percentOpen); - - env->CallVoidMethod(javaCallbackRef, javaMethod, percentOpen); -} -CHIPBarrierControlClusterBarrierControlStopCallback::CHIPBarrierControlClusterBarrierControlStopCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPBarrierControlClusterBarrierControlStopCallback::~CHIPBarrierControlClusterBarrierControlStopCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPBarrierControlClusterBarrierControlStopCallback::CallbackFn( - void * context, const chip::app::Clusters::BarrierControl::Commands::BarrierControlStop::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - env->CallVoidMethod(javaCallbackRef, javaMethod); -} -CHIPThermostatClusterSetpointRaiseLowerCallback::CHIPThermostatClusterSetpointRaiseLowerCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPThermostatClusterSetpointRaiseLowerCallback::~CHIPThermostatClusterSetpointRaiseLowerCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPThermostatClusterSetpointRaiseLowerCallback::CallbackFn( - void * context, const chip::app::Clusters::Thermostat::Commands::SetpointRaiseLower::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;)V", - &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject Mode; - std::string ModeClassName = "java/lang/Integer"; - std::string ModeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(ModeClassName.c_str(), ModeCtorSignature.c_str(), - static_cast(dataResponse.mode), Mode); - jobject Amount; - std::string AmountClassName = "java/lang/Integer"; - std::string AmountCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(AmountClassName.c_str(), AmountCtorSignature.c_str(), - dataResponse.amount, Amount); - - env->CallVoidMethod(javaCallbackRef, javaMethod, Mode, Amount); -} -CHIPThermostatClusterSetWeeklyScheduleCallback::CHIPThermostatClusterSetWeeklyScheduleCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPThermostatClusterSetWeeklyScheduleCallback::~CHIPThermostatClusterSetWeeklyScheduleCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPThermostatClusterSetWeeklyScheduleCallback::CallbackFn( - void * context, const chip::app::Clusters::Thermostat::Commands::SetWeeklySchedule::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod( - env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/util/ArrayList;)V", - &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject NumberOfTransitionsForSequence; - std::string NumberOfTransitionsForSequenceClassName = "java/lang/Integer"; - std::string NumberOfTransitionsForSequenceCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - NumberOfTransitionsForSequenceClassName.c_str(), NumberOfTransitionsForSequenceCtorSignature.c_str(), - dataResponse.numberOfTransitionsForSequence, NumberOfTransitionsForSequence); - jobject DayOfWeekForSequence; - std::string DayOfWeekForSequenceClassName = "java/lang/Integer"; - std::string DayOfWeekForSequenceCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(DayOfWeekForSequenceClassName.c_str(), - DayOfWeekForSequenceCtorSignature.c_str(), - dataResponse.dayOfWeekForSequence.Raw(), DayOfWeekForSequence); - jobject ModeForSequence; - std::string ModeForSequenceClassName = "java/lang/Integer"; - std::string ModeForSequenceCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(ModeForSequenceClassName.c_str(), - ModeForSequenceCtorSignature.c_str(), - dataResponse.modeForSequence.Raw(), ModeForSequence); - jobject Transitions; - chip::JniReferences::GetInstance().CreateArrayList(Transitions); - - auto iter_Transitions_0 = dataResponse.transitions.begin(); - while (iter_Transitions_0.Next()) - { - auto & entry_0 = iter_Transitions_0.GetValue(); - jobject newElement_0; - jobject newElement_0_transitionTime; - std::string newElement_0_transitionTimeClassName = "java/lang/Integer"; - std::string newElement_0_transitionTimeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0_transitionTimeClassName.c_str(), - newElement_0_transitionTimeCtorSignature.c_str(), - entry_0.transitionTime, newElement_0_transitionTime); - jobject newElement_0_heatSetpoint; - if (entry_0.heatSetpoint.IsNull()) - { - newElement_0_heatSetpoint = nullptr; - } - else - { - std::string newElement_0_heatSetpointClassName = "java/lang/Integer"; - std::string newElement_0_heatSetpointCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0_heatSetpointClassName.c_str(), - newElement_0_heatSetpointCtorSignature.c_str(), - entry_0.heatSetpoint.Value(), newElement_0_heatSetpoint); - } - jobject newElement_0_coolSetpoint; - if (entry_0.coolSetpoint.IsNull()) - { - newElement_0_coolSetpoint = nullptr; - } - else - { - std::string newElement_0_coolSetpointClassName = "java/lang/Integer"; - std::string newElement_0_coolSetpointCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0_coolSetpointClassName.c_str(), - newElement_0_coolSetpointCtorSignature.c_str(), - entry_0.coolSetpoint.Value(), newElement_0_coolSetpoint); - } - - jclass thermostatScheduleTransitionStructClass_1; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$ThermostatClusterThermostatScheduleTransition", - thermostatScheduleTransitionStructClass_1); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$ThermostatClusterThermostatScheduleTransition"); - return; - } - jmethodID thermostatScheduleTransitionStructCtor_1 = env->GetMethodID( - thermostatScheduleTransitionStructClass_1, "", "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V"); - if (thermostatScheduleTransitionStructCtor_1 == nullptr) - { - ChipLogError(Zcl, "Could not find ChipStructs$ThermostatClusterThermostatScheduleTransition constructor"); - return; - } - - newElement_0 = env->NewObject(thermostatScheduleTransitionStructClass_1, thermostatScheduleTransitionStructCtor_1, - newElement_0_transitionTime, newElement_0_heatSetpoint, newElement_0_coolSetpoint); - chip::JniReferences::GetInstance().AddToList(Transitions, newElement_0); - } - - env->CallVoidMethod(javaCallbackRef, javaMethod, NumberOfTransitionsForSequence, DayOfWeekForSequence, ModeForSequence, - Transitions); -} -CHIPThermostatClusterGetWeeklyScheduleCallback::CHIPThermostatClusterGetWeeklyScheduleCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPThermostatClusterGetWeeklyScheduleCallback::~CHIPThermostatClusterGetWeeklyScheduleCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPThermostatClusterGetWeeklyScheduleCallback::CallbackFn( - void * context, const chip::app::Clusters::Thermostat::Commands::GetWeeklySchedule::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;)V", - &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject DaysToReturn; - std::string DaysToReturnClassName = "java/lang/Integer"; - std::string DaysToReturnCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(DaysToReturnClassName.c_str(), DaysToReturnCtorSignature.c_str(), - dataResponse.daysToReturn.Raw(), DaysToReturn); - jobject ModeToReturn; - std::string ModeToReturnClassName = "java/lang/Integer"; - std::string ModeToReturnCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(ModeToReturnClassName.c_str(), ModeToReturnCtorSignature.c_str(), - dataResponse.modeToReturn.Raw(), ModeToReturn); - - env->CallVoidMethod(javaCallbackRef, javaMethod, DaysToReturn, ModeToReturn); -} -CHIPThermostatClusterClearWeeklyScheduleCallback::CHIPThermostatClusterClearWeeklyScheduleCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPThermostatClusterClearWeeklyScheduleCallback::~CHIPThermostatClusterClearWeeklyScheduleCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPThermostatClusterClearWeeklyScheduleCallback::CallbackFn( - void * context, const chip::app::Clusters::Thermostat::Commands::ClearWeeklySchedule::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - env->CallVoidMethod(javaCallbackRef, javaMethod); -} -CHIPColorControlClusterMoveToHueCallback::CHIPColorControlClusterMoveToHueCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPColorControlClusterMoveToHueCallback::~CHIPColorControlClusterMoveToHueCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPColorControlClusterMoveToHueCallback::CallbackFn( - void * context, const chip::app::Clusters::ColorControl::Commands::MoveToHue::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod( - env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject Hue; - std::string HueClassName = "java/lang/Integer"; - std::string HueCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(HueClassName.c_str(), HueCtorSignature.c_str(), dataResponse.hue, - Hue); - jobject Direction; - std::string DirectionClassName = "java/lang/Integer"; - std::string DirectionCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(DirectionClassName.c_str(), DirectionCtorSignature.c_str(), - static_cast(dataResponse.direction), Direction); - jobject TransitionTime; - std::string TransitionTimeClassName = "java/lang/Integer"; - std::string TransitionTimeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - TransitionTimeClassName.c_str(), TransitionTimeCtorSignature.c_str(), dataResponse.transitionTime, TransitionTime); - jobject OptionsMask; - std::string OptionsMaskClassName = "java/lang/Integer"; - std::string OptionsMaskCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), - dataResponse.optionsMask, OptionsMask); - jobject OptionsOverride; - std::string OptionsOverrideClassName = "java/lang/Integer"; - std::string OptionsOverrideCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - OptionsOverrideClassName.c_str(), OptionsOverrideCtorSignature.c_str(), dataResponse.optionsOverride, OptionsOverride); - - env->CallVoidMethod(javaCallbackRef, javaMethod, Hue, Direction, TransitionTime, OptionsMask, OptionsOverride); -} -CHIPColorControlClusterMoveHueCallback::CHIPColorControlClusterMoveHueCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPColorControlClusterMoveHueCallback::~CHIPColorControlClusterMoveHueCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPColorControlClusterMoveHueCallback::CallbackFn( - void * context, const chip::app::Clusters::ColorControl::Commands::MoveHue::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", - &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject MoveMode; - std::string MoveModeClassName = "java/lang/Integer"; - std::string MoveModeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(MoveModeClassName.c_str(), MoveModeCtorSignature.c_str(), - static_cast(dataResponse.moveMode), MoveMode); - jobject Rate; - std::string RateClassName = "java/lang/Integer"; - std::string RateCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(RateClassName.c_str(), RateCtorSignature.c_str(), - dataResponse.rate, Rate); - jobject OptionsMask; - std::string OptionsMaskClassName = "java/lang/Integer"; - std::string OptionsMaskCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), - dataResponse.optionsMask, OptionsMask); - jobject OptionsOverride; - std::string OptionsOverrideClassName = "java/lang/Integer"; - std::string OptionsOverrideCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - OptionsOverrideClassName.c_str(), OptionsOverrideCtorSignature.c_str(), dataResponse.optionsOverride, OptionsOverride); - - env->CallVoidMethod(javaCallbackRef, javaMethod, MoveMode, Rate, OptionsMask, OptionsOverride); -} -CHIPColorControlClusterStepHueCallback::CHIPColorControlClusterStepHueCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPColorControlClusterStepHueCallback::~CHIPColorControlClusterStepHueCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPColorControlClusterStepHueCallback::CallbackFn( - void * context, const chip::app::Clusters::ColorControl::Commands::StepHue::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod( - env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject StepMode; - std::string StepModeClassName = "java/lang/Integer"; - std::string StepModeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(StepModeClassName.c_str(), StepModeCtorSignature.c_str(), - static_cast(dataResponse.stepMode), StepMode); - jobject StepSize; - std::string StepSizeClassName = "java/lang/Integer"; - std::string StepSizeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(StepSizeClassName.c_str(), StepSizeCtorSignature.c_str(), - dataResponse.stepSize, StepSize); - jobject TransitionTime; - std::string TransitionTimeClassName = "java/lang/Integer"; - std::string TransitionTimeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - TransitionTimeClassName.c_str(), TransitionTimeCtorSignature.c_str(), dataResponse.transitionTime, TransitionTime); - jobject OptionsMask; - std::string OptionsMaskClassName = "java/lang/Integer"; - std::string OptionsMaskCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), - dataResponse.optionsMask, OptionsMask); - jobject OptionsOverride; - std::string OptionsOverrideClassName = "java/lang/Integer"; - std::string OptionsOverrideCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - OptionsOverrideClassName.c_str(), OptionsOverrideCtorSignature.c_str(), dataResponse.optionsOverride, OptionsOverride); - - env->CallVoidMethod(javaCallbackRef, javaMethod, StepMode, StepSize, TransitionTime, OptionsMask, OptionsOverride); -} -CHIPColorControlClusterMoveToSaturationCallback::CHIPColorControlClusterMoveToSaturationCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPColorControlClusterMoveToSaturationCallback::~CHIPColorControlClusterMoveToSaturationCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPColorControlClusterMoveToSaturationCallback::CallbackFn( - void * context, const chip::app::Clusters::ColorControl::Commands::MoveToSaturation::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", - &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject Saturation; - std::string SaturationClassName = "java/lang/Integer"; - std::string SaturationCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(SaturationClassName.c_str(), SaturationCtorSignature.c_str(), - dataResponse.saturation, Saturation); - jobject TransitionTime; - std::string TransitionTimeClassName = "java/lang/Integer"; - std::string TransitionTimeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - TransitionTimeClassName.c_str(), TransitionTimeCtorSignature.c_str(), dataResponse.transitionTime, TransitionTime); - jobject OptionsMask; - std::string OptionsMaskClassName = "java/lang/Integer"; - std::string OptionsMaskCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), - dataResponse.optionsMask, OptionsMask); - jobject OptionsOverride; - std::string OptionsOverrideClassName = "java/lang/Integer"; - std::string OptionsOverrideCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - OptionsOverrideClassName.c_str(), OptionsOverrideCtorSignature.c_str(), dataResponse.optionsOverride, OptionsOverride); - - env->CallVoidMethod(javaCallbackRef, javaMethod, Saturation, TransitionTime, OptionsMask, OptionsOverride); -} -CHIPColorControlClusterMoveSaturationCallback::CHIPColorControlClusterMoveSaturationCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPColorControlClusterMoveSaturationCallback::~CHIPColorControlClusterMoveSaturationCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPColorControlClusterMoveSaturationCallback::CallbackFn( - void * context, const chip::app::Clusters::ColorControl::Commands::MoveSaturation::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", - &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject MoveMode; - std::string MoveModeClassName = "java/lang/Integer"; - std::string MoveModeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(MoveModeClassName.c_str(), MoveModeCtorSignature.c_str(), - static_cast(dataResponse.moveMode), MoveMode); - jobject Rate; - std::string RateClassName = "java/lang/Integer"; - std::string RateCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(RateClassName.c_str(), RateCtorSignature.c_str(), - dataResponse.rate, Rate); - jobject OptionsMask; - std::string OptionsMaskClassName = "java/lang/Integer"; - std::string OptionsMaskCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), - dataResponse.optionsMask, OptionsMask); - jobject OptionsOverride; - std::string OptionsOverrideClassName = "java/lang/Integer"; - std::string OptionsOverrideCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - OptionsOverrideClassName.c_str(), OptionsOverrideCtorSignature.c_str(), dataResponse.optionsOverride, OptionsOverride); - - env->CallVoidMethod(javaCallbackRef, javaMethod, MoveMode, Rate, OptionsMask, OptionsOverride); -} -CHIPColorControlClusterStepSaturationCallback::CHIPColorControlClusterStepSaturationCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPColorControlClusterStepSaturationCallback::~CHIPColorControlClusterStepSaturationCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPColorControlClusterStepSaturationCallback::CallbackFn( - void * context, const chip::app::Clusters::ColorControl::Commands::StepSaturation::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod( - env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject StepMode; - std::string StepModeClassName = "java/lang/Integer"; - std::string StepModeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(StepModeClassName.c_str(), StepModeCtorSignature.c_str(), - static_cast(dataResponse.stepMode), StepMode); - jobject StepSize; - std::string StepSizeClassName = "java/lang/Integer"; - std::string StepSizeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(StepSizeClassName.c_str(), StepSizeCtorSignature.c_str(), - dataResponse.stepSize, StepSize); - jobject TransitionTime; - std::string TransitionTimeClassName = "java/lang/Integer"; - std::string TransitionTimeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - TransitionTimeClassName.c_str(), TransitionTimeCtorSignature.c_str(), dataResponse.transitionTime, TransitionTime); - jobject OptionsMask; - std::string OptionsMaskClassName = "java/lang/Integer"; - std::string OptionsMaskCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), - dataResponse.optionsMask, OptionsMask); - jobject OptionsOverride; - std::string OptionsOverrideClassName = "java/lang/Integer"; - std::string OptionsOverrideCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - OptionsOverrideClassName.c_str(), OptionsOverrideCtorSignature.c_str(), dataResponse.optionsOverride, OptionsOverride); - - env->CallVoidMethod(javaCallbackRef, javaMethod, StepMode, StepSize, TransitionTime, OptionsMask, OptionsOverride); -} -CHIPColorControlClusterMoveToHueAndSaturationCallback::CHIPColorControlClusterMoveToHueAndSaturationCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPColorControlClusterMoveToHueAndSaturationCallback::~CHIPColorControlClusterMoveToHueAndSaturationCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPColorControlClusterMoveToHueAndSaturationCallback::CallbackFn( - void * context, const chip::app::Clusters::ColorControl::Commands::MoveToHueAndSaturation::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod( - env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject Hue; - std::string HueClassName = "java/lang/Integer"; - std::string HueCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(HueClassName.c_str(), HueCtorSignature.c_str(), dataResponse.hue, - Hue); - jobject Saturation; - std::string SaturationClassName = "java/lang/Integer"; - std::string SaturationCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(SaturationClassName.c_str(), SaturationCtorSignature.c_str(), - dataResponse.saturation, Saturation); - jobject TransitionTime; - std::string TransitionTimeClassName = "java/lang/Integer"; - std::string TransitionTimeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - TransitionTimeClassName.c_str(), TransitionTimeCtorSignature.c_str(), dataResponse.transitionTime, TransitionTime); - jobject OptionsMask; - std::string OptionsMaskClassName = "java/lang/Integer"; - std::string OptionsMaskCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), - dataResponse.optionsMask, OptionsMask); - jobject OptionsOverride; - std::string OptionsOverrideClassName = "java/lang/Integer"; - std::string OptionsOverrideCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - OptionsOverrideClassName.c_str(), OptionsOverrideCtorSignature.c_str(), dataResponse.optionsOverride, OptionsOverride); - - env->CallVoidMethod(javaCallbackRef, javaMethod, Hue, Saturation, TransitionTime, OptionsMask, OptionsOverride); -} -CHIPColorControlClusterMoveToColorCallback::CHIPColorControlClusterMoveToColorCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPColorControlClusterMoveToColorCallback::~CHIPColorControlClusterMoveToColorCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPColorControlClusterMoveToColorCallback::CallbackFn( - void * context, const chip::app::Clusters::ColorControl::Commands::MoveToColor::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod( - env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject ColorX; - std::string ColorXClassName = "java/lang/Integer"; - std::string ColorXCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(ColorXClassName.c_str(), ColorXCtorSignature.c_str(), - dataResponse.colorX, ColorX); - jobject ColorY; - std::string ColorYClassName = "java/lang/Integer"; - std::string ColorYCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(ColorYClassName.c_str(), ColorYCtorSignature.c_str(), - dataResponse.colorY, ColorY); - jobject TransitionTime; - std::string TransitionTimeClassName = "java/lang/Integer"; - std::string TransitionTimeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - TransitionTimeClassName.c_str(), TransitionTimeCtorSignature.c_str(), dataResponse.transitionTime, TransitionTime); - jobject OptionsMask; - std::string OptionsMaskClassName = "java/lang/Integer"; - std::string OptionsMaskCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), - dataResponse.optionsMask, OptionsMask); - jobject OptionsOverride; - std::string OptionsOverrideClassName = "java/lang/Integer"; - std::string OptionsOverrideCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - OptionsOverrideClassName.c_str(), OptionsOverrideCtorSignature.c_str(), dataResponse.optionsOverride, OptionsOverride); - - env->CallVoidMethod(javaCallbackRef, javaMethod, ColorX, ColorY, TransitionTime, OptionsMask, OptionsOverride); -} -CHIPColorControlClusterMoveColorCallback::CHIPColorControlClusterMoveColorCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPColorControlClusterMoveColorCallback::~CHIPColorControlClusterMoveColorCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPColorControlClusterMoveColorCallback::CallbackFn( - void * context, const chip::app::Clusters::ColorControl::Commands::MoveColor::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", - &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject RateX; - std::string RateXClassName = "java/lang/Integer"; - std::string RateXCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(RateXClassName.c_str(), RateXCtorSignature.c_str(), - dataResponse.rateX, RateX); - jobject RateY; - std::string RateYClassName = "java/lang/Integer"; - std::string RateYCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(RateYClassName.c_str(), RateYCtorSignature.c_str(), - dataResponse.rateY, RateY); - jobject OptionsMask; - std::string OptionsMaskClassName = "java/lang/Integer"; - std::string OptionsMaskCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), - dataResponse.optionsMask, OptionsMask); - jobject OptionsOverride; - std::string OptionsOverrideClassName = "java/lang/Integer"; - std::string OptionsOverrideCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - OptionsOverrideClassName.c_str(), OptionsOverrideCtorSignature.c_str(), dataResponse.optionsOverride, OptionsOverride); - - env->CallVoidMethod(javaCallbackRef, javaMethod, RateX, RateY, OptionsMask, OptionsOverride); -} -CHIPColorControlClusterStepColorCallback::CHIPColorControlClusterStepColorCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPColorControlClusterStepColorCallback::~CHIPColorControlClusterStepColorCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPColorControlClusterStepColorCallback::CallbackFn( - void * context, const chip::app::Clusters::ColorControl::Commands::StepColor::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod( - env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject StepX; - std::string StepXClassName = "java/lang/Integer"; - std::string StepXCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(StepXClassName.c_str(), StepXCtorSignature.c_str(), - dataResponse.stepX, StepX); - jobject StepY; - std::string StepYClassName = "java/lang/Integer"; - std::string StepYCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(StepYClassName.c_str(), StepYCtorSignature.c_str(), - dataResponse.stepY, StepY); - jobject TransitionTime; - std::string TransitionTimeClassName = "java/lang/Integer"; - std::string TransitionTimeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - TransitionTimeClassName.c_str(), TransitionTimeCtorSignature.c_str(), dataResponse.transitionTime, TransitionTime); - jobject OptionsMask; - std::string OptionsMaskClassName = "java/lang/Integer"; - std::string OptionsMaskCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), - dataResponse.optionsMask, OptionsMask); - jobject OptionsOverride; - std::string OptionsOverrideClassName = "java/lang/Integer"; - std::string OptionsOverrideCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - OptionsOverrideClassName.c_str(), OptionsOverrideCtorSignature.c_str(), dataResponse.optionsOverride, OptionsOverride); - - env->CallVoidMethod(javaCallbackRef, javaMethod, StepX, StepY, TransitionTime, OptionsMask, OptionsOverride); -} -CHIPColorControlClusterMoveToColorTemperatureCallback::CHIPColorControlClusterMoveToColorTemperatureCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPColorControlClusterMoveToColorTemperatureCallback::~CHIPColorControlClusterMoveToColorTemperatureCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPColorControlClusterMoveToColorTemperatureCallback::CallbackFn( - void * context, const chip::app::Clusters::ColorControl::Commands::MoveToColorTemperature::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", - &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject ColorTemperatureMireds; - std::string ColorTemperatureMiredsClassName = "java/lang/Integer"; - std::string ColorTemperatureMiredsCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(ColorTemperatureMiredsClassName.c_str(), - ColorTemperatureMiredsCtorSignature.c_str(), - dataResponse.colorTemperatureMireds, ColorTemperatureMireds); - jobject TransitionTime; - std::string TransitionTimeClassName = "java/lang/Integer"; - std::string TransitionTimeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - TransitionTimeClassName.c_str(), TransitionTimeCtorSignature.c_str(), dataResponse.transitionTime, TransitionTime); - jobject OptionsMask; - std::string OptionsMaskClassName = "java/lang/Integer"; - std::string OptionsMaskCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), - dataResponse.optionsMask, OptionsMask); - jobject OptionsOverride; - std::string OptionsOverrideClassName = "java/lang/Integer"; - std::string OptionsOverrideCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - OptionsOverrideClassName.c_str(), OptionsOverrideCtorSignature.c_str(), dataResponse.optionsOverride, OptionsOverride); - - env->CallVoidMethod(javaCallbackRef, javaMethod, ColorTemperatureMireds, TransitionTime, OptionsMask, OptionsOverride); -} -CHIPColorControlClusterEnhancedMoveToHueCallback::CHIPColorControlClusterEnhancedMoveToHueCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPColorControlClusterEnhancedMoveToHueCallback::~CHIPColorControlClusterEnhancedMoveToHueCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPColorControlClusterEnhancedMoveToHueCallback::CallbackFn( - void * context, const chip::app::Clusters::ColorControl::Commands::EnhancedMoveToHue::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod( - env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject EnhancedHue; - std::string EnhancedHueClassName = "java/lang/Integer"; - std::string EnhancedHueCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(EnhancedHueClassName.c_str(), EnhancedHueCtorSignature.c_str(), - dataResponse.enhancedHue, EnhancedHue); - jobject Direction; - std::string DirectionClassName = "java/lang/Integer"; - std::string DirectionCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(DirectionClassName.c_str(), DirectionCtorSignature.c_str(), - static_cast(dataResponse.direction), Direction); - jobject TransitionTime; - std::string TransitionTimeClassName = "java/lang/Integer"; - std::string TransitionTimeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - TransitionTimeClassName.c_str(), TransitionTimeCtorSignature.c_str(), dataResponse.transitionTime, TransitionTime); - jobject OptionsMask; - std::string OptionsMaskClassName = "java/lang/Integer"; - std::string OptionsMaskCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), - dataResponse.optionsMask, OptionsMask); - jobject OptionsOverride; - std::string OptionsOverrideClassName = "java/lang/Integer"; - std::string OptionsOverrideCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - OptionsOverrideClassName.c_str(), OptionsOverrideCtorSignature.c_str(), dataResponse.optionsOverride, OptionsOverride); - - env->CallVoidMethod(javaCallbackRef, javaMethod, EnhancedHue, Direction, TransitionTime, OptionsMask, OptionsOverride); -} -CHIPColorControlClusterEnhancedMoveHueCallback::CHIPColorControlClusterEnhancedMoveHueCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPColorControlClusterEnhancedMoveHueCallback::~CHIPColorControlClusterEnhancedMoveHueCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPColorControlClusterEnhancedMoveHueCallback::CallbackFn( - void * context, const chip::app::Clusters::ColorControl::Commands::EnhancedMoveHue::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", - &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject MoveMode; - std::string MoveModeClassName = "java/lang/Integer"; - std::string MoveModeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(MoveModeClassName.c_str(), MoveModeCtorSignature.c_str(), - static_cast(dataResponse.moveMode), MoveMode); - jobject Rate; - std::string RateClassName = "java/lang/Integer"; - std::string RateCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(RateClassName.c_str(), RateCtorSignature.c_str(), - dataResponse.rate, Rate); - jobject OptionsMask; - std::string OptionsMaskClassName = "java/lang/Integer"; - std::string OptionsMaskCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), - dataResponse.optionsMask, OptionsMask); - jobject OptionsOverride; - std::string OptionsOverrideClassName = "java/lang/Integer"; - std::string OptionsOverrideCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - OptionsOverrideClassName.c_str(), OptionsOverrideCtorSignature.c_str(), dataResponse.optionsOverride, OptionsOverride); - - env->CallVoidMethod(javaCallbackRef, javaMethod, MoveMode, Rate, OptionsMask, OptionsOverride); -} -CHIPColorControlClusterEnhancedStepHueCallback::CHIPColorControlClusterEnhancedStepHueCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPColorControlClusterEnhancedStepHueCallback::~CHIPColorControlClusterEnhancedStepHueCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPColorControlClusterEnhancedStepHueCallback::CallbackFn( - void * context, const chip::app::Clusters::ColorControl::Commands::EnhancedStepHue::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod( - env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject StepMode; - std::string StepModeClassName = "java/lang/Integer"; - std::string StepModeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(StepModeClassName.c_str(), StepModeCtorSignature.c_str(), - static_cast(dataResponse.stepMode), StepMode); - jobject StepSize; - std::string StepSizeClassName = "java/lang/Integer"; - std::string StepSizeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(StepSizeClassName.c_str(), StepSizeCtorSignature.c_str(), - dataResponse.stepSize, StepSize); - jobject TransitionTime; - std::string TransitionTimeClassName = "java/lang/Integer"; - std::string TransitionTimeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - TransitionTimeClassName.c_str(), TransitionTimeCtorSignature.c_str(), dataResponse.transitionTime, TransitionTime); - jobject OptionsMask; - std::string OptionsMaskClassName = "java/lang/Integer"; - std::string OptionsMaskCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), - dataResponse.optionsMask, OptionsMask); - jobject OptionsOverride; - std::string OptionsOverrideClassName = "java/lang/Integer"; - std::string OptionsOverrideCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - OptionsOverrideClassName.c_str(), OptionsOverrideCtorSignature.c_str(), dataResponse.optionsOverride, OptionsOverride); - - env->CallVoidMethod(javaCallbackRef, javaMethod, StepMode, StepSize, TransitionTime, OptionsMask, OptionsOverride); -} -CHIPColorControlClusterEnhancedMoveToHueAndSaturationCallback::CHIPColorControlClusterEnhancedMoveToHueAndSaturationCallback( - jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPColorControlClusterEnhancedMoveToHueAndSaturationCallback::~CHIPColorControlClusterEnhancedMoveToHueAndSaturationCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPColorControlClusterEnhancedMoveToHueAndSaturationCallback::CallbackFn( - void * context, const chip::app::Clusters::ColorControl::Commands::EnhancedMoveToHueAndSaturation::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod( - env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject EnhancedHue; - std::string EnhancedHueClassName = "java/lang/Integer"; - std::string EnhancedHueCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(EnhancedHueClassName.c_str(), EnhancedHueCtorSignature.c_str(), - dataResponse.enhancedHue, EnhancedHue); - jobject Saturation; - std::string SaturationClassName = "java/lang/Integer"; - std::string SaturationCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(SaturationClassName.c_str(), SaturationCtorSignature.c_str(), - dataResponse.saturation, Saturation); - jobject TransitionTime; - std::string TransitionTimeClassName = "java/lang/Integer"; - std::string TransitionTimeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - TransitionTimeClassName.c_str(), TransitionTimeCtorSignature.c_str(), dataResponse.transitionTime, TransitionTime); - jobject OptionsMask; - std::string OptionsMaskClassName = "java/lang/Integer"; - std::string OptionsMaskCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), - dataResponse.optionsMask, OptionsMask); - jobject OptionsOverride; - std::string OptionsOverrideClassName = "java/lang/Integer"; - std::string OptionsOverrideCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - OptionsOverrideClassName.c_str(), OptionsOverrideCtorSignature.c_str(), dataResponse.optionsOverride, OptionsOverride); - - env->CallVoidMethod(javaCallbackRef, javaMethod, EnhancedHue, Saturation, TransitionTime, OptionsMask, OptionsOverride); -} -CHIPColorControlClusterColorLoopSetCallback::CHIPColorControlClusterColorLoopSetCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPColorControlClusterColorLoopSetCallback::~CHIPColorControlClusterColorLoopSetCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPColorControlClusterColorLoopSetCallback::CallbackFn( - void * context, const chip::app::Clusters::ColorControl::Commands::ColorLoopSet::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/" - "Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", - &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject UpdateFlags; - std::string UpdateFlagsClassName = "java/lang/Integer"; - std::string UpdateFlagsCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(UpdateFlagsClassName.c_str(), UpdateFlagsCtorSignature.c_str(), - dataResponse.updateFlags.Raw(), UpdateFlags); - jobject Action; - std::string ActionClassName = "java/lang/Integer"; - std::string ActionCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(ActionClassName.c_str(), ActionCtorSignature.c_str(), - static_cast(dataResponse.action), Action); - jobject Direction; - std::string DirectionClassName = "java/lang/Integer"; - std::string DirectionCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(DirectionClassName.c_str(), DirectionCtorSignature.c_str(), - static_cast(dataResponse.direction), Direction); - jobject Time; - std::string TimeClassName = "java/lang/Integer"; - std::string TimeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(TimeClassName.c_str(), TimeCtorSignature.c_str(), - dataResponse.time, Time); - jobject StartHue; - std::string StartHueClassName = "java/lang/Integer"; - std::string StartHueCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(StartHueClassName.c_str(), StartHueCtorSignature.c_str(), - dataResponse.startHue, StartHue); - jobject OptionsMask; - std::string OptionsMaskClassName = "java/lang/Integer"; - std::string OptionsMaskCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), - dataResponse.optionsMask, OptionsMask); - jobject OptionsOverride; - std::string OptionsOverrideClassName = "java/lang/Integer"; - std::string OptionsOverrideCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - OptionsOverrideClassName.c_str(), OptionsOverrideCtorSignature.c_str(), dataResponse.optionsOverride, OptionsOverride); - - env->CallVoidMethod(javaCallbackRef, javaMethod, UpdateFlags, Action, Direction, Time, StartHue, OptionsMask, OptionsOverride); -} -CHIPColorControlClusterStopMoveStepCallback::CHIPColorControlClusterStopMoveStepCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPColorControlClusterStopMoveStepCallback::~CHIPColorControlClusterStopMoveStepCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPColorControlClusterStopMoveStepCallback::CallbackFn( - void * context, const chip::app::Clusters::ColorControl::Commands::StopMoveStep::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;)V", - &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject OptionsMask; - std::string OptionsMaskClassName = "java/lang/Integer"; - std::string OptionsMaskCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), - dataResponse.optionsMask, OptionsMask); - jobject OptionsOverride; - std::string OptionsOverrideClassName = "java/lang/Integer"; - std::string OptionsOverrideCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - OptionsOverrideClassName.c_str(), OptionsOverrideCtorSignature.c_str(), dataResponse.optionsOverride, OptionsOverride); - - env->CallVoidMethod(javaCallbackRef, javaMethod, OptionsMask, OptionsOverride); -} -CHIPColorControlClusterMoveColorTemperatureCallback::CHIPColorControlClusterMoveColorTemperatureCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPColorControlClusterMoveColorTemperatureCallback::~CHIPColorControlClusterMoveColorTemperatureCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPColorControlClusterMoveColorTemperatureCallback::CallbackFn( - void * context, const chip::app::Clusters::ColorControl::Commands::MoveColorTemperature::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod( - env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", - &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject MoveMode; - std::string MoveModeClassName = "java/lang/Integer"; - std::string MoveModeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(MoveModeClassName.c_str(), MoveModeCtorSignature.c_str(), - static_cast(dataResponse.moveMode), MoveMode); - jobject Rate; - std::string RateClassName = "java/lang/Integer"; - std::string RateCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(RateClassName.c_str(), RateCtorSignature.c_str(), - dataResponse.rate, Rate); - jobject ColorTemperatureMinimumMireds; - std::string ColorTemperatureMinimumMiredsClassName = "java/lang/Integer"; - std::string ColorTemperatureMinimumMiredsCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - ColorTemperatureMinimumMiredsClassName.c_str(), ColorTemperatureMinimumMiredsCtorSignature.c_str(), - dataResponse.colorTemperatureMinimumMireds, ColorTemperatureMinimumMireds); - jobject ColorTemperatureMaximumMireds; - std::string ColorTemperatureMaximumMiredsClassName = "java/lang/Integer"; - std::string ColorTemperatureMaximumMiredsCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - ColorTemperatureMaximumMiredsClassName.c_str(), ColorTemperatureMaximumMiredsCtorSignature.c_str(), - dataResponse.colorTemperatureMaximumMireds, ColorTemperatureMaximumMireds); - jobject OptionsMask; - std::string OptionsMaskClassName = "java/lang/Integer"; - std::string OptionsMaskCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), - dataResponse.optionsMask, OptionsMask); - jobject OptionsOverride; - std::string OptionsOverrideClassName = "java/lang/Integer"; - std::string OptionsOverrideCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - OptionsOverrideClassName.c_str(), OptionsOverrideCtorSignature.c_str(), dataResponse.optionsOverride, OptionsOverride); - - env->CallVoidMethod(javaCallbackRef, javaMethod, MoveMode, Rate, ColorTemperatureMinimumMireds, ColorTemperatureMaximumMireds, - OptionsMask, OptionsOverride); -} -CHIPColorControlClusterStepColorTemperatureCallback::CHIPColorControlClusterStepColorTemperatureCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPColorControlClusterStepColorTemperatureCallback::~CHIPColorControlClusterStepColorTemperatureCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPColorControlClusterStepColorTemperatureCallback::CallbackFn( - void * context, const chip::app::Clusters::ColorControl::Commands::StepColorTemperature::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/" - "Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", - &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject StepMode; - std::string StepModeClassName = "java/lang/Integer"; - std::string StepModeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(StepModeClassName.c_str(), StepModeCtorSignature.c_str(), - static_cast(dataResponse.stepMode), StepMode); - jobject StepSize; - std::string StepSizeClassName = "java/lang/Integer"; - std::string StepSizeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(StepSizeClassName.c_str(), StepSizeCtorSignature.c_str(), - dataResponse.stepSize, StepSize); - jobject TransitionTime; - std::string TransitionTimeClassName = "java/lang/Integer"; - std::string TransitionTimeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - TransitionTimeClassName.c_str(), TransitionTimeCtorSignature.c_str(), dataResponse.transitionTime, TransitionTime); - jobject ColorTemperatureMinimumMireds; - std::string ColorTemperatureMinimumMiredsClassName = "java/lang/Integer"; - std::string ColorTemperatureMinimumMiredsCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - ColorTemperatureMinimumMiredsClassName.c_str(), ColorTemperatureMinimumMiredsCtorSignature.c_str(), - dataResponse.colorTemperatureMinimumMireds, ColorTemperatureMinimumMireds); - jobject ColorTemperatureMaximumMireds; - std::string ColorTemperatureMaximumMiredsClassName = "java/lang/Integer"; - std::string ColorTemperatureMaximumMiredsCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - ColorTemperatureMaximumMiredsClassName.c_str(), ColorTemperatureMaximumMiredsCtorSignature.c_str(), - dataResponse.colorTemperatureMaximumMireds, ColorTemperatureMaximumMireds); - jobject OptionsMask; - std::string OptionsMaskClassName = "java/lang/Integer"; - std::string OptionsMaskCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(OptionsMaskClassName.c_str(), OptionsMaskCtorSignature.c_str(), - dataResponse.optionsMask, OptionsMask); - jobject OptionsOverride; - std::string OptionsOverrideClassName = "java/lang/Integer"; - std::string OptionsOverrideCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - OptionsOverrideClassName.c_str(), OptionsOverrideCtorSignature.c_str(), dataResponse.optionsOverride, OptionsOverride); - - env->CallVoidMethod(javaCallbackRef, javaMethod, StepMode, StepSize, TransitionTime, ColorTemperatureMinimumMireds, - ColorTemperatureMaximumMireds, OptionsMask, OptionsOverride); -} -CHIPChannelClusterChangeChannelCallback::CHIPChannelClusterChangeChannelCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPChannelClusterChangeChannelCallback::~CHIPChannelClusterChangeChannelCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPChannelClusterChangeChannelCallback::CallbackFn( - void * context, const chip::app::Clusters::Channel::Commands::ChangeChannel::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/String;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject Match; - Match = env->NewStringUTF(std::string(dataResponse.match.data(), dataResponse.match.size()).c_str()); - - env->CallVoidMethod(javaCallbackRef, javaMethod, Match); -} -CHIPChannelClusterChangeChannelByNumberCallback::CHIPChannelClusterChangeChannelByNumberCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPChannelClusterChangeChannelByNumberCallback::~CHIPChannelClusterChangeChannelByNumberCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPChannelClusterChangeChannelByNumberCallback::CallbackFn( - void * context, const chip::app::Clusters::Channel::Commands::ChangeChannelByNumber::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;)V", - &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject MajorNumber; - std::string MajorNumberClassName = "java/lang/Integer"; - std::string MajorNumberCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(MajorNumberClassName.c_str(), MajorNumberCtorSignature.c_str(), - dataResponse.majorNumber, MajorNumber); - jobject MinorNumber; - std::string MinorNumberClassName = "java/lang/Integer"; - std::string MinorNumberCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(MinorNumberClassName.c_str(), MinorNumberCtorSignature.c_str(), - dataResponse.minorNumber, MinorNumber); - - env->CallVoidMethod(javaCallbackRef, javaMethod, MajorNumber, MinorNumber); -} -CHIPChannelClusterSkipChannelCallback::CHIPChannelClusterSkipChannelCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPChannelClusterSkipChannelCallback::~CHIPChannelClusterSkipChannelCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPChannelClusterSkipChannelCallback::CallbackFn( - void * context, const chip::app::Clusters::Channel::Commands::SkipChannel::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject Count; - std::string CountClassName = "java/lang/Integer"; - std::string CountCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(CountClassName.c_str(), CountCtorSignature.c_str(), - dataResponse.count, Count); - - env->CallVoidMethod(javaCallbackRef, javaMethod, Count); -} -CHIPTargetNavigatorClusterNavigateTargetCallback::CHIPTargetNavigatorClusterNavigateTargetCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPTargetNavigatorClusterNavigateTargetCallback::~CHIPTargetNavigatorClusterNavigateTargetCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPTargetNavigatorClusterNavigateTargetCallback::CallbackFn( - void * context, const chip::app::Clusters::TargetNavigator::Commands::NavigateTarget::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/util/Optional;)V", - &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject Target; - std::string TargetClassName = "java/lang/Integer"; - std::string TargetCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(TargetClassName.c_str(), TargetCtorSignature.c_str(), - dataResponse.target, Target); - jobject Data; - if (!dataResponse.data.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, Data); - } - else - { - jobject DataInsideOptional; - DataInsideOptional = - env->NewStringUTF(std::string(dataResponse.data.Value().data(), dataResponse.data.Value().size()).c_str()); - chip::JniReferences::GetInstance().CreateOptional(DataInsideOptional, Data); - } - - env->CallVoidMethod(javaCallbackRef, javaMethod, Target, Data); -} -CHIPMediaPlaybackClusterPlayCallback::CHIPMediaPlaybackClusterPlayCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPMediaPlaybackClusterPlayCallback::~CHIPMediaPlaybackClusterPlayCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPMediaPlaybackClusterPlayCallback::CallbackFn( - void * context, const chip::app::Clusters::MediaPlayback::Commands::Play::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - env->CallVoidMethod(javaCallbackRef, javaMethod); -} -CHIPMediaPlaybackClusterPauseCallback::CHIPMediaPlaybackClusterPauseCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPMediaPlaybackClusterPauseCallback::~CHIPMediaPlaybackClusterPauseCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPMediaPlaybackClusterPauseCallback::CallbackFn( - void * context, const chip::app::Clusters::MediaPlayback::Commands::Pause::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - env->CallVoidMethod(javaCallbackRef, javaMethod); -} -CHIPMediaPlaybackClusterStopCallback::CHIPMediaPlaybackClusterStopCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPMediaPlaybackClusterStopCallback::~CHIPMediaPlaybackClusterStopCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPMediaPlaybackClusterStopCallback::CallbackFn( - void * context, const chip::app::Clusters::MediaPlayback::Commands::Stop::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - env->CallVoidMethod(javaCallbackRef, javaMethod); -} -CHIPMediaPlaybackClusterStartOverCallback::CHIPMediaPlaybackClusterStartOverCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPMediaPlaybackClusterStartOverCallback::~CHIPMediaPlaybackClusterStartOverCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPMediaPlaybackClusterStartOverCallback::CallbackFn( - void * context, const chip::app::Clusters::MediaPlayback::Commands::StartOver::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - env->CallVoidMethod(javaCallbackRef, javaMethod); -} -CHIPMediaPlaybackClusterPreviousCallback::CHIPMediaPlaybackClusterPreviousCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPMediaPlaybackClusterPreviousCallback::~CHIPMediaPlaybackClusterPreviousCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPMediaPlaybackClusterPreviousCallback::CallbackFn( - void * context, const chip::app::Clusters::MediaPlayback::Commands::Previous::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - env->CallVoidMethod(javaCallbackRef, javaMethod); -} -CHIPMediaPlaybackClusterNextCallback::CHIPMediaPlaybackClusterNextCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPMediaPlaybackClusterNextCallback::~CHIPMediaPlaybackClusterNextCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPMediaPlaybackClusterNextCallback::CallbackFn( - void * context, const chip::app::Clusters::MediaPlayback::Commands::Next::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - env->CallVoidMethod(javaCallbackRef, javaMethod); -} -CHIPMediaPlaybackClusterRewindCallback::CHIPMediaPlaybackClusterRewindCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPMediaPlaybackClusterRewindCallback::~CHIPMediaPlaybackClusterRewindCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPMediaPlaybackClusterRewindCallback::CallbackFn( - void * context, const chip::app::Clusters::MediaPlayback::Commands::Rewind::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - env->CallVoidMethod(javaCallbackRef, javaMethod); -} -CHIPMediaPlaybackClusterFastForwardCallback::CHIPMediaPlaybackClusterFastForwardCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPMediaPlaybackClusterFastForwardCallback::~CHIPMediaPlaybackClusterFastForwardCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPMediaPlaybackClusterFastForwardCallback::CallbackFn( - void * context, const chip::app::Clusters::MediaPlayback::Commands::FastForward::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - env->CallVoidMethod(javaCallbackRef, javaMethod); -} -CHIPMediaPlaybackClusterSkipForwardCallback::CHIPMediaPlaybackClusterSkipForwardCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPMediaPlaybackClusterSkipForwardCallback::~CHIPMediaPlaybackClusterSkipForwardCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPMediaPlaybackClusterSkipForwardCallback::CallbackFn( - void * context, const chip::app::Clusters::MediaPlayback::Commands::SkipForward::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject DeltaPositionMilliseconds; - std::string DeltaPositionMillisecondsClassName = "java/lang/Long"; - std::string DeltaPositionMillisecondsCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - DeltaPositionMillisecondsClassName.c_str(), DeltaPositionMillisecondsCtorSignature.c_str(), - dataResponse.deltaPositionMilliseconds, DeltaPositionMilliseconds); - - env->CallVoidMethod(javaCallbackRef, javaMethod, DeltaPositionMilliseconds); -} -CHIPMediaPlaybackClusterSkipBackwardCallback::CHIPMediaPlaybackClusterSkipBackwardCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPMediaPlaybackClusterSkipBackwardCallback::~CHIPMediaPlaybackClusterSkipBackwardCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPMediaPlaybackClusterSkipBackwardCallback::CallbackFn( - void * context, const chip::app::Clusters::MediaPlayback::Commands::SkipBackward::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject DeltaPositionMilliseconds; - std::string DeltaPositionMillisecondsClassName = "java/lang/Long"; - std::string DeltaPositionMillisecondsCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - DeltaPositionMillisecondsClassName.c_str(), DeltaPositionMillisecondsCtorSignature.c_str(), - dataResponse.deltaPositionMilliseconds, DeltaPositionMilliseconds); - - env->CallVoidMethod(javaCallbackRef, javaMethod, DeltaPositionMilliseconds); -} -CHIPMediaPlaybackClusterSeekCallback::CHIPMediaPlaybackClusterSeekCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPMediaPlaybackClusterSeekCallback::~CHIPMediaPlaybackClusterSeekCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPMediaPlaybackClusterSeekCallback::CallbackFn( - void * context, const chip::app::Clusters::MediaPlayback::Commands::Seek::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject position; - std::string positionClassName = "java/lang/Long"; - std::string positionCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(positionClassName.c_str(), positionCtorSignature.c_str(), - dataResponse.position, position); - - env->CallVoidMethod(javaCallbackRef, javaMethod, position); -} -CHIPMediaInputClusterSelectInputCallback::CHIPMediaInputClusterSelectInputCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPMediaInputClusterSelectInputCallback::~CHIPMediaInputClusterSelectInputCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPMediaInputClusterSelectInputCallback::CallbackFn( - void * context, const chip::app::Clusters::MediaInput::Commands::SelectInput::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject Index; - std::string IndexClassName = "java/lang/Integer"; - std::string IndexCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(IndexClassName.c_str(), IndexCtorSignature.c_str(), - dataResponse.index, Index); - - env->CallVoidMethod(javaCallbackRef, javaMethod, Index); -} -CHIPMediaInputClusterShowInputStatusCallback::CHIPMediaInputClusterShowInputStatusCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPMediaInputClusterShowInputStatusCallback::~CHIPMediaInputClusterShowInputStatusCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPMediaInputClusterShowInputStatusCallback::CallbackFn( - void * context, const chip::app::Clusters::MediaInput::Commands::ShowInputStatus::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - env->CallVoidMethod(javaCallbackRef, javaMethod); -} -CHIPMediaInputClusterHideInputStatusCallback::CHIPMediaInputClusterHideInputStatusCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPMediaInputClusterHideInputStatusCallback::~CHIPMediaInputClusterHideInputStatusCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPMediaInputClusterHideInputStatusCallback::CallbackFn( - void * context, const chip::app::Clusters::MediaInput::Commands::HideInputStatus::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - env->CallVoidMethod(javaCallbackRef, javaMethod); -} -CHIPMediaInputClusterRenameInputCallback::CHIPMediaInputClusterRenameInputCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPMediaInputClusterRenameInputCallback::~CHIPMediaInputClusterRenameInputCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPMediaInputClusterRenameInputCallback::CallbackFn( - void * context, const chip::app::Clusters::MediaInput::Commands::RenameInput::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/String;)V", - &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject Index; - std::string IndexClassName = "java/lang/Integer"; - std::string IndexCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(IndexClassName.c_str(), IndexCtorSignature.c_str(), - dataResponse.index, Index); - jobject Name; - Name = env->NewStringUTF(std::string(dataResponse.name.data(), dataResponse.name.size()).c_str()); - - env->CallVoidMethod(javaCallbackRef, javaMethod, Index, Name); -} -CHIPLowPowerClusterSleepCallback::CHIPLowPowerClusterSleepCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPLowPowerClusterSleepCallback::~CHIPLowPowerClusterSleepCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPLowPowerClusterSleepCallback::CallbackFn( - void * context, const chip::app::Clusters::LowPower::Commands::Sleep::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr cppCallback( - reinterpret_cast(context), chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - env->CallVoidMethod(javaCallbackRef, javaMethod); -} -CHIPKeypadInputClusterSendKeyCallback::CHIPKeypadInputClusterSendKeyCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPKeypadInputClusterSendKeyCallback::~CHIPKeypadInputClusterSendKeyCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPKeypadInputClusterSendKeyCallback::CallbackFn( - void * context, const chip::app::Clusters::KeypadInput::Commands::SendKey::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject KeyCode; - std::string KeyCodeClassName = "java/lang/Integer"; - std::string KeyCodeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(KeyCodeClassName.c_str(), KeyCodeCtorSignature.c_str(), - static_cast(dataResponse.keyCode), KeyCode); - - env->CallVoidMethod(javaCallbackRef, javaMethod, KeyCode); -} -CHIPContentLauncherClusterLaunchContentCallback::CHIPContentLauncherClusterLaunchContentCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPContentLauncherClusterLaunchContentCallback::~CHIPContentLauncherClusterLaunchContentCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPContentLauncherClusterLaunchContentCallback::CallbackFn( - void * context, const chip::app::Clusters::ContentLauncher::Commands::LaunchContent::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod( - env, javaCallbackRef, "onSuccess", - "(Lchip/devicecontroller/ChipStructs$ContentLauncherClusterContentSearchStruct;Ljava/lang/Boolean;Ljava/util/Optional;)V", - &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject Search; - jobject Search_parameterList; - chip::JniReferences::GetInstance().CreateArrayList(Search_parameterList); - - auto iter_Search_parameterList_1 = dataResponse.search.parameterList.begin(); - while (iter_Search_parameterList_1.Next()) - { - auto & entry_1 = iter_Search_parameterList_1.GetValue(); - jobject newElement_1; - jobject newElement_1_type; - std::string newElement_1_typeClassName = "java/lang/Integer"; - std::string newElement_1_typeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(newElement_1_typeClassName.c_str(), - newElement_1_typeCtorSignature.c_str(), - static_cast(entry_1.type), newElement_1_type); - jobject newElement_1_value; - newElement_1_value = env->NewStringUTF(std::string(entry_1.value.data(), entry_1.value.size()).c_str()); - jobject newElement_1_externalIDList; - if (!entry_1.externalIDList.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, newElement_1_externalIDList); - } - else - { - jobject newElement_1_externalIDListInsideOptional; - chip::JniReferences::GetInstance().CreateArrayList(newElement_1_externalIDListInsideOptional); - - auto iter_newElement_1_externalIDListInsideOptional_4 = entry_1.externalIDList.Value().begin(); - while (iter_newElement_1_externalIDListInsideOptional_4.Next()) - { - auto & entry_4 = iter_newElement_1_externalIDListInsideOptional_4.GetValue(); - jobject newElement_4; - jobject newElement_4_name; - newElement_4_name = env->NewStringUTF(std::string(entry_4.name.data(), entry_4.name.size()).c_str()); - jobject newElement_4_value; - newElement_4_value = env->NewStringUTF(std::string(entry_4.value.data(), entry_4.value.size()).c_str()); - - jclass additionalInfoStructStructClass_5; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$ContentLauncherClusterAdditionalInfoStruct", - additionalInfoStructStructClass_5); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$ContentLauncherClusterAdditionalInfoStruct"); - return; - } - jmethodID additionalInfoStructStructCtor_5 = - env->GetMethodID(additionalInfoStructStructClass_5, "", "(Ljava/lang/String;Ljava/lang/String;)V"); - if (additionalInfoStructStructCtor_5 == nullptr) - { - ChipLogError(Zcl, "Could not find ChipStructs$ContentLauncherClusterAdditionalInfoStruct constructor"); - return; - } - - newElement_4 = env->NewObject(additionalInfoStructStructClass_5, additionalInfoStructStructCtor_5, - newElement_4_name, newElement_4_value); - chip::JniReferences::GetInstance().AddToList(newElement_1_externalIDListInsideOptional, newElement_4); - } - chip::JniReferences::GetInstance().CreateOptional(newElement_1_externalIDListInsideOptional, - newElement_1_externalIDList); - } - - jclass parameterStructStructClass_2; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$ContentLauncherClusterParameterStruct", parameterStructStructClass_2); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$ContentLauncherClusterParameterStruct"); - return; - } - jmethodID parameterStructStructCtor_2 = env->GetMethodID(parameterStructStructClass_2, "", - "(Ljava/lang/Integer;Ljava/lang/String;Ljava/util/Optional;)V"); - if (parameterStructStructCtor_2 == nullptr) - { - ChipLogError(Zcl, "Could not find ChipStructs$ContentLauncherClusterParameterStruct constructor"); - return; - } - - newElement_1 = env->NewObject(parameterStructStructClass_2, parameterStructStructCtor_2, newElement_1_type, - newElement_1_value, newElement_1_externalIDList); - chip::JniReferences::GetInstance().AddToList(Search_parameterList, newElement_1); - } - - jclass contentSearchStructStructClass_0; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$ContentLauncherClusterContentSearchStruct", contentSearchStructStructClass_0); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$ContentLauncherClusterContentSearchStruct"); - return; - } - jmethodID contentSearchStructStructCtor_0 = - env->GetMethodID(contentSearchStructStructClass_0, "", "(Ljava/util/ArrayList;)V"); - if (contentSearchStructStructCtor_0 == nullptr) - { - ChipLogError(Zcl, "Could not find ChipStructs$ContentLauncherClusterContentSearchStruct constructor"); - return; - } - - Search = env->NewObject(contentSearchStructStructClass_0, contentSearchStructStructCtor_0, Search_parameterList); - jobject AutoPlay; - std::string AutoPlayClassName = "java/lang/Boolean"; - std::string AutoPlayCtorSignature = "(Z)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(AutoPlayClassName.c_str(), AutoPlayCtorSignature.c_str(), - dataResponse.autoPlay, AutoPlay); - jobject Data; - if (!dataResponse.data.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, Data); - } - else - { - jobject DataInsideOptional; - DataInsideOptional = - env->NewStringUTF(std::string(dataResponse.data.Value().data(), dataResponse.data.Value().size()).c_str()); - chip::JniReferences::GetInstance().CreateOptional(DataInsideOptional, Data); - } - - env->CallVoidMethod(javaCallbackRef, javaMethod, Search, AutoPlay, Data); -} -CHIPContentLauncherClusterLaunchURLCallback::CHIPContentLauncherClusterLaunchURLCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPContentLauncherClusterLaunchURLCallback::~CHIPContentLauncherClusterLaunchURLCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPContentLauncherClusterLaunchURLCallback::CallbackFn( - void * context, const chip::app::Clusters::ContentLauncher::Commands::LaunchURL::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", - "(Ljava/lang/String;Ljava/util/Optional;Ljava/util/Optional;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject ContentURL; - ContentURL = env->NewStringUTF(std::string(dataResponse.contentURL.data(), dataResponse.contentURL.size()).c_str()); - jobject DisplayString; - if (!dataResponse.displayString.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, DisplayString); - } - else - { - jobject DisplayStringInsideOptional; - DisplayStringInsideOptional = env->NewStringUTF( - std::string(dataResponse.displayString.Value().data(), dataResponse.displayString.Value().size()).c_str()); - chip::JniReferences::GetInstance().CreateOptional(DisplayStringInsideOptional, DisplayString); - } - jobject BrandingInformation; - if (!dataResponse.brandingInformation.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, BrandingInformation); - } - else - { - jobject BrandingInformationInsideOptional; - jobject BrandingInformationInsideOptional_providerName; - BrandingInformationInsideOptional_providerName = - env->NewStringUTF(std::string(dataResponse.brandingInformation.Value().providerName.data(), - dataResponse.brandingInformation.Value().providerName.size()) - .c_str()); - jobject BrandingInformationInsideOptional_background; - if (!dataResponse.brandingInformation.Value().background.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, BrandingInformationInsideOptional_background); - } - else - { - jobject BrandingInformationInsideOptional_backgroundInsideOptional; - jobject BrandingInformationInsideOptional_backgroundInsideOptional_imageURL; - if (!dataResponse.brandingInformation.Value().background.Value().imageURL.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional( - nullptr, BrandingInformationInsideOptional_backgroundInsideOptional_imageURL); - } - else - { - jobject BrandingInformationInsideOptional_backgroundInsideOptional_imageURLInsideOptional; - BrandingInformationInsideOptional_backgroundInsideOptional_imageURLInsideOptional = env->NewStringUTF( - std::string(dataResponse.brandingInformation.Value().background.Value().imageURL.Value().data(), - dataResponse.brandingInformation.Value().background.Value().imageURL.Value().size()) - .c_str()); - chip::JniReferences::GetInstance().CreateOptional( - BrandingInformationInsideOptional_backgroundInsideOptional_imageURLInsideOptional, - BrandingInformationInsideOptional_backgroundInsideOptional_imageURL); - } - jobject BrandingInformationInsideOptional_backgroundInsideOptional_color; - if (!dataResponse.brandingInformation.Value().background.Value().color.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, - BrandingInformationInsideOptional_backgroundInsideOptional_color); - } - else - { - jobject BrandingInformationInsideOptional_backgroundInsideOptional_colorInsideOptional; - BrandingInformationInsideOptional_backgroundInsideOptional_colorInsideOptional = - env->NewStringUTF(std::string(dataResponse.brandingInformation.Value().background.Value().color.Value().data(), - dataResponse.brandingInformation.Value().background.Value().color.Value().size()) - .c_str()); - chip::JniReferences::GetInstance().CreateOptional( - BrandingInformationInsideOptional_backgroundInsideOptional_colorInsideOptional, - BrandingInformationInsideOptional_backgroundInsideOptional_color); - } - jobject BrandingInformationInsideOptional_backgroundInsideOptional_size; - if (!dataResponse.brandingInformation.Value().background.Value().size.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, - BrandingInformationInsideOptional_backgroundInsideOptional_size); - } - else - { - jobject BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional; - jobject BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional_width; - std::string BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional_widthClassName = - "java/lang/Double"; - std::string BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional_widthCtorSignature = - "(D)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional_widthClassName.c_str(), - BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional_widthCtorSignature.c_str(), - dataResponse.brandingInformation.Value().background.Value().size.Value().width, - BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional_width); - jobject BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional_height; - std::string BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional_heightClassName = - "java/lang/Double"; - std::string BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional_heightCtorSignature = - "(D)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional_heightClassName.c_str(), - BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional_heightCtorSignature.c_str(), - dataResponse.brandingInformation.Value().background.Value().size.Value().height, - BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional_height); - jobject BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional_metric; - std::string BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional_metricClassName = - "java/lang/Integer"; - std::string BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional_metricCtorSignature = - "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional_metricClassName.c_str(), - BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional_metricCtorSignature.c_str(), - static_cast(dataResponse.brandingInformation.Value().background.Value().size.Value().metric), - BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional_metric); - - jclass dimensionStructStructClass_5; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$ContentLauncherClusterDimensionStruct", dimensionStructStructClass_5); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$ContentLauncherClusterDimensionStruct"); - return; - } - jmethodID dimensionStructStructCtor_5 = env->GetMethodID( - dimensionStructStructClass_5, "", "(Ljava/lang/Double;Ljava/lang/Double;Ljava/lang/Integer;)V"); - if (dimensionStructStructCtor_5 == nullptr) - { - ChipLogError(Zcl, "Could not find ChipStructs$ContentLauncherClusterDimensionStruct constructor"); - return; - } - - BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional = - env->NewObject(dimensionStructStructClass_5, dimensionStructStructCtor_5, - BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional_width, - BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional_height, - BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional_metric); - chip::JniReferences::GetInstance().CreateOptional( - BrandingInformationInsideOptional_backgroundInsideOptional_sizeInsideOptional, - BrandingInformationInsideOptional_backgroundInsideOptional_size); - } - - jclass styleInformationStructStructClass_3; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$ContentLauncherClusterStyleInformationStruct", - styleInformationStructStructClass_3); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$ContentLauncherClusterStyleInformationStruct"); - return; - } - jmethodID styleInformationStructStructCtor_3 = env->GetMethodID( - styleInformationStructStructClass_3, "", "(Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;)V"); - if (styleInformationStructStructCtor_3 == nullptr) - { - ChipLogError(Zcl, "Could not find ChipStructs$ContentLauncherClusterStyleInformationStruct constructor"); - return; - } - - BrandingInformationInsideOptional_backgroundInsideOptional = - env->NewObject(styleInformationStructStructClass_3, styleInformationStructStructCtor_3, - BrandingInformationInsideOptional_backgroundInsideOptional_imageURL, - BrandingInformationInsideOptional_backgroundInsideOptional_color, - BrandingInformationInsideOptional_backgroundInsideOptional_size); - chip::JniReferences::GetInstance().CreateOptional(BrandingInformationInsideOptional_backgroundInsideOptional, - BrandingInformationInsideOptional_background); - } - jobject BrandingInformationInsideOptional_logo; - if (!dataResponse.brandingInformation.Value().logo.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, BrandingInformationInsideOptional_logo); - } - else - { - jobject BrandingInformationInsideOptional_logoInsideOptional; - jobject BrandingInformationInsideOptional_logoInsideOptional_imageURL; - if (!dataResponse.brandingInformation.Value().logo.Value().imageURL.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, - BrandingInformationInsideOptional_logoInsideOptional_imageURL); - } - else - { - jobject BrandingInformationInsideOptional_logoInsideOptional_imageURLInsideOptional; - BrandingInformationInsideOptional_logoInsideOptional_imageURLInsideOptional = - env->NewStringUTF(std::string(dataResponse.brandingInformation.Value().logo.Value().imageURL.Value().data(), - dataResponse.brandingInformation.Value().logo.Value().imageURL.Value().size()) - .c_str()); - chip::JniReferences::GetInstance().CreateOptional( - BrandingInformationInsideOptional_logoInsideOptional_imageURLInsideOptional, - BrandingInformationInsideOptional_logoInsideOptional_imageURL); - } - jobject BrandingInformationInsideOptional_logoInsideOptional_color; - if (!dataResponse.brandingInformation.Value().logo.Value().color.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, - BrandingInformationInsideOptional_logoInsideOptional_color); - } - else - { - jobject BrandingInformationInsideOptional_logoInsideOptional_colorInsideOptional; - BrandingInformationInsideOptional_logoInsideOptional_colorInsideOptional = - env->NewStringUTF(std::string(dataResponse.brandingInformation.Value().logo.Value().color.Value().data(), - dataResponse.brandingInformation.Value().logo.Value().color.Value().size()) - .c_str()); - chip::JniReferences::GetInstance().CreateOptional( - BrandingInformationInsideOptional_logoInsideOptional_colorInsideOptional, - BrandingInformationInsideOptional_logoInsideOptional_color); - } - jobject BrandingInformationInsideOptional_logoInsideOptional_size; - if (!dataResponse.brandingInformation.Value().logo.Value().size.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, - BrandingInformationInsideOptional_logoInsideOptional_size); - } - else - { - jobject BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional; - jobject BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional_width; - std::string BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional_widthClassName = - "java/lang/Double"; - std::string BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional_widthCtorSignature = "(D)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional_widthClassName.c_str(), - BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional_widthCtorSignature.c_str(), - dataResponse.brandingInformation.Value().logo.Value().size.Value().width, - BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional_width); - jobject BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional_height; - std::string BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional_heightClassName = - "java/lang/Double"; - std::string BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional_heightCtorSignature = "(D)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional_heightClassName.c_str(), - BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional_heightCtorSignature.c_str(), - dataResponse.brandingInformation.Value().logo.Value().size.Value().height, - BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional_height); - jobject BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional_metric; - std::string BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional_metricClassName = - "java/lang/Integer"; - std::string BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional_metricCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional_metricClassName.c_str(), - BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional_metricCtorSignature.c_str(), - static_cast(dataResponse.brandingInformation.Value().logo.Value().size.Value().metric), - BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional_metric); - - jclass dimensionStructStructClass_5; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$ContentLauncherClusterDimensionStruct", dimensionStructStructClass_5); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$ContentLauncherClusterDimensionStruct"); - return; - } - jmethodID dimensionStructStructCtor_5 = env->GetMethodID( - dimensionStructStructClass_5, "", "(Ljava/lang/Double;Ljava/lang/Double;Ljava/lang/Integer;)V"); - if (dimensionStructStructCtor_5 == nullptr) - { - ChipLogError(Zcl, "Could not find ChipStructs$ContentLauncherClusterDimensionStruct constructor"); - return; - } - - BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional = - env->NewObject(dimensionStructStructClass_5, dimensionStructStructCtor_5, - BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional_width, - BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional_height, - BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional_metric); - chip::JniReferences::GetInstance().CreateOptional( - BrandingInformationInsideOptional_logoInsideOptional_sizeInsideOptional, - BrandingInformationInsideOptional_logoInsideOptional_size); - } - - jclass styleInformationStructStructClass_3; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$ContentLauncherClusterStyleInformationStruct", - styleInformationStructStructClass_3); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$ContentLauncherClusterStyleInformationStruct"); - return; - } - jmethodID styleInformationStructStructCtor_3 = env->GetMethodID( - styleInformationStructStructClass_3, "", "(Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;)V"); - if (styleInformationStructStructCtor_3 == nullptr) - { - ChipLogError(Zcl, "Could not find ChipStructs$ContentLauncherClusterStyleInformationStruct constructor"); - return; - } - - BrandingInformationInsideOptional_logoInsideOptional = - env->NewObject(styleInformationStructStructClass_3, styleInformationStructStructCtor_3, - BrandingInformationInsideOptional_logoInsideOptional_imageURL, - BrandingInformationInsideOptional_logoInsideOptional_color, - BrandingInformationInsideOptional_logoInsideOptional_size); - chip::JniReferences::GetInstance().CreateOptional(BrandingInformationInsideOptional_logoInsideOptional, - BrandingInformationInsideOptional_logo); - } - jobject BrandingInformationInsideOptional_progressBar; - if (!dataResponse.brandingInformation.Value().progressBar.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, BrandingInformationInsideOptional_progressBar); - } - else - { - jobject BrandingInformationInsideOptional_progressBarInsideOptional; - jobject BrandingInformationInsideOptional_progressBarInsideOptional_imageURL; - if (!dataResponse.brandingInformation.Value().progressBar.Value().imageURL.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional( - nullptr, BrandingInformationInsideOptional_progressBarInsideOptional_imageURL); - } - else - { - jobject BrandingInformationInsideOptional_progressBarInsideOptional_imageURLInsideOptional; - BrandingInformationInsideOptional_progressBarInsideOptional_imageURLInsideOptional = env->NewStringUTF( - std::string(dataResponse.brandingInformation.Value().progressBar.Value().imageURL.Value().data(), - dataResponse.brandingInformation.Value().progressBar.Value().imageURL.Value().size()) - .c_str()); - chip::JniReferences::GetInstance().CreateOptional( - BrandingInformationInsideOptional_progressBarInsideOptional_imageURLInsideOptional, - BrandingInformationInsideOptional_progressBarInsideOptional_imageURL); - } - jobject BrandingInformationInsideOptional_progressBarInsideOptional_color; - if (!dataResponse.brandingInformation.Value().progressBar.Value().color.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional( - nullptr, BrandingInformationInsideOptional_progressBarInsideOptional_color); - } - else - { - jobject BrandingInformationInsideOptional_progressBarInsideOptional_colorInsideOptional; - BrandingInformationInsideOptional_progressBarInsideOptional_colorInsideOptional = - env->NewStringUTF(std::string(dataResponse.brandingInformation.Value().progressBar.Value().color.Value().data(), - dataResponse.brandingInformation.Value().progressBar.Value().color.Value().size()) - .c_str()); - chip::JniReferences::GetInstance().CreateOptional( - BrandingInformationInsideOptional_progressBarInsideOptional_colorInsideOptional, - BrandingInformationInsideOptional_progressBarInsideOptional_color); - } - jobject BrandingInformationInsideOptional_progressBarInsideOptional_size; - if (!dataResponse.brandingInformation.Value().progressBar.Value().size.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, - BrandingInformationInsideOptional_progressBarInsideOptional_size); - } - else - { - jobject BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional; - jobject BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional_width; - std::string BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional_widthClassName = - "java/lang/Double"; - std::string BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional_widthCtorSignature = - "(D)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional_widthClassName.c_str(), - BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional_widthCtorSignature.c_str(), - dataResponse.brandingInformation.Value().progressBar.Value().size.Value().width, - BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional_width); - jobject BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional_height; - std::string BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional_heightClassName = - "java/lang/Double"; - std::string BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional_heightCtorSignature = - "(D)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional_heightClassName.c_str(), - BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional_heightCtorSignature.c_str(), - dataResponse.brandingInformation.Value().progressBar.Value().size.Value().height, - BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional_height); - jobject BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional_metric; - std::string BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional_metricClassName = - "java/lang/Integer"; - std::string BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional_metricCtorSignature = - "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional_metricClassName.c_str(), - BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional_metricCtorSignature.c_str(), - static_cast(dataResponse.brandingInformation.Value().progressBar.Value().size.Value().metric), - BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional_metric); - - jclass dimensionStructStructClass_5; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$ContentLauncherClusterDimensionStruct", dimensionStructStructClass_5); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$ContentLauncherClusterDimensionStruct"); - return; - } - jmethodID dimensionStructStructCtor_5 = env->GetMethodID( - dimensionStructStructClass_5, "", "(Ljava/lang/Double;Ljava/lang/Double;Ljava/lang/Integer;)V"); - if (dimensionStructStructCtor_5 == nullptr) - { - ChipLogError(Zcl, "Could not find ChipStructs$ContentLauncherClusterDimensionStruct constructor"); - return; - } - - BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional = - env->NewObject(dimensionStructStructClass_5, dimensionStructStructCtor_5, - BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional_width, - BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional_height, - BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional_metric); - chip::JniReferences::GetInstance().CreateOptional( - BrandingInformationInsideOptional_progressBarInsideOptional_sizeInsideOptional, - BrandingInformationInsideOptional_progressBarInsideOptional_size); - } - - jclass styleInformationStructStructClass_3; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$ContentLauncherClusterStyleInformationStruct", - styleInformationStructStructClass_3); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$ContentLauncherClusterStyleInformationStruct"); - return; - } - jmethodID styleInformationStructStructCtor_3 = env->GetMethodID( - styleInformationStructStructClass_3, "", "(Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;)V"); - if (styleInformationStructStructCtor_3 == nullptr) - { - ChipLogError(Zcl, "Could not find ChipStructs$ContentLauncherClusterStyleInformationStruct constructor"); - return; - } - - BrandingInformationInsideOptional_progressBarInsideOptional = - env->NewObject(styleInformationStructStructClass_3, styleInformationStructStructCtor_3, - BrandingInformationInsideOptional_progressBarInsideOptional_imageURL, - BrandingInformationInsideOptional_progressBarInsideOptional_color, - BrandingInformationInsideOptional_progressBarInsideOptional_size); - chip::JniReferences::GetInstance().CreateOptional(BrandingInformationInsideOptional_progressBarInsideOptional, - BrandingInformationInsideOptional_progressBar); - } - jobject BrandingInformationInsideOptional_splash; - if (!dataResponse.brandingInformation.Value().splash.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, BrandingInformationInsideOptional_splash); - } - else - { - jobject BrandingInformationInsideOptional_splashInsideOptional; - jobject BrandingInformationInsideOptional_splashInsideOptional_imageURL; - if (!dataResponse.brandingInformation.Value().splash.Value().imageURL.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, - BrandingInformationInsideOptional_splashInsideOptional_imageURL); - } - else - { - jobject BrandingInformationInsideOptional_splashInsideOptional_imageURLInsideOptional; - BrandingInformationInsideOptional_splashInsideOptional_imageURLInsideOptional = - env->NewStringUTF(std::string(dataResponse.brandingInformation.Value().splash.Value().imageURL.Value().data(), - dataResponse.brandingInformation.Value().splash.Value().imageURL.Value().size()) - .c_str()); - chip::JniReferences::GetInstance().CreateOptional( - BrandingInformationInsideOptional_splashInsideOptional_imageURLInsideOptional, - BrandingInformationInsideOptional_splashInsideOptional_imageURL); - } - jobject BrandingInformationInsideOptional_splashInsideOptional_color; - if (!dataResponse.brandingInformation.Value().splash.Value().color.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, - BrandingInformationInsideOptional_splashInsideOptional_color); - } - else - { - jobject BrandingInformationInsideOptional_splashInsideOptional_colorInsideOptional; - BrandingInformationInsideOptional_splashInsideOptional_colorInsideOptional = - env->NewStringUTF(std::string(dataResponse.brandingInformation.Value().splash.Value().color.Value().data(), - dataResponse.brandingInformation.Value().splash.Value().color.Value().size()) - .c_str()); - chip::JniReferences::GetInstance().CreateOptional( - BrandingInformationInsideOptional_splashInsideOptional_colorInsideOptional, - BrandingInformationInsideOptional_splashInsideOptional_color); - } - jobject BrandingInformationInsideOptional_splashInsideOptional_size; - if (!dataResponse.brandingInformation.Value().splash.Value().size.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, - BrandingInformationInsideOptional_splashInsideOptional_size); - } - else - { - jobject BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional; - jobject BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional_width; - std::string BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional_widthClassName = - "java/lang/Double"; - std::string BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional_widthCtorSignature = "(D)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional_widthClassName.c_str(), - BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional_widthCtorSignature.c_str(), - dataResponse.brandingInformation.Value().splash.Value().size.Value().width, - BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional_width); - jobject BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional_height; - std::string BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional_heightClassName = - "java/lang/Double"; - std::string BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional_heightCtorSignature = "(D)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional_heightClassName.c_str(), - BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional_heightCtorSignature.c_str(), - dataResponse.brandingInformation.Value().splash.Value().size.Value().height, - BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional_height); - jobject BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional_metric; - std::string BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional_metricClassName = - "java/lang/Integer"; - std::string BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional_metricCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional_metricClassName.c_str(), - BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional_metricCtorSignature.c_str(), - static_cast(dataResponse.brandingInformation.Value().splash.Value().size.Value().metric), - BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional_metric); - - jclass dimensionStructStructClass_5; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$ContentLauncherClusterDimensionStruct", dimensionStructStructClass_5); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$ContentLauncherClusterDimensionStruct"); - return; - } - jmethodID dimensionStructStructCtor_5 = env->GetMethodID( - dimensionStructStructClass_5, "", "(Ljava/lang/Double;Ljava/lang/Double;Ljava/lang/Integer;)V"); - if (dimensionStructStructCtor_5 == nullptr) - { - ChipLogError(Zcl, "Could not find ChipStructs$ContentLauncherClusterDimensionStruct constructor"); - return; - } - - BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional = - env->NewObject(dimensionStructStructClass_5, dimensionStructStructCtor_5, - BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional_width, - BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional_height, - BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional_metric); - chip::JniReferences::GetInstance().CreateOptional( - BrandingInformationInsideOptional_splashInsideOptional_sizeInsideOptional, - BrandingInformationInsideOptional_splashInsideOptional_size); - } - - jclass styleInformationStructStructClass_3; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$ContentLauncherClusterStyleInformationStruct", - styleInformationStructStructClass_3); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$ContentLauncherClusterStyleInformationStruct"); - return; - } - jmethodID styleInformationStructStructCtor_3 = env->GetMethodID( - styleInformationStructStructClass_3, "", "(Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;)V"); - if (styleInformationStructStructCtor_3 == nullptr) - { - ChipLogError(Zcl, "Could not find ChipStructs$ContentLauncherClusterStyleInformationStruct constructor"); - return; - } - - BrandingInformationInsideOptional_splashInsideOptional = - env->NewObject(styleInformationStructStructClass_3, styleInformationStructStructCtor_3, - BrandingInformationInsideOptional_splashInsideOptional_imageURL, - BrandingInformationInsideOptional_splashInsideOptional_color, - BrandingInformationInsideOptional_splashInsideOptional_size); - chip::JniReferences::GetInstance().CreateOptional(BrandingInformationInsideOptional_splashInsideOptional, - BrandingInformationInsideOptional_splash); - } - jobject BrandingInformationInsideOptional_waterMark; - if (!dataResponse.brandingInformation.Value().waterMark.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, BrandingInformationInsideOptional_waterMark); - } - else - { - jobject BrandingInformationInsideOptional_waterMarkInsideOptional; - jobject BrandingInformationInsideOptional_waterMarkInsideOptional_imageURL; - if (!dataResponse.brandingInformation.Value().waterMark.Value().imageURL.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional( - nullptr, BrandingInformationInsideOptional_waterMarkInsideOptional_imageURL); - } - else - { - jobject BrandingInformationInsideOptional_waterMarkInsideOptional_imageURLInsideOptional; - BrandingInformationInsideOptional_waterMarkInsideOptional_imageURLInsideOptional = env->NewStringUTF( - std::string(dataResponse.brandingInformation.Value().waterMark.Value().imageURL.Value().data(), - dataResponse.brandingInformation.Value().waterMark.Value().imageURL.Value().size()) - .c_str()); - chip::JniReferences::GetInstance().CreateOptional( - BrandingInformationInsideOptional_waterMarkInsideOptional_imageURLInsideOptional, - BrandingInformationInsideOptional_waterMarkInsideOptional_imageURL); - } - jobject BrandingInformationInsideOptional_waterMarkInsideOptional_color; - if (!dataResponse.brandingInformation.Value().waterMark.Value().color.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, - BrandingInformationInsideOptional_waterMarkInsideOptional_color); - } - else - { - jobject BrandingInformationInsideOptional_waterMarkInsideOptional_colorInsideOptional; - BrandingInformationInsideOptional_waterMarkInsideOptional_colorInsideOptional = - env->NewStringUTF(std::string(dataResponse.brandingInformation.Value().waterMark.Value().color.Value().data(), - dataResponse.brandingInformation.Value().waterMark.Value().color.Value().size()) - .c_str()); - chip::JniReferences::GetInstance().CreateOptional( - BrandingInformationInsideOptional_waterMarkInsideOptional_colorInsideOptional, - BrandingInformationInsideOptional_waterMarkInsideOptional_color); - } - jobject BrandingInformationInsideOptional_waterMarkInsideOptional_size; - if (!dataResponse.brandingInformation.Value().waterMark.Value().size.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, - BrandingInformationInsideOptional_waterMarkInsideOptional_size); - } - else - { - jobject BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional; - jobject BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional_width; - std::string BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional_widthClassName = - "java/lang/Double"; - std::string BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional_widthCtorSignature = - "(D)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional_widthClassName.c_str(), - BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional_widthCtorSignature.c_str(), - dataResponse.brandingInformation.Value().waterMark.Value().size.Value().width, - BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional_width); - jobject BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional_height; - std::string BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional_heightClassName = - "java/lang/Double"; - std::string BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional_heightCtorSignature = - "(D)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional_heightClassName.c_str(), - BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional_heightCtorSignature.c_str(), - dataResponse.brandingInformation.Value().waterMark.Value().size.Value().height, - BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional_height); - jobject BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional_metric; - std::string BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional_metricClassName = - "java/lang/Integer"; - std::string BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional_metricCtorSignature = - "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional_metricClassName.c_str(), - BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional_metricCtorSignature.c_str(), - static_cast(dataResponse.brandingInformation.Value().waterMark.Value().size.Value().metric), - BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional_metric); - - jclass dimensionStructStructClass_5; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$ContentLauncherClusterDimensionStruct", dimensionStructStructClass_5); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$ContentLauncherClusterDimensionStruct"); - return; - } - jmethodID dimensionStructStructCtor_5 = env->GetMethodID( - dimensionStructStructClass_5, "", "(Ljava/lang/Double;Ljava/lang/Double;Ljava/lang/Integer;)V"); - if (dimensionStructStructCtor_5 == nullptr) - { - ChipLogError(Zcl, "Could not find ChipStructs$ContentLauncherClusterDimensionStruct constructor"); - return; - } - - BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional = - env->NewObject(dimensionStructStructClass_5, dimensionStructStructCtor_5, - BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional_width, - BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional_height, - BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional_metric); - chip::JniReferences::GetInstance().CreateOptional( - BrandingInformationInsideOptional_waterMarkInsideOptional_sizeInsideOptional, - BrandingInformationInsideOptional_waterMarkInsideOptional_size); - } - - jclass styleInformationStructStructClass_3; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$ContentLauncherClusterStyleInformationStruct", - styleInformationStructStructClass_3); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$ContentLauncherClusterStyleInformationStruct"); - return; - } - jmethodID styleInformationStructStructCtor_3 = env->GetMethodID( - styleInformationStructStructClass_3, "", "(Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;)V"); - if (styleInformationStructStructCtor_3 == nullptr) - { - ChipLogError(Zcl, "Could not find ChipStructs$ContentLauncherClusterStyleInformationStruct constructor"); - return; - } - - BrandingInformationInsideOptional_waterMarkInsideOptional = - env->NewObject(styleInformationStructStructClass_3, styleInformationStructStructCtor_3, - BrandingInformationInsideOptional_waterMarkInsideOptional_imageURL, - BrandingInformationInsideOptional_waterMarkInsideOptional_color, - BrandingInformationInsideOptional_waterMarkInsideOptional_size); - chip::JniReferences::GetInstance().CreateOptional(BrandingInformationInsideOptional_waterMarkInsideOptional, - BrandingInformationInsideOptional_waterMark); - } - - jclass brandingInformationStructStructClass_1; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$ContentLauncherClusterBrandingInformationStruct", - brandingInformationStructStructClass_1); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$ContentLauncherClusterBrandingInformationStruct"); - return; - } - jmethodID brandingInformationStructStructCtor_1 = - env->GetMethodID(brandingInformationStructStructClass_1, "", - "(Ljava/lang/String;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/" - "Optional;Ljava/util/Optional;)V"); - if (brandingInformationStructStructCtor_1 == nullptr) - { - ChipLogError(Zcl, "Could not find ChipStructs$ContentLauncherClusterBrandingInformationStruct constructor"); - return; - } - - BrandingInformationInsideOptional = - env->NewObject(brandingInformationStructStructClass_1, brandingInformationStructStructCtor_1, - BrandingInformationInsideOptional_providerName, BrandingInformationInsideOptional_background, - BrandingInformationInsideOptional_logo, BrandingInformationInsideOptional_progressBar, - BrandingInformationInsideOptional_splash, BrandingInformationInsideOptional_waterMark); - chip::JniReferences::GetInstance().CreateOptional(BrandingInformationInsideOptional, BrandingInformation); - } - - env->CallVoidMethod(javaCallbackRef, javaMethod, ContentURL, DisplayString, BrandingInformation); -} -CHIPAudioOutputClusterSelectOutputCallback::CHIPAudioOutputClusterSelectOutputCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPAudioOutputClusterSelectOutputCallback::~CHIPAudioOutputClusterSelectOutputCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPAudioOutputClusterSelectOutputCallback::CallbackFn( - void * context, const chip::app::Clusters::AudioOutput::Commands::SelectOutput::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject Index; - std::string IndexClassName = "java/lang/Integer"; - std::string IndexCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(IndexClassName.c_str(), IndexCtorSignature.c_str(), - dataResponse.index, Index); - - env->CallVoidMethod(javaCallbackRef, javaMethod, Index); -} -CHIPAudioOutputClusterRenameOutputCallback::CHIPAudioOutputClusterRenameOutputCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPAudioOutputClusterRenameOutputCallback::~CHIPAudioOutputClusterRenameOutputCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPAudioOutputClusterRenameOutputCallback::CallbackFn( - void * context, const chip::app::Clusters::AudioOutput::Commands::RenameOutput::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/String;)V", - &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject Index; - std::string IndexClassName = "java/lang/Integer"; - std::string IndexCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(IndexClassName.c_str(), IndexCtorSignature.c_str(), - dataResponse.index, Index); - jobject Name; - Name = env->NewStringUTF(std::string(dataResponse.name.data(), dataResponse.name.size()).c_str()); - - env->CallVoidMethod(javaCallbackRef, javaMethod, Index, Name); -} -CHIPApplicationLauncherClusterLaunchAppCallback::CHIPApplicationLauncherClusterLaunchAppCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPApplicationLauncherClusterLaunchAppCallback::~CHIPApplicationLauncherClusterLaunchAppCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPApplicationLauncherClusterLaunchAppCallback::CallbackFn( - void * context, const chip::app::Clusters::ApplicationLauncher::Commands::LaunchApp::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/Optional;Ljava/util/Optional;)V", - &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject Application; - if (!dataResponse.application.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, Application); - } - else - { - jobject ApplicationInsideOptional; - jobject ApplicationInsideOptional_catalogVendorID; - std::string ApplicationInsideOptional_catalogVendorIDClassName = "java/lang/Integer"; - std::string ApplicationInsideOptional_catalogVendorIDCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - ApplicationInsideOptional_catalogVendorIDClassName.c_str(), - ApplicationInsideOptional_catalogVendorIDCtorSignature.c_str(), dataResponse.application.Value().catalogVendorID, - ApplicationInsideOptional_catalogVendorID); - jobject ApplicationInsideOptional_applicationID; - ApplicationInsideOptional_applicationID = - env->NewStringUTF(std::string(dataResponse.application.Value().applicationID.data(), - dataResponse.application.Value().applicationID.size()) - .c_str()); - - jclass applicationStructStructClass_1; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$ApplicationLauncherClusterApplicationStruct", applicationStructStructClass_1); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$ApplicationLauncherClusterApplicationStruct"); - return; - } - jmethodID applicationStructStructCtor_1 = - env->GetMethodID(applicationStructStructClass_1, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); - if (applicationStructStructCtor_1 == nullptr) - { - ChipLogError(Zcl, "Could not find ChipStructs$ApplicationLauncherClusterApplicationStruct constructor"); - return; - } - - ApplicationInsideOptional = - env->NewObject(applicationStructStructClass_1, applicationStructStructCtor_1, ApplicationInsideOptional_catalogVendorID, - ApplicationInsideOptional_applicationID); - chip::JniReferences::GetInstance().CreateOptional(ApplicationInsideOptional, Application); - } - jobject Data; - if (!dataResponse.data.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, Data); - } - else - { - jobject DataInsideOptional; - jbyteArray DataInsideOptionalByteArray = env->NewByteArray(static_cast(dataResponse.data.Value().size())); - env->SetByteArrayRegion(DataInsideOptionalByteArray, 0, static_cast(dataResponse.data.Value().size()), - reinterpret_cast(dataResponse.data.Value().data())); - DataInsideOptional = DataInsideOptionalByteArray; - chip::JniReferences::GetInstance().CreateOptional(DataInsideOptional, Data); - } - - env->CallVoidMethod(javaCallbackRef, javaMethod, Application, Data); -} -CHIPApplicationLauncherClusterStopAppCallback::CHIPApplicationLauncherClusterStopAppCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPApplicationLauncherClusterStopAppCallback::~CHIPApplicationLauncherClusterStopAppCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPApplicationLauncherClusterStopAppCallback::CallbackFn( - void * context, const chip::app::Clusters::ApplicationLauncher::Commands::StopApp::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/Optional;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject Application; - if (!dataResponse.application.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, Application); - } - else - { - jobject ApplicationInsideOptional; - jobject ApplicationInsideOptional_catalogVendorID; - std::string ApplicationInsideOptional_catalogVendorIDClassName = "java/lang/Integer"; - std::string ApplicationInsideOptional_catalogVendorIDCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - ApplicationInsideOptional_catalogVendorIDClassName.c_str(), - ApplicationInsideOptional_catalogVendorIDCtorSignature.c_str(), dataResponse.application.Value().catalogVendorID, - ApplicationInsideOptional_catalogVendorID); - jobject ApplicationInsideOptional_applicationID; - ApplicationInsideOptional_applicationID = - env->NewStringUTF(std::string(dataResponse.application.Value().applicationID.data(), - dataResponse.application.Value().applicationID.size()) - .c_str()); - - jclass applicationStructStructClass_1; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$ApplicationLauncherClusterApplicationStruct", applicationStructStructClass_1); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$ApplicationLauncherClusterApplicationStruct"); - return; - } - jmethodID applicationStructStructCtor_1 = - env->GetMethodID(applicationStructStructClass_1, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); - if (applicationStructStructCtor_1 == nullptr) - { - ChipLogError(Zcl, "Could not find ChipStructs$ApplicationLauncherClusterApplicationStruct constructor"); - return; - } - - ApplicationInsideOptional = - env->NewObject(applicationStructStructClass_1, applicationStructStructCtor_1, ApplicationInsideOptional_catalogVendorID, - ApplicationInsideOptional_applicationID); - chip::JniReferences::GetInstance().CreateOptional(ApplicationInsideOptional, Application); - } - - env->CallVoidMethod(javaCallbackRef, javaMethod, Application); -} -CHIPApplicationLauncherClusterHideAppCallback::CHIPApplicationLauncherClusterHideAppCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPApplicationLauncherClusterHideAppCallback::~CHIPApplicationLauncherClusterHideAppCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPApplicationLauncherClusterHideAppCallback::CallbackFn( - void * context, const chip::app::Clusters::ApplicationLauncher::Commands::HideApp::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/Optional;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject Application; - if (!dataResponse.application.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, Application); - } - else - { - jobject ApplicationInsideOptional; - jobject ApplicationInsideOptional_catalogVendorID; - std::string ApplicationInsideOptional_catalogVendorIDClassName = "java/lang/Integer"; - std::string ApplicationInsideOptional_catalogVendorIDCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - ApplicationInsideOptional_catalogVendorIDClassName.c_str(), - ApplicationInsideOptional_catalogVendorIDCtorSignature.c_str(), dataResponse.application.Value().catalogVendorID, - ApplicationInsideOptional_catalogVendorID); - jobject ApplicationInsideOptional_applicationID; - ApplicationInsideOptional_applicationID = - env->NewStringUTF(std::string(dataResponse.application.Value().applicationID.data(), - dataResponse.application.Value().applicationID.size()) - .c_str()); - - jclass applicationStructStructClass_1; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$ApplicationLauncherClusterApplicationStruct", applicationStructStructClass_1); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$ApplicationLauncherClusterApplicationStruct"); - return; - } - jmethodID applicationStructStructCtor_1 = - env->GetMethodID(applicationStructStructClass_1, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); - if (applicationStructStructCtor_1 == nullptr) - { - ChipLogError(Zcl, "Could not find ChipStructs$ApplicationLauncherClusterApplicationStruct constructor"); - return; - } - - ApplicationInsideOptional = - env->NewObject(applicationStructStructClass_1, applicationStructStructCtor_1, ApplicationInsideOptional_catalogVendorID, - ApplicationInsideOptional_applicationID); - chip::JniReferences::GetInstance().CreateOptional(ApplicationInsideOptional, Application); - } - - env->CallVoidMethod(javaCallbackRef, javaMethod, Application); -} -CHIPAccountLoginClusterGetSetupPINCallback::CHIPAccountLoginClusterGetSetupPINCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPAccountLoginClusterGetSetupPINCallback::~CHIPAccountLoginClusterGetSetupPINCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPAccountLoginClusterGetSetupPINCallback::CallbackFn( - void * context, const chip::app::Clusters::AccountLogin::Commands::GetSetupPIN::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/String;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject TempAccountIdentifier; - TempAccountIdentifier = env->NewStringUTF( - std::string(dataResponse.tempAccountIdentifier.data(), dataResponse.tempAccountIdentifier.size()).c_str()); - - env->CallVoidMethod(javaCallbackRef, javaMethod, TempAccountIdentifier); -} -CHIPAccountLoginClusterLoginCallback::CHIPAccountLoginClusterLoginCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPAccountLoginClusterLoginCallback::~CHIPAccountLoginClusterLoginCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPAccountLoginClusterLoginCallback::CallbackFn( - void * context, const chip::app::Clusters::AccountLogin::Commands::Login::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/String;Ljava/lang/String;)V", - &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject TempAccountIdentifier; - TempAccountIdentifier = env->NewStringUTF( - std::string(dataResponse.tempAccountIdentifier.data(), dataResponse.tempAccountIdentifier.size()).c_str()); - jobject SetupPIN; - SetupPIN = env->NewStringUTF(std::string(dataResponse.setupPIN.data(), dataResponse.setupPIN.size()).c_str()); - - env->CallVoidMethod(javaCallbackRef, javaMethod, TempAccountIdentifier, SetupPIN); -} -CHIPAccountLoginClusterLogoutCallback::CHIPAccountLoginClusterLogoutCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPAccountLoginClusterLogoutCallback::~CHIPAccountLoginClusterLogoutCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPAccountLoginClusterLogoutCallback::CallbackFn( - void * context, const chip::app::Clusters::AccountLogin::Commands::Logout::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - env->CallVoidMethod(javaCallbackRef, javaMethod); -} -CHIPElectricalMeasurementClusterGetProfileInfoCommandCallback::CHIPElectricalMeasurementClusterGetProfileInfoCommandCallback( - jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPElectricalMeasurementClusterGetProfileInfoCommandCallback::~CHIPElectricalMeasurementClusterGetProfileInfoCommandCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPElectricalMeasurementClusterGetProfileInfoCommandCallback::CallbackFn( - void * context, const chip::app::Clusters::ElectricalMeasurement::Commands::GetProfileInfoCommand::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - env->CallVoidMethod(javaCallbackRef, javaMethod); -} -CHIPElectricalMeasurementClusterGetMeasurementProfileCommandCallback:: - CHIPElectricalMeasurementClusterGetMeasurementProfileCommandCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPElectricalMeasurementClusterGetMeasurementProfileCommandCallback:: - ~CHIPElectricalMeasurementClusterGetMeasurementProfileCommandCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPElectricalMeasurementClusterGetMeasurementProfileCommandCallback::CallbackFn( - void * context, - const chip::app::Clusters::ElectricalMeasurement::Commands::GetMeasurementProfileCommand::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Long;Ljava/lang/Integer;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject attributeId; - std::string attributeIdClassName = "java/lang/Integer"; - std::string attributeIdCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(attributeIdClassName.c_str(), attributeIdCtorSignature.c_str(), - dataResponse.attributeId, attributeId); - jobject startTime; - std::string startTimeClassName = "java/lang/Long"; - std::string startTimeCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(startTimeClassName.c_str(), startTimeCtorSignature.c_str(), - dataResponse.startTime, startTime); - jobject numberOfIntervals; - std::string numberOfIntervalsClassName = "java/lang/Integer"; - std::string numberOfIntervalsCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(numberOfIntervalsClassName.c_str(), - numberOfIntervalsCtorSignature.c_str(), - dataResponse.numberOfIntervals, numberOfIntervals); - - env->CallVoidMethod(javaCallbackRef, javaMethod, attributeId, startTime, numberOfIntervals); -} -CHIPClientMonitoringClusterRegisterClientMonitoringCallback::CHIPClientMonitoringClusterRegisterClientMonitoringCallback( - jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPClientMonitoringClusterRegisterClientMonitoringCallback::~CHIPClientMonitoringClusterRegisterClientMonitoringCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPClientMonitoringClusterRegisterClientMonitoringCallback::CallbackFn( - void * context, const chip::app::Clusters::ClientMonitoring::Commands::RegisterClientMonitoring::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;Ljava/lang/Long;)V", - &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject ClientNodeId; - std::string ClientNodeIdClassName = "java/lang/Long"; - std::string ClientNodeIdCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(ClientNodeIdClassName.c_str(), ClientNodeIdCtorSignature.c_str(), - dataResponse.clientNodeId, ClientNodeId); - jobject ICid; - std::string ICidClassName = "java/lang/Long"; - std::string ICidCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(ICidClassName.c_str(), ICidCtorSignature.c_str(), - dataResponse.ICid, ICid); - - env->CallVoidMethod(javaCallbackRef, javaMethod, ClientNodeId, ICid); -} -CHIPClientMonitoringClusterUnregisterClientMonitoringCallback::CHIPClientMonitoringClusterUnregisterClientMonitoringCallback( - jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPClientMonitoringClusterUnregisterClientMonitoringCallback::~CHIPClientMonitoringClusterUnregisterClientMonitoringCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPClientMonitoringClusterUnregisterClientMonitoringCallback::CallbackFn( - void * context, const chip::app::Clusters::ClientMonitoring::Commands::UnregisterClientMonitoring::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;Ljava/lang/Long;)V", - &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject ClientNodeId; - std::string ClientNodeIdClassName = "java/lang/Long"; - std::string ClientNodeIdCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(ClientNodeIdClassName.c_str(), ClientNodeIdCtorSignature.c_str(), - dataResponse.clientNodeId, ClientNodeId); - jobject ICid; - std::string ICidClassName = "java/lang/Long"; - std::string ICidCtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(ICidClassName.c_str(), ICidCtorSignature.c_str(), - dataResponse.ICid, ICid); - - env->CallVoidMethod(javaCallbackRef, javaMethod, ClientNodeId, ICid); -} -CHIPClientMonitoringClusterStayAwakeRequestCallback::CHIPClientMonitoringClusterStayAwakeRequestCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPClientMonitoringClusterStayAwakeRequestCallback::~CHIPClientMonitoringClusterStayAwakeRequestCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPClientMonitoringClusterStayAwakeRequestCallback::CallbackFn( - void * context, const chip::app::Clusters::ClientMonitoring::Commands::StayAwakeRequest::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - env->CallVoidMethod(javaCallbackRef, javaMethod); -} -CHIPUnitTestingClusterTestCallback::CHIPUnitTestingClusterTestCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPUnitTestingClusterTestCallback::~CHIPUnitTestingClusterTestCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPUnitTestingClusterTestCallback::CallbackFn( - void * context, const chip::app::Clusters::UnitTesting::Commands::Test::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - env->CallVoidMethod(javaCallbackRef, javaMethod); -} -CHIPUnitTestingClusterTestNotHandledCallback::CHIPUnitTestingClusterTestNotHandledCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPUnitTestingClusterTestNotHandledCallback::~CHIPUnitTestingClusterTestNotHandledCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPUnitTestingClusterTestNotHandledCallback::CallbackFn( - void * context, const chip::app::Clusters::UnitTesting::Commands::TestNotHandled::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - env->CallVoidMethod(javaCallbackRef, javaMethod); -} -CHIPUnitTestingClusterTestSpecificCallback::CHIPUnitTestingClusterTestSpecificCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPUnitTestingClusterTestSpecificCallback::~CHIPUnitTestingClusterTestSpecificCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPUnitTestingClusterTestSpecificCallback::CallbackFn( - void * context, const chip::app::Clusters::UnitTesting::Commands::TestSpecific::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr cppCallback( - reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - env->CallVoidMethod(javaCallbackRef, javaMethod); -} -CHIPUnitTestingClusterTestUnknownCommandCallback::CHIPUnitTestingClusterTestUnknownCommandCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPUnitTestingClusterTestUnknownCommandCallback::~CHIPUnitTestingClusterTestUnknownCommandCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPUnitTestingClusterTestUnknownCommandCallback::CallbackFn( - void * context, const chip::app::Clusters::UnitTesting::Commands::TestUnknownCommand::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - env->CallVoidMethod(javaCallbackRef, javaMethod); -} -CHIPUnitTestingClusterTestAddArgumentsCallback::CHIPUnitTestingClusterTestAddArgumentsCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPUnitTestingClusterTestAddArgumentsCallback::~CHIPUnitTestingClusterTestAddArgumentsCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPUnitTestingClusterTestAddArgumentsCallback::CallbackFn( - void * context, const chip::app::Clusters::UnitTesting::Commands::TestAddArguments::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;Ljava/lang/Integer;)V", - &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject arg1; - std::string arg1ClassName = "java/lang/Integer"; - std::string arg1CtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(arg1ClassName.c_str(), arg1CtorSignature.c_str(), - dataResponse.arg1, arg1); - jobject arg2; - std::string arg2ClassName = "java/lang/Integer"; - std::string arg2CtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(arg2ClassName.c_str(), arg2CtorSignature.c_str(), - dataResponse.arg2, arg2); - - env->CallVoidMethod(javaCallbackRef, javaMethod, arg1, arg2); -} -CHIPUnitTestingClusterTestSimpleArgumentRequestCallback::CHIPUnitTestingClusterTestSimpleArgumentRequestCallback( - jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPUnitTestingClusterTestSimpleArgumentRequestCallback::~CHIPUnitTestingClusterTestSimpleArgumentRequestCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPUnitTestingClusterTestSimpleArgumentRequestCallback::CallbackFn( - void * context, const chip::app::Clusters::UnitTesting::Commands::TestSimpleArgumentRequest::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Boolean;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject arg1; - std::string arg1ClassName = "java/lang/Boolean"; - std::string arg1CtorSignature = "(Z)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(arg1ClassName.c_str(), arg1CtorSignature.c_str(), dataResponse.arg1, - arg1); - - env->CallVoidMethod(javaCallbackRef, javaMethod, arg1); -} -CHIPUnitTestingClusterTestStructArrayArgumentRequestCallback::CHIPUnitTestingClusterTestStructArrayArgumentRequestCallback( - jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPUnitTestingClusterTestStructArrayArgumentRequestCallback::~CHIPUnitTestingClusterTestStructArrayArgumentRequestCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPUnitTestingClusterTestStructArrayArgumentRequestCallback::CallbackFn( - void * context, const chip::app::Clusters::UnitTesting::Commands::TestStructArrayArgumentRequest::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", - "(Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/" - "ArrayList;Ljava/lang/Integer;Ljava/lang/Boolean;)V", - &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject arg1; - chip::JniReferences::GetInstance().CreateArrayList(arg1); - - auto iter_arg1_0 = dataResponse.arg1.begin(); - while (iter_arg1_0.Next()) - { - auto & entry_0 = iter_arg1_0.GetValue(); - jobject newElement_0; - jobject newElement_0_a; - std::string newElement_0_aClassName = "java/lang/Integer"; - std::string newElement_0_aCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_0_aClassName.c_str(), newElement_0_aCtorSignature.c_str(), entry_0.a, newElement_0_a); - jobject newElement_0_b; - std::string newElement_0_bClassName = "java/lang/Boolean"; - std::string newElement_0_bCtorSignature = "(Z)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0_bClassName.c_str(), - newElement_0_bCtorSignature.c_str(), entry_0.b, newElement_0_b); - jobject newElement_0_c; - jobject newElement_0_c_a; - std::string newElement_0_c_aClassName = "java/lang/Integer"; - std::string newElement_0_c_aCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_0_c_aClassName.c_str(), newElement_0_c_aCtorSignature.c_str(), entry_0.c.a, newElement_0_c_a); - jobject newElement_0_c_b; - std::string newElement_0_c_bClassName = "java/lang/Boolean"; - std::string newElement_0_c_bCtorSignature = "(Z)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_0_c_bClassName.c_str(), newElement_0_c_bCtorSignature.c_str(), entry_0.c.b, newElement_0_c_b); - jobject newElement_0_c_c; - std::string newElement_0_c_cClassName = "java/lang/Integer"; - std::string newElement_0_c_cCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0_c_cClassName.c_str(), - newElement_0_c_cCtorSignature.c_str(), - static_cast(entry_0.c.c), newElement_0_c_c); - jobject newElement_0_c_d; - jbyteArray newElement_0_c_dByteArray = env->NewByteArray(static_cast(entry_0.c.d.size())); - env->SetByteArrayRegion(newElement_0_c_dByteArray, 0, static_cast(entry_0.c.d.size()), - reinterpret_cast(entry_0.c.d.data())); - newElement_0_c_d = newElement_0_c_dByteArray; - jobject newElement_0_c_e; - newElement_0_c_e = env->NewStringUTF(std::string(entry_0.c.e.data(), entry_0.c.e.size()).c_str()); - jobject newElement_0_c_f; - std::string newElement_0_c_fClassName = "java/lang/Integer"; - std::string newElement_0_c_fCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_0_c_fClassName.c_str(), newElement_0_c_fCtorSignature.c_str(), entry_0.c.f.Raw(), newElement_0_c_f); - jobject newElement_0_c_g; - std::string newElement_0_c_gClassName = "java/lang/Float"; - std::string newElement_0_c_gCtorSignature = "(F)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_0_c_gClassName.c_str(), newElement_0_c_gCtorSignature.c_str(), entry_0.c.g, newElement_0_c_g); - jobject newElement_0_c_h; - std::string newElement_0_c_hClassName = "java/lang/Double"; - std::string newElement_0_c_hCtorSignature = "(D)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_0_c_hClassName.c_str(), newElement_0_c_hCtorSignature.c_str(), entry_0.c.h, newElement_0_c_h); - - jclass simpleStructStructClass_2; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$UnitTestingClusterSimpleStruct", simpleStructStructClass_2); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$UnitTestingClusterSimpleStruct"); - return; - } - jmethodID simpleStructStructCtor_2 = - env->GetMethodID(simpleStructStructClass_2, "", - "(Ljava/lang/Integer;Ljava/lang/Boolean;Ljava/lang/Integer;[BLjava/lang/String;Ljava/lang/" - "Integer;Ljava/lang/Float;Ljava/lang/Double;)V"); - if (simpleStructStructCtor_2 == nullptr) - { - ChipLogError(Zcl, "Could not find ChipStructs$UnitTestingClusterSimpleStruct constructor"); - return; - } - - newElement_0_c = env->NewObject(simpleStructStructClass_2, simpleStructStructCtor_2, newElement_0_c_a, newElement_0_c_b, - newElement_0_c_c, newElement_0_c_d, newElement_0_c_e, newElement_0_c_f, newElement_0_c_g, - newElement_0_c_h); - jobject newElement_0_d; - chip::JniReferences::GetInstance().CreateArrayList(newElement_0_d); - - auto iter_newElement_0_d_2 = entry_0.d.begin(); - while (iter_newElement_0_d_2.Next()) - { - auto & entry_2 = iter_newElement_0_d_2.GetValue(); - jobject newElement_2; - jobject newElement_2_a; - std::string newElement_2_aClassName = "java/lang/Integer"; - std::string newElement_2_aCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_2_aClassName.c_str(), newElement_2_aCtorSignature.c_str(), entry_2.a, newElement_2_a); - jobject newElement_2_b; - std::string newElement_2_bClassName = "java/lang/Boolean"; - std::string newElement_2_bCtorSignature = "(Z)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_2_bClassName.c_str(), newElement_2_bCtorSignature.c_str(), entry_2.b, newElement_2_b); - jobject newElement_2_c; - std::string newElement_2_cClassName = "java/lang/Integer"; - std::string newElement_2_cCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(newElement_2_cClassName.c_str(), - newElement_2_cCtorSignature.c_str(), - static_cast(entry_2.c), newElement_2_c); - jobject newElement_2_d; - jbyteArray newElement_2_dByteArray = env->NewByteArray(static_cast(entry_2.d.size())); - env->SetByteArrayRegion(newElement_2_dByteArray, 0, static_cast(entry_2.d.size()), - reinterpret_cast(entry_2.d.data())); - newElement_2_d = newElement_2_dByteArray; - jobject newElement_2_e; - newElement_2_e = env->NewStringUTF(std::string(entry_2.e.data(), entry_2.e.size()).c_str()); - jobject newElement_2_f; - std::string newElement_2_fClassName = "java/lang/Integer"; - std::string newElement_2_fCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_2_fClassName.c_str(), newElement_2_fCtorSignature.c_str(), entry_2.f.Raw(), newElement_2_f); - jobject newElement_2_g; - std::string newElement_2_gClassName = "java/lang/Float"; - std::string newElement_2_gCtorSignature = "(F)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_2_gClassName.c_str(), newElement_2_gCtorSignature.c_str(), entry_2.g, newElement_2_g); - jobject newElement_2_h; - std::string newElement_2_hClassName = "java/lang/Double"; - std::string newElement_2_hCtorSignature = "(D)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_2_hClassName.c_str(), newElement_2_hCtorSignature.c_str(), entry_2.h, newElement_2_h); - - jclass simpleStructStructClass_3; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$UnitTestingClusterSimpleStruct", simpleStructStructClass_3); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$UnitTestingClusterSimpleStruct"); - return; - } - jmethodID simpleStructStructCtor_3 = - env->GetMethodID(simpleStructStructClass_3, "", - "(Ljava/lang/Integer;Ljava/lang/Boolean;Ljava/lang/Integer;[BLjava/lang/String;Ljava/lang/" - "Integer;Ljava/lang/Float;Ljava/lang/Double;)V"); - if (simpleStructStructCtor_3 == nullptr) - { - ChipLogError(Zcl, "Could not find ChipStructs$UnitTestingClusterSimpleStruct constructor"); - return; - } - - newElement_2 = - env->NewObject(simpleStructStructClass_3, simpleStructStructCtor_3, newElement_2_a, newElement_2_b, newElement_2_c, - newElement_2_d, newElement_2_e, newElement_2_f, newElement_2_g, newElement_2_h); - chip::JniReferences::GetInstance().AddToList(newElement_0_d, newElement_2); - } - jobject newElement_0_e; - chip::JniReferences::GetInstance().CreateArrayList(newElement_0_e); - - auto iter_newElement_0_e_2 = entry_0.e.begin(); - while (iter_newElement_0_e_2.Next()) - { - auto & entry_2 = iter_newElement_0_e_2.GetValue(); - jobject newElement_2; - std::string newElement_2ClassName = "java/lang/Long"; - std::string newElement_2CtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_2ClassName.c_str(), newElement_2CtorSignature.c_str(), entry_2, newElement_2); - chip::JniReferences::GetInstance().AddToList(newElement_0_e, newElement_2); - } - jobject newElement_0_f; - chip::JniReferences::GetInstance().CreateArrayList(newElement_0_f); - - auto iter_newElement_0_f_2 = entry_0.f.begin(); - while (iter_newElement_0_f_2.Next()) - { - auto & entry_2 = iter_newElement_0_f_2.GetValue(); - jobject newElement_2; - jbyteArray newElement_2ByteArray = env->NewByteArray(static_cast(entry_2.size())); - env->SetByteArrayRegion(newElement_2ByteArray, 0, static_cast(entry_2.size()), - reinterpret_cast(entry_2.data())); - newElement_2 = newElement_2ByteArray; - chip::JniReferences::GetInstance().AddToList(newElement_0_f, newElement_2); - } - jobject newElement_0_g; - chip::JniReferences::GetInstance().CreateArrayList(newElement_0_g); - - auto iter_newElement_0_g_2 = entry_0.g.begin(); - while (iter_newElement_0_g_2.Next()) - { - auto & entry_2 = iter_newElement_0_g_2.GetValue(); - jobject newElement_2; - std::string newElement_2ClassName = "java/lang/Integer"; - std::string newElement_2CtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(newElement_2ClassName.c_str(), - newElement_2CtorSignature.c_str(), entry_2, newElement_2); - chip::JniReferences::GetInstance().AddToList(newElement_0_g, newElement_2); - } - - jclass nestedStructListStructClass_1; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$UnitTestingClusterNestedStructList", nestedStructListStructClass_1); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$UnitTestingClusterNestedStructList"); - return; - } - jmethodID nestedStructListStructCtor_1 = env->GetMethodID( - nestedStructListStructClass_1, "", - "(Ljava/lang/Integer;Ljava/lang/Boolean;Lchip/devicecontroller/ChipStructs$UnitTestingClusterSimpleStruct;Ljava/util/" - "ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;)V"); - if (nestedStructListStructCtor_1 == nullptr) - { - ChipLogError(Zcl, "Could not find ChipStructs$UnitTestingClusterNestedStructList constructor"); - return; - } - - newElement_0 = env->NewObject(nestedStructListStructClass_1, nestedStructListStructCtor_1, newElement_0_a, newElement_0_b, - newElement_0_c, newElement_0_d, newElement_0_e, newElement_0_f, newElement_0_g); - chip::JniReferences::GetInstance().AddToList(arg1, newElement_0); - } - jobject arg2; - chip::JniReferences::GetInstance().CreateArrayList(arg2); - - auto iter_arg2_0 = dataResponse.arg2.begin(); - while (iter_arg2_0.Next()) - { - auto & entry_0 = iter_arg2_0.GetValue(); - jobject newElement_0; - jobject newElement_0_a; - std::string newElement_0_aClassName = "java/lang/Integer"; - std::string newElement_0_aCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_0_aClassName.c_str(), newElement_0_aCtorSignature.c_str(), entry_0.a, newElement_0_a); - jobject newElement_0_b; - std::string newElement_0_bClassName = "java/lang/Boolean"; - std::string newElement_0_bCtorSignature = "(Z)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0_bClassName.c_str(), - newElement_0_bCtorSignature.c_str(), entry_0.b, newElement_0_b); - jobject newElement_0_c; - std::string newElement_0_cClassName = "java/lang/Integer"; - std::string newElement_0_cCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_0_cClassName.c_str(), newElement_0_cCtorSignature.c_str(), static_cast(entry_0.c), newElement_0_c); - jobject newElement_0_d; - jbyteArray newElement_0_dByteArray = env->NewByteArray(static_cast(entry_0.d.size())); - env->SetByteArrayRegion(newElement_0_dByteArray, 0, static_cast(entry_0.d.size()), - reinterpret_cast(entry_0.d.data())); - newElement_0_d = newElement_0_dByteArray; - jobject newElement_0_e; - newElement_0_e = env->NewStringUTF(std::string(entry_0.e.data(), entry_0.e.size()).c_str()); - jobject newElement_0_f; - std::string newElement_0_fClassName = "java/lang/Integer"; - std::string newElement_0_fCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_0_fClassName.c_str(), newElement_0_fCtorSignature.c_str(), entry_0.f.Raw(), newElement_0_f); - jobject newElement_0_g; - std::string newElement_0_gClassName = "java/lang/Float"; - std::string newElement_0_gCtorSignature = "(F)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0_gClassName.c_str(), - newElement_0_gCtorSignature.c_str(), entry_0.g, newElement_0_g); - jobject newElement_0_h; - std::string newElement_0_hClassName = "java/lang/Double"; - std::string newElement_0_hCtorSignature = "(D)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_0_hClassName.c_str(), newElement_0_hCtorSignature.c_str(), entry_0.h, newElement_0_h); - - jclass simpleStructStructClass_1; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$UnitTestingClusterSimpleStruct", simpleStructStructClass_1); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$UnitTestingClusterSimpleStruct"); - return; - } - jmethodID simpleStructStructCtor_1 = - env->GetMethodID(simpleStructStructClass_1, "", - "(Ljava/lang/Integer;Ljava/lang/Boolean;Ljava/lang/Integer;[BLjava/lang/String;Ljava/lang/" - "Integer;Ljava/lang/Float;Ljava/lang/Double;)V"); - if (simpleStructStructCtor_1 == nullptr) - { - ChipLogError(Zcl, "Could not find ChipStructs$UnitTestingClusterSimpleStruct constructor"); - return; - } - - newElement_0 = - env->NewObject(simpleStructStructClass_1, simpleStructStructCtor_1, newElement_0_a, newElement_0_b, newElement_0_c, - newElement_0_d, newElement_0_e, newElement_0_f, newElement_0_g, newElement_0_h); - chip::JniReferences::GetInstance().AddToList(arg2, newElement_0); - } - jobject arg3; - chip::JniReferences::GetInstance().CreateArrayList(arg3); - - auto iter_arg3_0 = dataResponse.arg3.begin(); - while (iter_arg3_0.Next()) - { - auto & entry_0 = iter_arg3_0.GetValue(); - jobject newElement_0; - std::string newElement_0ClassName = "java/lang/Integer"; - std::string newElement_0CtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), static_cast(entry_0), newElement_0); - chip::JniReferences::GetInstance().AddToList(arg3, newElement_0); - } - jobject arg4; - chip::JniReferences::GetInstance().CreateArrayList(arg4); - - auto iter_arg4_0 = dataResponse.arg4.begin(); - while (iter_arg4_0.Next()) - { - auto & entry_0 = iter_arg4_0.GetValue(); - jobject newElement_0; - std::string newElement_0ClassName = "java/lang/Boolean"; - std::string newElement_0CtorSignature = "(Z)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), - entry_0, newElement_0); - chip::JniReferences::GetInstance().AddToList(arg4, newElement_0); - } - jobject arg5; - std::string arg5ClassName = "java/lang/Integer"; - std::string arg5CtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(arg5ClassName.c_str(), arg5CtorSignature.c_str(), - static_cast(dataResponse.arg5), arg5); - jobject arg6; - std::string arg6ClassName = "java/lang/Boolean"; - std::string arg6CtorSignature = "(Z)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(arg6ClassName.c_str(), arg6CtorSignature.c_str(), dataResponse.arg6, - arg6); - - env->CallVoidMethod(javaCallbackRef, javaMethod, arg1, arg2, arg3, arg4, arg5, arg6); -} -CHIPUnitTestingClusterTestStructArgumentRequestCallback::CHIPUnitTestingClusterTestStructArgumentRequestCallback( - jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPUnitTestingClusterTestStructArgumentRequestCallback::~CHIPUnitTestingClusterTestStructArgumentRequestCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPUnitTestingClusterTestStructArgumentRequestCallback::CallbackFn( - void * context, const chip::app::Clusters::UnitTesting::Commands::TestStructArgumentRequest::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod( - env, javaCallbackRef, "onSuccess", "(Lchip/devicecontroller/ChipStructs$UnitTestingClusterSimpleStruct;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject arg1; - jobject arg1_a; - std::string arg1_aClassName = "java/lang/Integer"; - std::string arg1_aCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(arg1_aClassName.c_str(), arg1_aCtorSignature.c_str(), - dataResponse.arg1.a, arg1_a); - jobject arg1_b; - std::string arg1_bClassName = "java/lang/Boolean"; - std::string arg1_bCtorSignature = "(Z)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(arg1_bClassName.c_str(), arg1_bCtorSignature.c_str(), - dataResponse.arg1.b, arg1_b); - jobject arg1_c; - std::string arg1_cClassName = "java/lang/Integer"; - std::string arg1_cCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(arg1_cClassName.c_str(), arg1_cCtorSignature.c_str(), - static_cast(dataResponse.arg1.c), arg1_c); - jobject arg1_d; - jbyteArray arg1_dByteArray = env->NewByteArray(static_cast(dataResponse.arg1.d.size())); - env->SetByteArrayRegion(arg1_dByteArray, 0, static_cast(dataResponse.arg1.d.size()), - reinterpret_cast(dataResponse.arg1.d.data())); - arg1_d = arg1_dByteArray; - jobject arg1_e; - arg1_e = env->NewStringUTF(std::string(dataResponse.arg1.e.data(), dataResponse.arg1.e.size()).c_str()); - jobject arg1_f; - std::string arg1_fClassName = "java/lang/Integer"; - std::string arg1_fCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(arg1_fClassName.c_str(), arg1_fCtorSignature.c_str(), - dataResponse.arg1.f.Raw(), arg1_f); - jobject arg1_g; - std::string arg1_gClassName = "java/lang/Float"; - std::string arg1_gCtorSignature = "(F)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(arg1_gClassName.c_str(), arg1_gCtorSignature.c_str(), - dataResponse.arg1.g, arg1_g); - jobject arg1_h; - std::string arg1_hClassName = "java/lang/Double"; - std::string arg1_hCtorSignature = "(D)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(arg1_hClassName.c_str(), arg1_hCtorSignature.c_str(), - dataResponse.arg1.h, arg1_h); - - jclass simpleStructStructClass_0; - err = chip::JniReferences::GetInstance().GetClassRef(env, "chip/devicecontroller/ChipStructs$UnitTestingClusterSimpleStruct", - simpleStructStructClass_0); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$UnitTestingClusterSimpleStruct"); - return; - } - jmethodID simpleStructStructCtor_0 = env->GetMethodID(simpleStructStructClass_0, "", - "(Ljava/lang/Integer;Ljava/lang/Boolean;Ljava/lang/Integer;[BLjava/lang/" - "String;Ljava/lang/Integer;Ljava/lang/Float;Ljava/lang/Double;)V"); - if (simpleStructStructCtor_0 == nullptr) - { - ChipLogError(Zcl, "Could not find ChipStructs$UnitTestingClusterSimpleStruct constructor"); - return; - } - - arg1 = env->NewObject(simpleStructStructClass_0, simpleStructStructCtor_0, arg1_a, arg1_b, arg1_c, arg1_d, arg1_e, arg1_f, - arg1_g, arg1_h); - - env->CallVoidMethod(javaCallbackRef, javaMethod, arg1); -} -CHIPUnitTestingClusterTestNestedStructArgumentRequestCallback::CHIPUnitTestingClusterTestNestedStructArgumentRequestCallback( - jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPUnitTestingClusterTestNestedStructArgumentRequestCallback::~CHIPUnitTestingClusterTestNestedStructArgumentRequestCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPUnitTestingClusterTestNestedStructArgumentRequestCallback::CallbackFn( - void * context, const chip::app::Clusters::UnitTesting::Commands::TestNestedStructArgumentRequest::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod( - env, javaCallbackRef, "onSuccess", "(Lchip/devicecontroller/ChipStructs$UnitTestingClusterNestedStruct;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject arg1; - jobject arg1_a; - std::string arg1_aClassName = "java/lang/Integer"; - std::string arg1_aCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(arg1_aClassName.c_str(), arg1_aCtorSignature.c_str(), - dataResponse.arg1.a, arg1_a); - jobject arg1_b; - std::string arg1_bClassName = "java/lang/Boolean"; - std::string arg1_bCtorSignature = "(Z)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(arg1_bClassName.c_str(), arg1_bCtorSignature.c_str(), - dataResponse.arg1.b, arg1_b); - jobject arg1_c; - jobject arg1_c_a; - std::string arg1_c_aClassName = "java/lang/Integer"; - std::string arg1_c_aCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(arg1_c_aClassName.c_str(), arg1_c_aCtorSignature.c_str(), - dataResponse.arg1.c.a, arg1_c_a); - jobject arg1_c_b; - std::string arg1_c_bClassName = "java/lang/Boolean"; - std::string arg1_c_bCtorSignature = "(Z)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(arg1_c_bClassName.c_str(), arg1_c_bCtorSignature.c_str(), - dataResponse.arg1.c.b, arg1_c_b); - jobject arg1_c_c; - std::string arg1_c_cClassName = "java/lang/Integer"; - std::string arg1_c_cCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(arg1_c_cClassName.c_str(), arg1_c_cCtorSignature.c_str(), - static_cast(dataResponse.arg1.c.c), arg1_c_c); - jobject arg1_c_d; - jbyteArray arg1_c_dByteArray = env->NewByteArray(static_cast(dataResponse.arg1.c.d.size())); - env->SetByteArrayRegion(arg1_c_dByteArray, 0, static_cast(dataResponse.arg1.c.d.size()), - reinterpret_cast(dataResponse.arg1.c.d.data())); - arg1_c_d = arg1_c_dByteArray; - jobject arg1_c_e; - arg1_c_e = env->NewStringUTF(std::string(dataResponse.arg1.c.e.data(), dataResponse.arg1.c.e.size()).c_str()); - jobject arg1_c_f; - std::string arg1_c_fClassName = "java/lang/Integer"; - std::string arg1_c_fCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(arg1_c_fClassName.c_str(), arg1_c_fCtorSignature.c_str(), - dataResponse.arg1.c.f.Raw(), arg1_c_f); - jobject arg1_c_g; - std::string arg1_c_gClassName = "java/lang/Float"; - std::string arg1_c_gCtorSignature = "(F)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(arg1_c_gClassName.c_str(), arg1_c_gCtorSignature.c_str(), - dataResponse.arg1.c.g, arg1_c_g); - jobject arg1_c_h; - std::string arg1_c_hClassName = "java/lang/Double"; - std::string arg1_c_hCtorSignature = "(D)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(arg1_c_hClassName.c_str(), arg1_c_hCtorSignature.c_str(), - dataResponse.arg1.c.h, arg1_c_h); - - jclass simpleStructStructClass_1; - err = chip::JniReferences::GetInstance().GetClassRef(env, "chip/devicecontroller/ChipStructs$UnitTestingClusterSimpleStruct", - simpleStructStructClass_1); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$UnitTestingClusterSimpleStruct"); - return; - } - jmethodID simpleStructStructCtor_1 = env->GetMethodID(simpleStructStructClass_1, "", - "(Ljava/lang/Integer;Ljava/lang/Boolean;Ljava/lang/Integer;[BLjava/lang/" - "String;Ljava/lang/Integer;Ljava/lang/Float;Ljava/lang/Double;)V"); - if (simpleStructStructCtor_1 == nullptr) - { - ChipLogError(Zcl, "Could not find ChipStructs$UnitTestingClusterSimpleStruct constructor"); - return; - } - - arg1_c = env->NewObject(simpleStructStructClass_1, simpleStructStructCtor_1, arg1_c_a, arg1_c_b, arg1_c_c, arg1_c_d, arg1_c_e, - arg1_c_f, arg1_c_g, arg1_c_h); - - jclass nestedStructStructClass_0; - err = chip::JniReferences::GetInstance().GetClassRef(env, "chip/devicecontroller/ChipStructs$UnitTestingClusterNestedStruct", - nestedStructStructClass_0); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$UnitTestingClusterNestedStruct"); - return; - } - jmethodID nestedStructStructCtor_0 = env->GetMethodID( - nestedStructStructClass_0, "", - "(Ljava/lang/Integer;Ljava/lang/Boolean;Lchip/devicecontroller/ChipStructs$UnitTestingClusterSimpleStruct;)V"); - if (nestedStructStructCtor_0 == nullptr) - { - ChipLogError(Zcl, "Could not find ChipStructs$UnitTestingClusterNestedStruct constructor"); - return; - } - - arg1 = env->NewObject(nestedStructStructClass_0, nestedStructStructCtor_0, arg1_a, arg1_b, arg1_c); - - env->CallVoidMethod(javaCallbackRef, javaMethod, arg1); -} -CHIPUnitTestingClusterTestListStructArgumentRequestCallback::CHIPUnitTestingClusterTestListStructArgumentRequestCallback( - jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPUnitTestingClusterTestListStructArgumentRequestCallback::~CHIPUnitTestingClusterTestListStructArgumentRequestCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPUnitTestingClusterTestListStructArgumentRequestCallback::CallbackFn( - void * context, const chip::app::Clusters::UnitTesting::Commands::TestListStructArgumentRequest::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/ArrayList;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject arg1; - chip::JniReferences::GetInstance().CreateArrayList(arg1); - - auto iter_arg1_0 = dataResponse.arg1.begin(); - while (iter_arg1_0.Next()) - { - auto & entry_0 = iter_arg1_0.GetValue(); - jobject newElement_0; - jobject newElement_0_a; - std::string newElement_0_aClassName = "java/lang/Integer"; - std::string newElement_0_aCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_0_aClassName.c_str(), newElement_0_aCtorSignature.c_str(), entry_0.a, newElement_0_a); - jobject newElement_0_b; - std::string newElement_0_bClassName = "java/lang/Boolean"; - std::string newElement_0_bCtorSignature = "(Z)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0_bClassName.c_str(), - newElement_0_bCtorSignature.c_str(), entry_0.b, newElement_0_b); - jobject newElement_0_c; - std::string newElement_0_cClassName = "java/lang/Integer"; - std::string newElement_0_cCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_0_cClassName.c_str(), newElement_0_cCtorSignature.c_str(), static_cast(entry_0.c), newElement_0_c); - jobject newElement_0_d; - jbyteArray newElement_0_dByteArray = env->NewByteArray(static_cast(entry_0.d.size())); - env->SetByteArrayRegion(newElement_0_dByteArray, 0, static_cast(entry_0.d.size()), - reinterpret_cast(entry_0.d.data())); - newElement_0_d = newElement_0_dByteArray; - jobject newElement_0_e; - newElement_0_e = env->NewStringUTF(std::string(entry_0.e.data(), entry_0.e.size()).c_str()); - jobject newElement_0_f; - std::string newElement_0_fClassName = "java/lang/Integer"; - std::string newElement_0_fCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_0_fClassName.c_str(), newElement_0_fCtorSignature.c_str(), entry_0.f.Raw(), newElement_0_f); - jobject newElement_0_g; - std::string newElement_0_gClassName = "java/lang/Float"; - std::string newElement_0_gCtorSignature = "(F)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0_gClassName.c_str(), - newElement_0_gCtorSignature.c_str(), entry_0.g, newElement_0_g); - jobject newElement_0_h; - std::string newElement_0_hClassName = "java/lang/Double"; - std::string newElement_0_hCtorSignature = "(D)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_0_hClassName.c_str(), newElement_0_hCtorSignature.c_str(), entry_0.h, newElement_0_h); - - jclass simpleStructStructClass_1; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$UnitTestingClusterSimpleStruct", simpleStructStructClass_1); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$UnitTestingClusterSimpleStruct"); - return; - } - jmethodID simpleStructStructCtor_1 = - env->GetMethodID(simpleStructStructClass_1, "", - "(Ljava/lang/Integer;Ljava/lang/Boolean;Ljava/lang/Integer;[BLjava/lang/String;Ljava/lang/" - "Integer;Ljava/lang/Float;Ljava/lang/Double;)V"); - if (simpleStructStructCtor_1 == nullptr) - { - ChipLogError(Zcl, "Could not find ChipStructs$UnitTestingClusterSimpleStruct constructor"); - return; - } + numberOfIntervalsDeliveredClassName.c_str(), numberOfIntervalsDeliveredCtorSignature.c_str(), + dataResponse.numberOfIntervalsDelivered, numberOfIntervalsDelivered); + jobject attributeId; + std::string attributeIdClassName = "java/lang/Integer"; + std::string attributeIdCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(attributeIdClassName.c_str(), attributeIdCtorSignature.c_str(), + dataResponse.attributeId, attributeId); + jobject intervals; + chip::JniReferences::GetInstance().CreateArrayList(intervals); - newElement_0 = - env->NewObject(simpleStructStructClass_1, simpleStructStructCtor_1, newElement_0_a, newElement_0_b, newElement_0_c, - newElement_0_d, newElement_0_e, newElement_0_f, newElement_0_g, newElement_0_h); - chip::JniReferences::GetInstance().AddToList(arg1, newElement_0); + auto iter_intervals_0 = dataResponse.intervals.begin(); + while (iter_intervals_0.Next()) + { + auto & entry_0 = iter_intervals_0.GetValue(); + jobject newElement_0; + std::string newElement_0ClassName = "java/lang/Integer"; + std::string newElement_0CtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0ClassName.c_str(), + newElement_0CtorSignature.c_str(), entry_0, newElement_0); + chip::JniReferences::GetInstance().AddToList(intervals, newElement_0); } - env->CallVoidMethod(javaCallbackRef, javaMethod, arg1); + env->CallVoidMethod(javaCallbackRef, javaMethod, startTime, status, profileIntervalPeriod, numberOfIntervalsDelivered, + attributeId, intervals); } -CHIPUnitTestingClusterTestListInt8UArgumentRequestCallback::CHIPUnitTestingClusterTestListInt8UArgumentRequestCallback( - jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPUnitTestingClusterTestSpecificResponseCallback::CHIPUnitTestingClusterTestSpecificResponseCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -13965,7 +4312,7 @@ CHIPUnitTestingClusterTestListInt8UArgumentRequestCallback::CHIPUnitTestingClust } } -CHIPUnitTestingClusterTestListInt8UArgumentRequestCallback::~CHIPUnitTestingClusterTestListInt8UArgumentRequestCallback() +CHIPUnitTestingClusterTestSpecificResponseCallback::~CHIPUnitTestingClusterTestSpecificResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -13976,8 +4323,8 @@ CHIPUnitTestingClusterTestListInt8UArgumentRequestCallback::~CHIPUnitTestingClus env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPUnitTestingClusterTestListInt8UArgumentRequestCallback::CallbackFn( - void * context, const chip::app::Clusters::UnitTesting::Commands::TestListInt8UArgumentRequest::DecodableType & dataResponse) +void CHIPUnitTestingClusterTestSpecificResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::UnitTesting::Commands::TestSpecificResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -13987,39 +4334,30 @@ void CHIPUnitTestingClusterTestListInt8UArgumentRequestCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/ArrayList;)V", &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject arg1; - chip::JniReferences::GetInstance().CreateArrayList(arg1); - - auto iter_arg1_0 = dataResponse.arg1.begin(); - while (iter_arg1_0.Next()) - { - auto & entry_0 = iter_arg1_0.GetValue(); - jobject newElement_0; - std::string newElement_0ClassName = "java/lang/Integer"; - std::string newElement_0CtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0ClassName.c_str(), - newElement_0CtorSignature.c_str(), entry_0, newElement_0); - chip::JniReferences::GetInstance().AddToList(arg1, newElement_0); - } + jobject returnValue; + std::string returnValueClassName = "java/lang/Integer"; + std::string returnValueCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(returnValueClassName.c_str(), returnValueCtorSignature.c_str(), + dataResponse.returnValue, returnValue); - env->CallVoidMethod(javaCallbackRef, javaMethod, arg1); + env->CallVoidMethod(javaCallbackRef, javaMethod, returnValue); } -CHIPUnitTestingClusterTestNestedStructListArgumentRequestCallback:: - CHIPUnitTestingClusterTestNestedStructListArgumentRequestCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPUnitTestingClusterTestAddArgumentsResponseCallback::CHIPUnitTestingClusterTestAddArgumentsResponseCallback( + jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -14035,8 +4373,7 @@ CHIPUnitTestingClusterTestNestedStructListArgumentRequestCallback:: } } -CHIPUnitTestingClusterTestNestedStructListArgumentRequestCallback:: - ~CHIPUnitTestingClusterTestNestedStructListArgumentRequestCallback() +CHIPUnitTestingClusterTestAddArgumentsResponseCallback::~CHIPUnitTestingClusterTestAddArgumentsResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -14047,9 +4384,8 @@ CHIPUnitTestingClusterTestNestedStructListArgumentRequestCallback:: env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPUnitTestingClusterTestNestedStructListArgumentRequestCallback::CallbackFn( - void * context, - const chip::app::Clusters::UnitTesting::Commands::TestNestedStructListArgumentRequest::DecodableType & dataResponse) +void CHIPUnitTestingClusterTestAddArgumentsResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::UnitTesting::Commands::TestAddArgumentsResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -14059,228 +4395,91 @@ void CHIPUnitTestingClusterTestNestedStructListArgumentRequestCallback::Callback VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", - "(Lchip/devicecontroller/ChipStructs$UnitTestingClusterNestedStructList;)V", - &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject arg1; - jobject arg1_a; - std::string arg1_aClassName = "java/lang/Integer"; - std::string arg1_aCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(arg1_aClassName.c_str(), arg1_aCtorSignature.c_str(), - dataResponse.arg1.a, arg1_a); - jobject arg1_b; - std::string arg1_bClassName = "java/lang/Boolean"; - std::string arg1_bCtorSignature = "(Z)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(arg1_bClassName.c_str(), arg1_bCtorSignature.c_str(), - dataResponse.arg1.b, arg1_b); - jobject arg1_c; - jobject arg1_c_a; - std::string arg1_c_aClassName = "java/lang/Integer"; - std::string arg1_c_aCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(arg1_c_aClassName.c_str(), arg1_c_aCtorSignature.c_str(), - dataResponse.arg1.c.a, arg1_c_a); - jobject arg1_c_b; - std::string arg1_c_bClassName = "java/lang/Boolean"; - std::string arg1_c_bCtorSignature = "(Z)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(arg1_c_bClassName.c_str(), arg1_c_bCtorSignature.c_str(), - dataResponse.arg1.c.b, arg1_c_b); - jobject arg1_c_c; - std::string arg1_c_cClassName = "java/lang/Integer"; - std::string arg1_c_cCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(arg1_c_cClassName.c_str(), arg1_c_cCtorSignature.c_str(), - static_cast(dataResponse.arg1.c.c), arg1_c_c); - jobject arg1_c_d; - jbyteArray arg1_c_dByteArray = env->NewByteArray(static_cast(dataResponse.arg1.c.d.size())); - env->SetByteArrayRegion(arg1_c_dByteArray, 0, static_cast(dataResponse.arg1.c.d.size()), - reinterpret_cast(dataResponse.arg1.c.d.data())); - arg1_c_d = arg1_c_dByteArray; - jobject arg1_c_e; - arg1_c_e = env->NewStringUTF(std::string(dataResponse.arg1.c.e.data(), dataResponse.arg1.c.e.size()).c_str()); - jobject arg1_c_f; - std::string arg1_c_fClassName = "java/lang/Integer"; - std::string arg1_c_fCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(arg1_c_fClassName.c_str(), arg1_c_fCtorSignature.c_str(), - dataResponse.arg1.c.f.Raw(), arg1_c_f); - jobject arg1_c_g; - std::string arg1_c_gClassName = "java/lang/Float"; - std::string arg1_c_gCtorSignature = "(F)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(arg1_c_gClassName.c_str(), arg1_c_gCtorSignature.c_str(), - dataResponse.arg1.c.g, arg1_c_g); - jobject arg1_c_h; - std::string arg1_c_hClassName = "java/lang/Double"; - std::string arg1_c_hCtorSignature = "(D)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(arg1_c_hClassName.c_str(), arg1_c_hCtorSignature.c_str(), - dataResponse.arg1.c.h, arg1_c_h); - - jclass simpleStructStructClass_1; - err = chip::JniReferences::GetInstance().GetClassRef(env, "chip/devicecontroller/ChipStructs$UnitTestingClusterSimpleStruct", - simpleStructStructClass_1); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$UnitTestingClusterSimpleStruct"); - return; - } - jmethodID simpleStructStructCtor_1 = env->GetMethodID(simpleStructStructClass_1, "", - "(Ljava/lang/Integer;Ljava/lang/Boolean;Ljava/lang/Integer;[BLjava/lang/" - "String;Ljava/lang/Integer;Ljava/lang/Float;Ljava/lang/Double;)V"); - if (simpleStructStructCtor_1 == nullptr) + jobject returnValue; + std::string returnValueClassName = "java/lang/Integer"; + std::string returnValueCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(returnValueClassName.c_str(), returnValueCtorSignature.c_str(), + dataResponse.returnValue, returnValue); + + env->CallVoidMethod(javaCallbackRef, javaMethod, returnValue); +} +CHIPUnitTestingClusterTestSimpleArgumentResponseCallback::CHIPUnitTestingClusterTestSimpleArgumentResponseCallback( + jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) { - ChipLogError(Zcl, "Could not find ChipStructs$UnitTestingClusterSimpleStruct constructor"); + ChipLogError(Zcl, "Could not create global reference for Java callback"); return; } - arg1_c = env->NewObject(simpleStructStructClass_1, simpleStructStructCtor_1, arg1_c_a, arg1_c_b, arg1_c_c, arg1_c_d, arg1_c_e, - arg1_c_f, arg1_c_g, arg1_c_h); - jobject arg1_d; - chip::JniReferences::GetInstance().CreateArrayList(arg1_d); - - auto iter_arg1_d_1 = dataResponse.arg1.d.begin(); - while (iter_arg1_d_1.Next()) + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) { - auto & entry_1 = iter_arg1_d_1.GetValue(); - jobject newElement_1; - jobject newElement_1_a; - std::string newElement_1_aClassName = "java/lang/Integer"; - std::string newElement_1_aCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_1_aClassName.c_str(), newElement_1_aCtorSignature.c_str(), entry_1.a, newElement_1_a); - jobject newElement_1_b; - std::string newElement_1_bClassName = "java/lang/Boolean"; - std::string newElement_1_bCtorSignature = "(Z)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(newElement_1_bClassName.c_str(), - newElement_1_bCtorSignature.c_str(), entry_1.b, newElement_1_b); - jobject newElement_1_c; - std::string newElement_1_cClassName = "java/lang/Integer"; - std::string newElement_1_cCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_1_cClassName.c_str(), newElement_1_cCtorSignature.c_str(), static_cast(entry_1.c), newElement_1_c); - jobject newElement_1_d; - jbyteArray newElement_1_dByteArray = env->NewByteArray(static_cast(entry_1.d.size())); - env->SetByteArrayRegion(newElement_1_dByteArray, 0, static_cast(entry_1.d.size()), - reinterpret_cast(entry_1.d.data())); - newElement_1_d = newElement_1_dByteArray; - jobject newElement_1_e; - newElement_1_e = env->NewStringUTF(std::string(entry_1.e.data(), entry_1.e.size()).c_str()); - jobject newElement_1_f; - std::string newElement_1_fClassName = "java/lang/Integer"; - std::string newElement_1_fCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_1_fClassName.c_str(), newElement_1_fCtorSignature.c_str(), entry_1.f.Raw(), newElement_1_f); - jobject newElement_1_g; - std::string newElement_1_gClassName = "java/lang/Float"; - std::string newElement_1_gCtorSignature = "(F)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(newElement_1_gClassName.c_str(), - newElement_1_gCtorSignature.c_str(), entry_1.g, newElement_1_g); - jobject newElement_1_h; - std::string newElement_1_hClassName = "java/lang/Double"; - std::string newElement_1_hCtorSignature = "(D)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_1_hClassName.c_str(), newElement_1_hCtorSignature.c_str(), entry_1.h, newElement_1_h); - - jclass simpleStructStructClass_2; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$UnitTestingClusterSimpleStruct", simpleStructStructClass_2); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$UnitTestingClusterSimpleStruct"); - return; - } - jmethodID simpleStructStructCtor_2 = - env->GetMethodID(simpleStructStructClass_2, "", - "(Ljava/lang/Integer;Ljava/lang/Boolean;Ljava/lang/Integer;[BLjava/lang/String;Ljava/lang/" - "Integer;Ljava/lang/Float;Ljava/lang/Double;)V"); - if (simpleStructStructCtor_2 == nullptr) - { - ChipLogError(Zcl, "Could not find ChipStructs$UnitTestingClusterSimpleStruct constructor"); - return; - } - - newElement_1 = - env->NewObject(simpleStructStructClass_2, simpleStructStructCtor_2, newElement_1_a, newElement_1_b, newElement_1_c, - newElement_1_d, newElement_1_e, newElement_1_f, newElement_1_g, newElement_1_h); - chip::JniReferences::GetInstance().AddToList(arg1_d, newElement_1); + ChipLogError(Zcl, "Could not create global reference for Java callback"); } - jobject arg1_e; - chip::JniReferences::GetInstance().CreateArrayList(arg1_e); +} - auto iter_arg1_e_1 = dataResponse.arg1.e.begin(); - while (iter_arg1_e_1.Next()) +CHIPUnitTestingClusterTestSimpleArgumentResponseCallback::~CHIPUnitTestingClusterTestSimpleArgumentResponseCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) { - auto & entry_1 = iter_arg1_e_1.GetValue(); - jobject newElement_1; - std::string newElement_1ClassName = "java/lang/Long"; - std::string newElement_1CtorSignature = "(J)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(newElement_1ClassName.c_str(), - newElement_1CtorSignature.c_str(), entry_1, newElement_1); - chip::JniReferences::GetInstance().AddToList(arg1_e, newElement_1); + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; } - jobject arg1_f; - chip::JniReferences::GetInstance().CreateArrayList(arg1_f); + env->DeleteGlobalRef(javaCallbackRef); +}; - auto iter_arg1_f_1 = dataResponse.arg1.f.begin(); - while (iter_arg1_f_1.Next()) - { - auto & entry_1 = iter_arg1_f_1.GetValue(); - jobject newElement_1; - jbyteArray newElement_1ByteArray = env->NewByteArray(static_cast(entry_1.size())); - env->SetByteArrayRegion(newElement_1ByteArray, 0, static_cast(entry_1.size()), - reinterpret_cast(entry_1.data())); - newElement_1 = newElement_1ByteArray; - chip::JniReferences::GetInstance().AddToList(arg1_f, newElement_1); - } - jobject arg1_g; - chip::JniReferences::GetInstance().CreateArrayList(arg1_g); +void CHIPUnitTestingClusterTestSimpleArgumentResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::UnitTesting::Commands::TestSimpleArgumentResponse::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; - auto iter_arg1_g_1 = dataResponse.arg1.g.begin(); - while (iter_arg1_g_1.Next()) - { - auto & entry_1 = iter_arg1_g_1.GetValue(); - jobject newElement_1; - std::string newElement_1ClassName = "java/lang/Integer"; - std::string newElement_1CtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(newElement_1ClassName.c_str(), - newElement_1CtorSignature.c_str(), entry_1, newElement_1); - chip::JniReferences::GetInstance().AddToList(arg1_g, newElement_1); - } + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - jclass nestedStructListStructClass_0; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$UnitTestingClusterNestedStructList", nestedStructListStructClass_0); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$UnitTestingClusterNestedStructList"); - return; - } - jmethodID nestedStructListStructCtor_0 = env->GetMethodID( - nestedStructListStructClass_0, "", - "(Ljava/lang/Integer;Ljava/lang/Boolean;Lchip/devicecontroller/ChipStructs$UnitTestingClusterSimpleStruct;Ljava/util/" - "ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;)V"); - if (nestedStructListStructCtor_0 == nullptr) - { - ChipLogError(Zcl, "Could not find ChipStructs$UnitTestingClusterNestedStructList constructor"); - return; - } + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - arg1 = env->NewObject(nestedStructListStructClass_0, nestedStructListStructCtor_0, arg1_a, arg1_b, arg1_c, arg1_d, arg1_e, - arg1_f, arg1_g); + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); - env->CallVoidMethod(javaCallbackRef, javaMethod, arg1); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Boolean;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); + + jobject returnValue; + std::string returnValueClassName = "java/lang/Boolean"; + std::string returnValueCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(returnValueClassName.c_str(), returnValueCtorSignature.c_str(), + dataResponse.returnValue, returnValue); + + env->CallVoidMethod(javaCallbackRef, javaMethod, returnValue); } -CHIPUnitTestingClusterTestListNestedStructListArgumentRequestCallback:: - CHIPUnitTestingClusterTestListNestedStructListArgumentRequestCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPUnitTestingClusterTestStructArrayArgumentResponseCallback::CHIPUnitTestingClusterTestStructArrayArgumentResponseCallback( + jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -14296,8 +4495,7 @@ CHIPUnitTestingClusterTestListNestedStructListArgumentRequestCallback:: } } -CHIPUnitTestingClusterTestListNestedStructListArgumentRequestCallback:: - ~CHIPUnitTestingClusterTestListNestedStructListArgumentRequestCallback() +CHIPUnitTestingClusterTestStructArrayArgumentResponseCallback::~CHIPUnitTestingClusterTestStructArrayArgumentResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -14308,9 +4506,8 @@ CHIPUnitTestingClusterTestListNestedStructListArgumentRequestCallback:: env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPUnitTestingClusterTestListNestedStructListArgumentRequestCallback::CallbackFn( - void * context, - const chip::app::Clusters::UnitTesting::Commands::TestListNestedStructListArgumentRequest::DecodableType & dataResponse) +void CHIPUnitTestingClusterTestStructArrayArgumentResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::UnitTesting::Commands::TestStructArrayArgumentResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -14320,17 +4517,20 @@ void CHIPUnitTestingClusterTestListNestedStructListArgumentRequestCallback::Call VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/ArrayList;)V", &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", + "(Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/" + "ArrayList;Ljava/lang/Integer;Ljava/lang/Boolean;)V", + &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); jobject arg1; @@ -14547,12 +4747,119 @@ void CHIPUnitTestingClusterTestListNestedStructListArgumentRequestCallback::Call newElement_0_c, newElement_0_d, newElement_0_e, newElement_0_f, newElement_0_g); chip::JniReferences::GetInstance().AddToList(arg1, newElement_0); } + jobject arg2; + chip::JniReferences::GetInstance().CreateArrayList(arg2); - env->CallVoidMethod(javaCallbackRef, javaMethod, arg1); + auto iter_arg2_0 = dataResponse.arg2.begin(); + while (iter_arg2_0.Next()) + { + auto & entry_0 = iter_arg2_0.GetValue(); + jobject newElement_0; + jobject newElement_0_a; + std::string newElement_0_aClassName = "java/lang/Integer"; + std::string newElement_0_aCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_0_aClassName.c_str(), newElement_0_aCtorSignature.c_str(), entry_0.a, newElement_0_a); + jobject newElement_0_b; + std::string newElement_0_bClassName = "java/lang/Boolean"; + std::string newElement_0_bCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0_bClassName.c_str(), + newElement_0_bCtorSignature.c_str(), entry_0.b, newElement_0_b); + jobject newElement_0_c; + std::string newElement_0_cClassName = "java/lang/Integer"; + std::string newElement_0_cCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_0_cClassName.c_str(), newElement_0_cCtorSignature.c_str(), static_cast(entry_0.c), newElement_0_c); + jobject newElement_0_d; + jbyteArray newElement_0_dByteArray = env->NewByteArray(static_cast(entry_0.d.size())); + env->SetByteArrayRegion(newElement_0_dByteArray, 0, static_cast(entry_0.d.size()), + reinterpret_cast(entry_0.d.data())); + newElement_0_d = newElement_0_dByteArray; + jobject newElement_0_e; + newElement_0_e = env->NewStringUTF(std::string(entry_0.e.data(), entry_0.e.size()).c_str()); + jobject newElement_0_f; + std::string newElement_0_fClassName = "java/lang/Integer"; + std::string newElement_0_fCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_0_fClassName.c_str(), newElement_0_fCtorSignature.c_str(), entry_0.f.Raw(), newElement_0_f); + jobject newElement_0_g; + std::string newElement_0_gClassName = "java/lang/Float"; + std::string newElement_0_gCtorSignature = "(F)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0_gClassName.c_str(), + newElement_0_gCtorSignature.c_str(), entry_0.g, newElement_0_g); + jobject newElement_0_h; + std::string newElement_0_hClassName = "java/lang/Double"; + std::string newElement_0_hCtorSignature = "(D)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_0_hClassName.c_str(), newElement_0_hCtorSignature.c_str(), entry_0.h, newElement_0_h); + + jclass simpleStructStructClass_1; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$UnitTestingClusterSimpleStruct", simpleStructStructClass_1); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$UnitTestingClusterSimpleStruct"); + return; + } + jmethodID simpleStructStructCtor_1 = + env->GetMethodID(simpleStructStructClass_1, "", + "(Ljava/lang/Integer;Ljava/lang/Boolean;Ljava/lang/Integer;[BLjava/lang/String;Ljava/lang/" + "Integer;Ljava/lang/Float;Ljava/lang/Double;)V"); + if (simpleStructStructCtor_1 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$UnitTestingClusterSimpleStruct constructor"); + return; + } + + newElement_0 = + env->NewObject(simpleStructStructClass_1, simpleStructStructCtor_1, newElement_0_a, newElement_0_b, newElement_0_c, + newElement_0_d, newElement_0_e, newElement_0_f, newElement_0_g, newElement_0_h); + chip::JniReferences::GetInstance().AddToList(arg2, newElement_0); + } + jobject arg3; + chip::JniReferences::GetInstance().CreateArrayList(arg3); + + auto iter_arg3_0 = dataResponse.arg3.begin(); + while (iter_arg3_0.Next()) + { + auto & entry_0 = iter_arg3_0.GetValue(); + jobject newElement_0; + std::string newElement_0ClassName = "java/lang/Integer"; + std::string newElement_0CtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), static_cast(entry_0), newElement_0); + chip::JniReferences::GetInstance().AddToList(arg3, newElement_0); + } + jobject arg4; + chip::JniReferences::GetInstance().CreateArrayList(arg4); + + auto iter_arg4_0 = dataResponse.arg4.begin(); + while (iter_arg4_0.Next()) + { + auto & entry_0 = iter_arg4_0.GetValue(); + jobject newElement_0; + std::string newElement_0ClassName = "java/lang/Boolean"; + std::string newElement_0CtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), + entry_0, newElement_0); + chip::JniReferences::GetInstance().AddToList(arg4, newElement_0); + } + jobject arg5; + std::string arg5ClassName = "java/lang/Integer"; + std::string arg5CtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(arg5ClassName.c_str(), arg5CtorSignature.c_str(), + static_cast(dataResponse.arg5), arg5); + jobject arg6; + std::string arg6ClassName = "java/lang/Boolean"; + std::string arg6CtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(arg6ClassName.c_str(), arg6CtorSignature.c_str(), dataResponse.arg6, + arg6); + + env->CallVoidMethod(javaCallbackRef, javaMethod, arg1, arg2, arg3, arg4, arg5, arg6); } -CHIPUnitTestingClusterTestListInt8UReverseRequestCallback::CHIPUnitTestingClusterTestListInt8UReverseRequestCallback( +CHIPUnitTestingClusterTestListInt8UReverseResponseCallback::CHIPUnitTestingClusterTestListInt8UReverseResponseCallback( jobject javaCallback) : - Callback::Callback(CallbackFn, this) + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -14568,7 +4875,7 @@ CHIPUnitTestingClusterTestListInt8UReverseRequestCallback::CHIPUnitTestingCluste } } -CHIPUnitTestingClusterTestListInt8UReverseRequestCallback::~CHIPUnitTestingClusterTestListInt8UReverseRequestCallback() +CHIPUnitTestingClusterTestListInt8UReverseResponseCallback::~CHIPUnitTestingClusterTestListInt8UReverseResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -14579,8 +4886,8 @@ CHIPUnitTestingClusterTestListInt8UReverseRequestCallback::~CHIPUnitTestingClust env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPUnitTestingClusterTestListInt8UReverseRequestCallback::CallbackFn( - void * context, const chip::app::Clusters::UnitTesting::Commands::TestListInt8UReverseRequest::DecodableType & dataResponse) +void CHIPUnitTestingClusterTestListInt8UReverseResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::UnitTesting::Commands::TestListInt8UReverseResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -14590,10 +4897,10 @@ void CHIPUnitTestingClusterTestListInt8UReverseRequestCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; @@ -14620,8 +4927,8 @@ void CHIPUnitTestingClusterTestListInt8UReverseRequestCallback::CallbackFn( env->CallVoidMethod(javaCallbackRef, javaMethod, arg1); } -CHIPUnitTestingClusterTestEnumsRequestCallback::CHIPUnitTestingClusterTestEnumsRequestCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPUnitTestingClusterTestEnumsResponseCallback::CHIPUnitTestingClusterTestEnumsResponseCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -14637,7 +4944,7 @@ CHIPUnitTestingClusterTestEnumsRequestCallback::CHIPUnitTestingClusterTestEnumsR } } -CHIPUnitTestingClusterTestEnumsRequestCallback::~CHIPUnitTestingClusterTestEnumsRequestCallback() +CHIPUnitTestingClusterTestEnumsResponseCallback::~CHIPUnitTestingClusterTestEnumsResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -14648,8 +4955,8 @@ CHIPUnitTestingClusterTestEnumsRequestCallback::~CHIPUnitTestingClusterTestEnums env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPUnitTestingClusterTestEnumsRequestCallback::CallbackFn( - void * context, const chip::app::Clusters::UnitTesting::Commands::TestEnumsRequest::DecodableType & dataResponse) +void CHIPUnitTestingClusterTestEnumsResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::UnitTesting::Commands::TestEnumsResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -14659,9 +4966,9 @@ void CHIPUnitTestingClusterTestEnumsRequestCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; @@ -14685,9 +4992,9 @@ void CHIPUnitTestingClusterTestEnumsRequestCallback::CallbackFn( env->CallVoidMethod(javaCallbackRef, javaMethod, arg1, arg2); } -CHIPUnitTestingClusterTestNullableOptionalRequestCallback::CHIPUnitTestingClusterTestNullableOptionalRequestCallback( +CHIPUnitTestingClusterTestNullableOptionalResponseCallback::CHIPUnitTestingClusterTestNullableOptionalResponseCallback( jobject javaCallback) : - Callback::Callback(CallbackFn, this) + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -14703,7 +5010,7 @@ CHIPUnitTestingClusterTestNullableOptionalRequestCallback::CHIPUnitTestingCluste } } -CHIPUnitTestingClusterTestNullableOptionalRequestCallback::~CHIPUnitTestingClusterTestNullableOptionalRequestCallback() +CHIPUnitTestingClusterTestNullableOptionalResponseCallback::~CHIPUnitTestingClusterTestNullableOptionalResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -14714,8 +5021,8 @@ CHIPUnitTestingClusterTestNullableOptionalRequestCallback::~CHIPUnitTestingClust env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPUnitTestingClusterTestNullableOptionalRequestCallback::CallbackFn( - void * context, const chip::app::Clusters::UnitTesting::Commands::TestNullableOptionalRequest::DecodableType & dataResponse) +void CHIPUnitTestingClusterTestNullableOptionalResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::UnitTesting::Commands::TestNullableOptionalResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -14725,47 +5032,84 @@ void CHIPUnitTestingClusterTestNullableOptionalRequestCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/Optional;)V", &javaMethod); + err = JniReferences::GetInstance().FindMethod( + env, javaCallbackRef, "onSuccess", "(Ljava/lang/Boolean;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;)V", + &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject arg1; - if (!dataResponse.arg1.HasValue()) + jobject wasPresent; + std::string wasPresentClassName = "java/lang/Boolean"; + std::string wasPresentCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(wasPresentClassName.c_str(), wasPresentCtorSignature.c_str(), + dataResponse.wasPresent, wasPresent); + jobject wasNull; + if (!dataResponse.wasNull.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, wasNull); + } + else + { + jobject wasNullInsideOptional; + std::string wasNullInsideOptionalClassName = "java/lang/Boolean"; + std::string wasNullInsideOptionalCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(wasNullInsideOptionalClassName.c_str(), + wasNullInsideOptionalCtorSignature.c_str(), + dataResponse.wasNull.Value(), wasNullInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(wasNullInsideOptional, wasNull); + } + jobject value; + if (!dataResponse.value.HasValue()) { - chip::JniReferences::GetInstance().CreateOptional(nullptr, arg1); + chip::JniReferences::GetInstance().CreateOptional(nullptr, value); } else { - jobject arg1InsideOptional; - if (dataResponse.arg1.Value().IsNull()) + jobject valueInsideOptional; + std::string valueInsideOptionalClassName = "java/lang/Integer"; + std::string valueInsideOptionalCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(valueInsideOptionalClassName.c_str(), + valueInsideOptionalCtorSignature.c_str(), + dataResponse.value.Value(), valueInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(valueInsideOptional, value); + } + jobject originalValue; + if (!dataResponse.originalValue.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, originalValue); + } + else + { + jobject originalValueInsideOptional; + if (dataResponse.originalValue.Value().IsNull()) { - arg1InsideOptional = nullptr; + originalValueInsideOptional = nullptr; } else { - std::string arg1InsideOptionalClassName = "java/lang/Integer"; - std::string arg1InsideOptionalCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(arg1InsideOptionalClassName.c_str(), - arg1InsideOptionalCtorSignature.c_str(), - dataResponse.arg1.Value().Value(), arg1InsideOptional); + std::string originalValueInsideOptionalClassName = "java/lang/Integer"; + std::string originalValueInsideOptionalCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + originalValueInsideOptionalClassName.c_str(), originalValueInsideOptionalCtorSignature.c_str(), + dataResponse.originalValue.Value().Value(), originalValueInsideOptional); } - chip::JniReferences::GetInstance().CreateOptional(arg1InsideOptional, arg1); + chip::JniReferences::GetInstance().CreateOptional(originalValueInsideOptional, originalValue); } - env->CallVoidMethod(javaCallbackRef, javaMethod, arg1); + env->CallVoidMethod(javaCallbackRef, javaMethod, wasPresent, wasNull, value, originalValue); } -CHIPUnitTestingClusterTestComplexNullableOptionalRequestCallback::CHIPUnitTestingClusterTestComplexNullableOptionalRequestCallback( - jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPUnitTestingClusterTestComplexNullableOptionalResponseCallback:: + CHIPUnitTestingClusterTestComplexNullableOptionalResponseCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -14781,8 +5125,8 @@ CHIPUnitTestingClusterTestComplexNullableOptionalRequestCallback::CHIPUnitTestin } } -CHIPUnitTestingClusterTestComplexNullableOptionalRequestCallback:: - ~CHIPUnitTestingClusterTestComplexNullableOptionalRequestCallback() +CHIPUnitTestingClusterTestComplexNullableOptionalResponseCallback:: + ~CHIPUnitTestingClusterTestComplexNullableOptionalResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -14793,9 +5137,9 @@ CHIPUnitTestingClusterTestComplexNullableOptionalRequestCallback:: env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPUnitTestingClusterTestComplexNullableOptionalRequestCallback::CallbackFn( +void CHIPUnitTestingClusterTestComplexNullableOptionalResponseCallback::CallbackFn( void * context, - const chip::app::Clusters::UnitTesting::Commands::TestComplexNullableOptionalRequest::DecodableType & dataResponse) + const chip::app::Clusters::UnitTesting::Commands::TestComplexNullableOptionalResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -14805,10 +5149,10 @@ void CHIPUnitTestingClusterTestComplexNullableOptionalRequestCallback::CallbackF VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; @@ -14817,155 +5161,227 @@ void CHIPUnitTestingClusterTestComplexNullableOptionalRequestCallback::CallbackF err = JniReferences::GetInstance().FindMethod( env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/util/Optional;Ljava/util/Optional;Ljava/lang/String;Ljava/util/Optional;Ljava/util/" - "Optional;Lchip/devicecontroller/ChipStructs$UnitTestingClusterSimpleStruct;Ljava/util/Optional;Ljava/util/Optional;Ljava/" - "util/ArrayList;Ljava/util/Optional;Ljava/util/Optional;)V", + "(Ljava/lang/Boolean;Ljava/util/Optional;Ljava/lang/Boolean;Ljava/util/Optional;Ljava/lang/Boolean;Ljava/util/" + "Optional;Ljava/util/Optional;Ljava/lang/Boolean;Ljava/util/Optional;Ljava/lang/Boolean;Ljava/util/Optional;Ljava/lang/" + "Boolean;Ljava/util/Optional;Ljava/util/Optional;Ljava/lang/Boolean;Ljava/util/Optional;Ljava/lang/Boolean;Ljava/util/" + "Optional;Ljava/lang/Boolean;Ljava/util/Optional;Ljava/util/Optional;Ljava/lang/Boolean;Ljava/util/Optional;Ljava/lang/" + "Boolean;Ljava/util/Optional;Ljava/lang/Boolean;Ljava/util/Optional;Ljava/util/Optional;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject NullableInt; - if (dataResponse.nullableInt.IsNull()) + jobject NullableIntWasNull; + std::string NullableIntWasNullClassName = "java/lang/Boolean"; + std::string NullableIntWasNullCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(NullableIntWasNullClassName.c_str(), + NullableIntWasNullCtorSignature.c_str(), + dataResponse.nullableIntWasNull, NullableIntWasNull); + jobject NullableIntValue; + if (!dataResponse.nullableIntValue.HasValue()) { - NullableInt = nullptr; + chip::JniReferences::GetInstance().CreateOptional(nullptr, NullableIntValue); } else { - std::string NullableIntClassName = "java/lang/Integer"; - std::string NullableIntCtorSignature = "(I)V"; + jobject NullableIntValueInsideOptional; + std::string NullableIntValueInsideOptionalClassName = "java/lang/Integer"; + std::string NullableIntValueInsideOptionalCtorSignature = "(I)V"; chip::JniReferences::GetInstance().CreateBoxedObject( - NullableIntClassName.c_str(), NullableIntCtorSignature.c_str(), dataResponse.nullableInt.Value(), NullableInt); + NullableIntValueInsideOptionalClassName.c_str(), NullableIntValueInsideOptionalCtorSignature.c_str(), + dataResponse.nullableIntValue.Value(), NullableIntValueInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(NullableIntValueInsideOptional, NullableIntValue); } - jobject OptionalInt; - if (!dataResponse.optionalInt.HasValue()) + jobject OptionalIntWasPresent; + std::string OptionalIntWasPresentClassName = "java/lang/Boolean"; + std::string OptionalIntWasPresentCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OptionalIntWasPresentClassName.c_str(), + OptionalIntWasPresentCtorSignature.c_str(), + dataResponse.optionalIntWasPresent, OptionalIntWasPresent); + jobject OptionalIntValue; + if (!dataResponse.optionalIntValue.HasValue()) { - chip::JniReferences::GetInstance().CreateOptional(nullptr, OptionalInt); + chip::JniReferences::GetInstance().CreateOptional(nullptr, OptionalIntValue); } else { - jobject OptionalIntInsideOptional; - std::string OptionalIntInsideOptionalClassName = "java/lang/Integer"; - std::string OptionalIntInsideOptionalCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(OptionalIntInsideOptionalClassName.c_str(), - OptionalIntInsideOptionalCtorSignature.c_str(), - dataResponse.optionalInt.Value(), OptionalIntInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(OptionalIntInsideOptional, OptionalInt); + jobject OptionalIntValueInsideOptional; + std::string OptionalIntValueInsideOptionalClassName = "java/lang/Integer"; + std::string OptionalIntValueInsideOptionalCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + OptionalIntValueInsideOptionalClassName.c_str(), OptionalIntValueInsideOptionalCtorSignature.c_str(), + dataResponse.optionalIntValue.Value(), OptionalIntValueInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(OptionalIntValueInsideOptional, OptionalIntValue); } - jobject NullableOptionalInt; - if (!dataResponse.nullableOptionalInt.HasValue()) + jobject NullableOptionalIntWasPresent; + std::string NullableOptionalIntWasPresentClassName = "java/lang/Boolean"; + std::string NullableOptionalIntWasPresentCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + NullableOptionalIntWasPresentClassName.c_str(), NullableOptionalIntWasPresentCtorSignature.c_str(), + dataResponse.nullableOptionalIntWasPresent, NullableOptionalIntWasPresent); + jobject NullableOptionalIntWasNull; + if (!dataResponse.nullableOptionalIntWasNull.HasValue()) { - chip::JniReferences::GetInstance().CreateOptional(nullptr, NullableOptionalInt); + chip::JniReferences::GetInstance().CreateOptional(nullptr, NullableOptionalIntWasNull); } else { - jobject NullableOptionalIntInsideOptional; - if (dataResponse.nullableOptionalInt.Value().IsNull()) - { - NullableOptionalIntInsideOptional = nullptr; - } - else - { - std::string NullableOptionalIntInsideOptionalClassName = "java/lang/Integer"; - std::string NullableOptionalIntInsideOptionalCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - NullableOptionalIntInsideOptionalClassName.c_str(), NullableOptionalIntInsideOptionalCtorSignature.c_str(), - dataResponse.nullableOptionalInt.Value().Value(), NullableOptionalIntInsideOptional); - } - chip::JniReferences::GetInstance().CreateOptional(NullableOptionalIntInsideOptional, NullableOptionalInt); + jobject NullableOptionalIntWasNullInsideOptional; + std::string NullableOptionalIntWasNullInsideOptionalClassName = "java/lang/Boolean"; + std::string NullableOptionalIntWasNullInsideOptionalCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(NullableOptionalIntWasNullInsideOptionalClassName.c_str(), + NullableOptionalIntWasNullInsideOptionalCtorSignature.c_str(), + dataResponse.nullableOptionalIntWasNull.Value(), + NullableOptionalIntWasNullInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(NullableOptionalIntWasNullInsideOptional, NullableOptionalIntWasNull); + } + jobject NullableOptionalIntValue; + if (!dataResponse.nullableOptionalIntValue.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, NullableOptionalIntValue); + } + else + { + jobject NullableOptionalIntValueInsideOptional; + std::string NullableOptionalIntValueInsideOptionalClassName = "java/lang/Integer"; + std::string NullableOptionalIntValueInsideOptionalCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + NullableOptionalIntValueInsideOptionalClassName.c_str(), NullableOptionalIntValueInsideOptionalCtorSignature.c_str(), + dataResponse.nullableOptionalIntValue.Value(), NullableOptionalIntValueInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(NullableOptionalIntValueInsideOptional, NullableOptionalIntValue); } - jobject NullableString; - if (dataResponse.nullableString.IsNull()) + jobject NullableStringWasNull; + std::string NullableStringWasNullClassName = "java/lang/Boolean"; + std::string NullableStringWasNullCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(NullableStringWasNullClassName.c_str(), + NullableStringWasNullCtorSignature.c_str(), + dataResponse.nullableStringWasNull, NullableStringWasNull); + jobject NullableStringValue; + if (!dataResponse.nullableStringValue.HasValue()) { - NullableString = nullptr; + chip::JniReferences::GetInstance().CreateOptional(nullptr, NullableStringValue); } else { - NullableString = env->NewStringUTF( - std::string(dataResponse.nullableString.Value().data(), dataResponse.nullableString.Value().size()).c_str()); + jobject NullableStringValueInsideOptional; + NullableStringValueInsideOptional = env->NewStringUTF( + std::string(dataResponse.nullableStringValue.Value().data(), dataResponse.nullableStringValue.Value().size()).c_str()); + chip::JniReferences::GetInstance().CreateOptional(NullableStringValueInsideOptional, NullableStringValue); } - jobject OptionalString; - if (!dataResponse.optionalString.HasValue()) + jobject OptionalStringWasPresent; + std::string OptionalStringWasPresentClassName = "java/lang/Boolean"; + std::string OptionalStringWasPresentCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OptionalStringWasPresentClassName.c_str(), + OptionalStringWasPresentCtorSignature.c_str(), + dataResponse.optionalStringWasPresent, OptionalStringWasPresent); + jobject OptionalStringValue; + if (!dataResponse.optionalStringValue.HasValue()) { - chip::JniReferences::GetInstance().CreateOptional(nullptr, OptionalString); + chip::JniReferences::GetInstance().CreateOptional(nullptr, OptionalStringValue); } else { - jobject OptionalStringInsideOptional; - OptionalStringInsideOptional = env->NewStringUTF( - std::string(dataResponse.optionalString.Value().data(), dataResponse.optionalString.Value().size()).c_str()); - chip::JniReferences::GetInstance().CreateOptional(OptionalStringInsideOptional, OptionalString); + jobject OptionalStringValueInsideOptional; + OptionalStringValueInsideOptional = env->NewStringUTF( + std::string(dataResponse.optionalStringValue.Value().data(), dataResponse.optionalStringValue.Value().size()).c_str()); + chip::JniReferences::GetInstance().CreateOptional(OptionalStringValueInsideOptional, OptionalStringValue); } - jobject NullableOptionalString; - if (!dataResponse.nullableOptionalString.HasValue()) + jobject NullableOptionalStringWasPresent; + std::string NullableOptionalStringWasPresentClassName = "java/lang/Boolean"; + std::string NullableOptionalStringWasPresentCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + NullableOptionalStringWasPresentClassName.c_str(), NullableOptionalStringWasPresentCtorSignature.c_str(), + dataResponse.nullableOptionalStringWasPresent, NullableOptionalStringWasPresent); + jobject NullableOptionalStringWasNull; + if (!dataResponse.nullableOptionalStringWasNull.HasValue()) { - chip::JniReferences::GetInstance().CreateOptional(nullptr, NullableOptionalString); + chip::JniReferences::GetInstance().CreateOptional(nullptr, NullableOptionalStringWasNull); } else { - jobject NullableOptionalStringInsideOptional; - if (dataResponse.nullableOptionalString.Value().IsNull()) - { - NullableOptionalStringInsideOptional = nullptr; - } - else - { - NullableOptionalStringInsideOptional = - env->NewStringUTF(std::string(dataResponse.nullableOptionalString.Value().Value().data(), - dataResponse.nullableOptionalString.Value().Value().size()) - .c_str()); - } - chip::JniReferences::GetInstance().CreateOptional(NullableOptionalStringInsideOptional, NullableOptionalString); + jobject NullableOptionalStringWasNullInsideOptional; + std::string NullableOptionalStringWasNullInsideOptionalClassName = "java/lang/Boolean"; + std::string NullableOptionalStringWasNullInsideOptionalCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(NullableOptionalStringWasNullInsideOptionalClassName.c_str(), + NullableOptionalStringWasNullInsideOptionalCtorSignature.c_str(), + dataResponse.nullableOptionalStringWasNull.Value(), + NullableOptionalStringWasNullInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(NullableOptionalStringWasNullInsideOptional, + NullableOptionalStringWasNull); + } + jobject NullableOptionalStringValue; + if (!dataResponse.nullableOptionalStringValue.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, NullableOptionalStringValue); + } + else + { + jobject NullableOptionalStringValueInsideOptional; + NullableOptionalStringValueInsideOptional = + env->NewStringUTF(std::string(dataResponse.nullableOptionalStringValue.Value().data(), + dataResponse.nullableOptionalStringValue.Value().size()) + .c_str()); + chip::JniReferences::GetInstance().CreateOptional(NullableOptionalStringValueInsideOptional, NullableOptionalStringValue); } - jobject NullableStruct; - if (dataResponse.nullableStruct.IsNull()) + jobject NullableStructWasNull; + std::string NullableStructWasNullClassName = "java/lang/Boolean"; + std::string NullableStructWasNullCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(NullableStructWasNullClassName.c_str(), + NullableStructWasNullCtorSignature.c_str(), + dataResponse.nullableStructWasNull, NullableStructWasNull); + jobject NullableStructValue; + if (!dataResponse.nullableStructValue.HasValue()) { - NullableStruct = nullptr; + chip::JniReferences::GetInstance().CreateOptional(nullptr, NullableStructValue); } else { - jobject NullableStruct_a; - std::string NullableStruct_aClassName = "java/lang/Integer"; - std::string NullableStruct_aCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(NullableStruct_aClassName.c_str(), - NullableStruct_aCtorSignature.c_str(), - dataResponse.nullableStruct.Value().a, NullableStruct_a); - jobject NullableStruct_b; - std::string NullableStruct_bClassName = "java/lang/Boolean"; - std::string NullableStruct_bCtorSignature = "(Z)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(NullableStruct_bClassName.c_str(), - NullableStruct_bCtorSignature.c_str(), - dataResponse.nullableStruct.Value().b, NullableStruct_b); - jobject NullableStruct_c; - std::string NullableStruct_cClassName = "java/lang/Integer"; - std::string NullableStruct_cCtorSignature = "(I)V"; + jobject NullableStructValueInsideOptional; + jobject NullableStructValueInsideOptional_a; + std::string NullableStructValueInsideOptional_aClassName = "java/lang/Integer"; + std::string NullableStructValueInsideOptional_aCtorSignature = "(I)V"; chip::JniReferences::GetInstance().CreateBoxedObject( - NullableStruct_cClassName.c_str(), NullableStruct_cCtorSignature.c_str(), - static_cast(dataResponse.nullableStruct.Value().c), NullableStruct_c); - jobject NullableStruct_d; - jbyteArray NullableStruct_dByteArray = env->NewByteArray(static_cast(dataResponse.nullableStruct.Value().d.size())); - env->SetByteArrayRegion(NullableStruct_dByteArray, 0, static_cast(dataResponse.nullableStruct.Value().d.size()), - reinterpret_cast(dataResponse.nullableStruct.Value().d.data())); - NullableStruct_d = NullableStruct_dByteArray; - jobject NullableStruct_e; - NullableStruct_e = env->NewStringUTF( - std::string(dataResponse.nullableStruct.Value().e.data(), dataResponse.nullableStruct.Value().e.size()).c_str()); - jobject NullableStruct_f; - std::string NullableStruct_fClassName = "java/lang/Integer"; - std::string NullableStruct_fCtorSignature = "(I)V"; + NullableStructValueInsideOptional_aClassName.c_str(), NullableStructValueInsideOptional_aCtorSignature.c_str(), + dataResponse.nullableStructValue.Value().a, NullableStructValueInsideOptional_a); + jobject NullableStructValueInsideOptional_b; + std::string NullableStructValueInsideOptional_bClassName = "java/lang/Boolean"; + std::string NullableStructValueInsideOptional_bCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + NullableStructValueInsideOptional_bClassName.c_str(), NullableStructValueInsideOptional_bCtorSignature.c_str(), + dataResponse.nullableStructValue.Value().b, NullableStructValueInsideOptional_b); + jobject NullableStructValueInsideOptional_c; + std::string NullableStructValueInsideOptional_cClassName = "java/lang/Integer"; + std::string NullableStructValueInsideOptional_cCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + NullableStructValueInsideOptional_cClassName.c_str(), NullableStructValueInsideOptional_cCtorSignature.c_str(), + static_cast(dataResponse.nullableStructValue.Value().c), NullableStructValueInsideOptional_c); + jobject NullableStructValueInsideOptional_d; + jbyteArray NullableStructValueInsideOptional_dByteArray = + env->NewByteArray(static_cast(dataResponse.nullableStructValue.Value().d.size())); + env->SetByteArrayRegion(NullableStructValueInsideOptional_dByteArray, 0, + static_cast(dataResponse.nullableStructValue.Value().d.size()), + reinterpret_cast(dataResponse.nullableStructValue.Value().d.data())); + NullableStructValueInsideOptional_d = NullableStructValueInsideOptional_dByteArray; + jobject NullableStructValueInsideOptional_e; + NullableStructValueInsideOptional_e = env->NewStringUTF( + std::string(dataResponse.nullableStructValue.Value().e.data(), dataResponse.nullableStructValue.Value().e.size()) + .c_str()); + jobject NullableStructValueInsideOptional_f; + std::string NullableStructValueInsideOptional_fClassName = "java/lang/Integer"; + std::string NullableStructValueInsideOptional_fCtorSignature = "(I)V"; chip::JniReferences::GetInstance().CreateBoxedObject( - NullableStruct_fClassName.c_str(), NullableStruct_fCtorSignature.c_str(), dataResponse.nullableStruct.Value().f.Raw(), - NullableStruct_f); - jobject NullableStruct_g; - std::string NullableStruct_gClassName = "java/lang/Float"; - std::string NullableStruct_gCtorSignature = "(F)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(NullableStruct_gClassName.c_str(), - NullableStruct_gCtorSignature.c_str(), - dataResponse.nullableStruct.Value().g, NullableStruct_g); - jobject NullableStruct_h; - std::string NullableStruct_hClassName = "java/lang/Double"; - std::string NullableStruct_hCtorSignature = "(D)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(NullableStruct_hClassName.c_str(), - NullableStruct_hCtorSignature.c_str(), - dataResponse.nullableStruct.Value().h, NullableStruct_h); + NullableStructValueInsideOptional_fClassName.c_str(), NullableStructValueInsideOptional_fCtorSignature.c_str(), + dataResponse.nullableStructValue.Value().f.Raw(), NullableStructValueInsideOptional_f); + jobject NullableStructValueInsideOptional_g; + std::string NullableStructValueInsideOptional_gClassName = "java/lang/Float"; + std::string NullableStructValueInsideOptional_gCtorSignature = "(F)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + NullableStructValueInsideOptional_gClassName.c_str(), NullableStructValueInsideOptional_gCtorSignature.c_str(), + dataResponse.nullableStructValue.Value().g, NullableStructValueInsideOptional_g); + jobject NullableStructValueInsideOptional_h; + std::string NullableStructValueInsideOptional_hClassName = "java/lang/Double"; + std::string NullableStructValueInsideOptional_hCtorSignature = "(D)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + NullableStructValueInsideOptional_hClassName.c_str(), NullableStructValueInsideOptional_hCtorSignature.c_str(), + dataResponse.nullableStructValue.Value().h, NullableStructValueInsideOptional_h); jclass simpleStructStructClass_1; err = chip::JniReferences::GetInstance().GetClassRef( @@ -14985,64 +5401,74 @@ void CHIPUnitTestingClusterTestComplexNullableOptionalRequestCallback::CallbackF return; } - NullableStruct = env->NewObject(simpleStructStructClass_1, simpleStructStructCtor_1, NullableStruct_a, NullableStruct_b, - NullableStruct_c, NullableStruct_d, NullableStruct_e, NullableStruct_f, NullableStruct_g, - NullableStruct_h); + NullableStructValueInsideOptional = env->NewObject( + simpleStructStructClass_1, simpleStructStructCtor_1, NullableStructValueInsideOptional_a, + NullableStructValueInsideOptional_b, NullableStructValueInsideOptional_c, NullableStructValueInsideOptional_d, + NullableStructValueInsideOptional_e, NullableStructValueInsideOptional_f, NullableStructValueInsideOptional_g, + NullableStructValueInsideOptional_h); + chip::JniReferences::GetInstance().CreateOptional(NullableStructValueInsideOptional, NullableStructValue); } - jobject OptionalStruct; - if (!dataResponse.optionalStruct.HasValue()) + jobject OptionalStructWasPresent; + std::string OptionalStructWasPresentClassName = "java/lang/Boolean"; + std::string OptionalStructWasPresentCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OptionalStructWasPresentClassName.c_str(), + OptionalStructWasPresentCtorSignature.c_str(), + dataResponse.optionalStructWasPresent, OptionalStructWasPresent); + jobject OptionalStructValue; + if (!dataResponse.optionalStructValue.HasValue()) { - chip::JniReferences::GetInstance().CreateOptional(nullptr, OptionalStruct); + chip::JniReferences::GetInstance().CreateOptional(nullptr, OptionalStructValue); } else { - jobject OptionalStructInsideOptional; - jobject OptionalStructInsideOptional_a; - std::string OptionalStructInsideOptional_aClassName = "java/lang/Integer"; - std::string OptionalStructInsideOptional_aCtorSignature = "(I)V"; + jobject OptionalStructValueInsideOptional; + jobject OptionalStructValueInsideOptional_a; + std::string OptionalStructValueInsideOptional_aClassName = "java/lang/Integer"; + std::string OptionalStructValueInsideOptional_aCtorSignature = "(I)V"; chip::JniReferences::GetInstance().CreateBoxedObject( - OptionalStructInsideOptional_aClassName.c_str(), OptionalStructInsideOptional_aCtorSignature.c_str(), - dataResponse.optionalStruct.Value().a, OptionalStructInsideOptional_a); - jobject OptionalStructInsideOptional_b; - std::string OptionalStructInsideOptional_bClassName = "java/lang/Boolean"; - std::string OptionalStructInsideOptional_bCtorSignature = "(Z)V"; + OptionalStructValueInsideOptional_aClassName.c_str(), OptionalStructValueInsideOptional_aCtorSignature.c_str(), + dataResponse.optionalStructValue.Value().a, OptionalStructValueInsideOptional_a); + jobject OptionalStructValueInsideOptional_b; + std::string OptionalStructValueInsideOptional_bClassName = "java/lang/Boolean"; + std::string OptionalStructValueInsideOptional_bCtorSignature = "(Z)V"; chip::JniReferences::GetInstance().CreateBoxedObject( - OptionalStructInsideOptional_bClassName.c_str(), OptionalStructInsideOptional_bCtorSignature.c_str(), - dataResponse.optionalStruct.Value().b, OptionalStructInsideOptional_b); - jobject OptionalStructInsideOptional_c; - std::string OptionalStructInsideOptional_cClassName = "java/lang/Integer"; - std::string OptionalStructInsideOptional_cCtorSignature = "(I)V"; + OptionalStructValueInsideOptional_bClassName.c_str(), OptionalStructValueInsideOptional_bCtorSignature.c_str(), + dataResponse.optionalStructValue.Value().b, OptionalStructValueInsideOptional_b); + jobject OptionalStructValueInsideOptional_c; + std::string OptionalStructValueInsideOptional_cClassName = "java/lang/Integer"; + std::string OptionalStructValueInsideOptional_cCtorSignature = "(I)V"; chip::JniReferences::GetInstance().CreateBoxedObject( - OptionalStructInsideOptional_cClassName.c_str(), OptionalStructInsideOptional_cCtorSignature.c_str(), - static_cast(dataResponse.optionalStruct.Value().c), OptionalStructInsideOptional_c); - jobject OptionalStructInsideOptional_d; - jbyteArray OptionalStructInsideOptional_dByteArray = - env->NewByteArray(static_cast(dataResponse.optionalStruct.Value().d.size())); - env->SetByteArrayRegion(OptionalStructInsideOptional_dByteArray, 0, - static_cast(dataResponse.optionalStruct.Value().d.size()), - reinterpret_cast(dataResponse.optionalStruct.Value().d.data())); - OptionalStructInsideOptional_d = OptionalStructInsideOptional_dByteArray; - jobject OptionalStructInsideOptional_e; - OptionalStructInsideOptional_e = env->NewStringUTF( - std::string(dataResponse.optionalStruct.Value().e.data(), dataResponse.optionalStruct.Value().e.size()).c_str()); - jobject OptionalStructInsideOptional_f; - std::string OptionalStructInsideOptional_fClassName = "java/lang/Integer"; - std::string OptionalStructInsideOptional_fCtorSignature = "(I)V"; + OptionalStructValueInsideOptional_cClassName.c_str(), OptionalStructValueInsideOptional_cCtorSignature.c_str(), + static_cast(dataResponse.optionalStructValue.Value().c), OptionalStructValueInsideOptional_c); + jobject OptionalStructValueInsideOptional_d; + jbyteArray OptionalStructValueInsideOptional_dByteArray = + env->NewByteArray(static_cast(dataResponse.optionalStructValue.Value().d.size())); + env->SetByteArrayRegion(OptionalStructValueInsideOptional_dByteArray, 0, + static_cast(dataResponse.optionalStructValue.Value().d.size()), + reinterpret_cast(dataResponse.optionalStructValue.Value().d.data())); + OptionalStructValueInsideOptional_d = OptionalStructValueInsideOptional_dByteArray; + jobject OptionalStructValueInsideOptional_e; + OptionalStructValueInsideOptional_e = env->NewStringUTF( + std::string(dataResponse.optionalStructValue.Value().e.data(), dataResponse.optionalStructValue.Value().e.size()) + .c_str()); + jobject OptionalStructValueInsideOptional_f; + std::string OptionalStructValueInsideOptional_fClassName = "java/lang/Integer"; + std::string OptionalStructValueInsideOptional_fCtorSignature = "(I)V"; chip::JniReferences::GetInstance().CreateBoxedObject( - OptionalStructInsideOptional_fClassName.c_str(), OptionalStructInsideOptional_fCtorSignature.c_str(), - dataResponse.optionalStruct.Value().f.Raw(), OptionalStructInsideOptional_f); - jobject OptionalStructInsideOptional_g; - std::string OptionalStructInsideOptional_gClassName = "java/lang/Float"; - std::string OptionalStructInsideOptional_gCtorSignature = "(F)V"; + OptionalStructValueInsideOptional_fClassName.c_str(), OptionalStructValueInsideOptional_fCtorSignature.c_str(), + dataResponse.optionalStructValue.Value().f.Raw(), OptionalStructValueInsideOptional_f); + jobject OptionalStructValueInsideOptional_g; + std::string OptionalStructValueInsideOptional_gClassName = "java/lang/Float"; + std::string OptionalStructValueInsideOptional_gCtorSignature = "(F)V"; chip::JniReferences::GetInstance().CreateBoxedObject( - OptionalStructInsideOptional_gClassName.c_str(), OptionalStructInsideOptional_gCtorSignature.c_str(), - dataResponse.optionalStruct.Value().g, OptionalStructInsideOptional_g); - jobject OptionalStructInsideOptional_h; - std::string OptionalStructInsideOptional_hClassName = "java/lang/Double"; - std::string OptionalStructInsideOptional_hCtorSignature = "(D)V"; + OptionalStructValueInsideOptional_gClassName.c_str(), OptionalStructValueInsideOptional_gCtorSignature.c_str(), + dataResponse.optionalStructValue.Value().g, OptionalStructValueInsideOptional_g); + jobject OptionalStructValueInsideOptional_h; + std::string OptionalStructValueInsideOptional_hClassName = "java/lang/Double"; + std::string OptionalStructValueInsideOptional_hCtorSignature = "(D)V"; chip::JniReferences::GetInstance().CreateBoxedObject( - OptionalStructInsideOptional_hClassName.c_str(), OptionalStructInsideOptional_hCtorSignature.c_str(), - dataResponse.optionalStruct.Value().h, OptionalStructInsideOptional_h); + OptionalStructValueInsideOptional_hClassName.c_str(), OptionalStructValueInsideOptional_hCtorSignature.c_str(), + dataResponse.optionalStructValue.Value().h, OptionalStructValueInsideOptional_h); jclass simpleStructStructClass_1; err = chip::JniReferences::GetInstance().GetClassRef( @@ -15062,190 +5488,299 @@ void CHIPUnitTestingClusterTestComplexNullableOptionalRequestCallback::CallbackF return; } - OptionalStructInsideOptional = env->NewObject( - simpleStructStructClass_1, simpleStructStructCtor_1, OptionalStructInsideOptional_a, OptionalStructInsideOptional_b, - OptionalStructInsideOptional_c, OptionalStructInsideOptional_d, OptionalStructInsideOptional_e, - OptionalStructInsideOptional_f, OptionalStructInsideOptional_g, OptionalStructInsideOptional_h); - chip::JniReferences::GetInstance().CreateOptional(OptionalStructInsideOptional, OptionalStruct); + OptionalStructValueInsideOptional = env->NewObject( + simpleStructStructClass_1, simpleStructStructCtor_1, OptionalStructValueInsideOptional_a, + OptionalStructValueInsideOptional_b, OptionalStructValueInsideOptional_c, OptionalStructValueInsideOptional_d, + OptionalStructValueInsideOptional_e, OptionalStructValueInsideOptional_f, OptionalStructValueInsideOptional_g, + OptionalStructValueInsideOptional_h); + chip::JniReferences::GetInstance().CreateOptional(OptionalStructValueInsideOptional, OptionalStructValue); + } + jobject NullableOptionalStructWasPresent; + std::string NullableOptionalStructWasPresentClassName = "java/lang/Boolean"; + std::string NullableOptionalStructWasPresentCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + NullableOptionalStructWasPresentClassName.c_str(), NullableOptionalStructWasPresentCtorSignature.c_str(), + dataResponse.nullableOptionalStructWasPresent, NullableOptionalStructWasPresent); + jobject NullableOptionalStructWasNull; + if (!dataResponse.nullableOptionalStructWasNull.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, NullableOptionalStructWasNull); } - jobject NullableOptionalStruct; - if (!dataResponse.nullableOptionalStruct.HasValue()) + else + { + jobject NullableOptionalStructWasNullInsideOptional; + std::string NullableOptionalStructWasNullInsideOptionalClassName = "java/lang/Boolean"; + std::string NullableOptionalStructWasNullInsideOptionalCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(NullableOptionalStructWasNullInsideOptionalClassName.c_str(), + NullableOptionalStructWasNullInsideOptionalCtorSignature.c_str(), + dataResponse.nullableOptionalStructWasNull.Value(), + NullableOptionalStructWasNullInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(NullableOptionalStructWasNullInsideOptional, + NullableOptionalStructWasNull); + } + jobject NullableOptionalStructValue; + if (!dataResponse.nullableOptionalStructValue.HasValue()) { - chip::JniReferences::GetInstance().CreateOptional(nullptr, NullableOptionalStruct); + chip::JniReferences::GetInstance().CreateOptional(nullptr, NullableOptionalStructValue); } else { - jobject NullableOptionalStructInsideOptional; - if (dataResponse.nullableOptionalStruct.Value().IsNull()) + jobject NullableOptionalStructValueInsideOptional; + jobject NullableOptionalStructValueInsideOptional_a; + std::string NullableOptionalStructValueInsideOptional_aClassName = "java/lang/Integer"; + std::string NullableOptionalStructValueInsideOptional_aCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + NullableOptionalStructValueInsideOptional_aClassName.c_str(), + NullableOptionalStructValueInsideOptional_aCtorSignature.c_str(), dataResponse.nullableOptionalStructValue.Value().a, + NullableOptionalStructValueInsideOptional_a); + jobject NullableOptionalStructValueInsideOptional_b; + std::string NullableOptionalStructValueInsideOptional_bClassName = "java/lang/Boolean"; + std::string NullableOptionalStructValueInsideOptional_bCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(NullableOptionalStructValueInsideOptional_bClassName.c_str(), + NullableOptionalStructValueInsideOptional_bCtorSignature.c_str(), + dataResponse.nullableOptionalStructValue.Value().b, + NullableOptionalStructValueInsideOptional_b); + jobject NullableOptionalStructValueInsideOptional_c; + std::string NullableOptionalStructValueInsideOptional_cClassName = "java/lang/Integer"; + std::string NullableOptionalStructValueInsideOptional_cCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + NullableOptionalStructValueInsideOptional_cClassName.c_str(), + NullableOptionalStructValueInsideOptional_cCtorSignature.c_str(), + static_cast(dataResponse.nullableOptionalStructValue.Value().c), NullableOptionalStructValueInsideOptional_c); + jobject NullableOptionalStructValueInsideOptional_d; + jbyteArray NullableOptionalStructValueInsideOptional_dByteArray = + env->NewByteArray(static_cast(dataResponse.nullableOptionalStructValue.Value().d.size())); + env->SetByteArrayRegion(NullableOptionalStructValueInsideOptional_dByteArray, 0, + static_cast(dataResponse.nullableOptionalStructValue.Value().d.size()), + reinterpret_cast(dataResponse.nullableOptionalStructValue.Value().d.data())); + NullableOptionalStructValueInsideOptional_d = NullableOptionalStructValueInsideOptional_dByteArray; + jobject NullableOptionalStructValueInsideOptional_e; + NullableOptionalStructValueInsideOptional_e = + env->NewStringUTF(std::string(dataResponse.nullableOptionalStructValue.Value().e.data(), + dataResponse.nullableOptionalStructValue.Value().e.size()) + .c_str()); + jobject NullableOptionalStructValueInsideOptional_f; + std::string NullableOptionalStructValueInsideOptional_fClassName = "java/lang/Integer"; + std::string NullableOptionalStructValueInsideOptional_fCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + NullableOptionalStructValueInsideOptional_fClassName.c_str(), + NullableOptionalStructValueInsideOptional_fCtorSignature.c_str(), + dataResponse.nullableOptionalStructValue.Value().f.Raw(), NullableOptionalStructValueInsideOptional_f); + jobject NullableOptionalStructValueInsideOptional_g; + std::string NullableOptionalStructValueInsideOptional_gClassName = "java/lang/Float"; + std::string NullableOptionalStructValueInsideOptional_gCtorSignature = "(F)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + NullableOptionalStructValueInsideOptional_gClassName.c_str(), + NullableOptionalStructValueInsideOptional_gCtorSignature.c_str(), dataResponse.nullableOptionalStructValue.Value().g, + NullableOptionalStructValueInsideOptional_g); + jobject NullableOptionalStructValueInsideOptional_h; + std::string NullableOptionalStructValueInsideOptional_hClassName = "java/lang/Double"; + std::string NullableOptionalStructValueInsideOptional_hCtorSignature = "(D)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + NullableOptionalStructValueInsideOptional_hClassName.c_str(), + NullableOptionalStructValueInsideOptional_hCtorSignature.c_str(), dataResponse.nullableOptionalStructValue.Value().h, + NullableOptionalStructValueInsideOptional_h); + + jclass simpleStructStructClass_1; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$UnitTestingClusterSimpleStruct", simpleStructStructClass_1); + if (err != CHIP_NO_ERROR) { - NullableOptionalStructInsideOptional = nullptr; + ChipLogError(Zcl, "Could not find class ChipStructs$UnitTestingClusterSimpleStruct"); + return; } - else + jmethodID simpleStructStructCtor_1 = + env->GetMethodID(simpleStructStructClass_1, "", + "(Ljava/lang/Integer;Ljava/lang/Boolean;Ljava/lang/Integer;[BLjava/lang/String;Ljava/lang/" + "Integer;Ljava/lang/Float;Ljava/lang/Double;)V"); + if (simpleStructStructCtor_1 == nullptr) { - jobject NullableOptionalStructInsideOptional_a; - std::string NullableOptionalStructInsideOptional_aClassName = "java/lang/Integer"; - std::string NullableOptionalStructInsideOptional_aCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - NullableOptionalStructInsideOptional_aClassName.c_str(), - NullableOptionalStructInsideOptional_aCtorSignature.c_str(), dataResponse.nullableOptionalStruct.Value().Value().a, - NullableOptionalStructInsideOptional_a); - jobject NullableOptionalStructInsideOptional_b; - std::string NullableOptionalStructInsideOptional_bClassName = "java/lang/Boolean"; - std::string NullableOptionalStructInsideOptional_bCtorSignature = "(Z)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(NullableOptionalStructInsideOptional_bClassName.c_str(), - NullableOptionalStructInsideOptional_bCtorSignature.c_str(), - dataResponse.nullableOptionalStruct.Value().Value().b, - NullableOptionalStructInsideOptional_b); - jobject NullableOptionalStructInsideOptional_c; - std::string NullableOptionalStructInsideOptional_cClassName = "java/lang/Integer"; - std::string NullableOptionalStructInsideOptional_cCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - NullableOptionalStructInsideOptional_cClassName.c_str(), - NullableOptionalStructInsideOptional_cCtorSignature.c_str(), - static_cast(dataResponse.nullableOptionalStruct.Value().Value().c), - NullableOptionalStructInsideOptional_c); - jobject NullableOptionalStructInsideOptional_d; - jbyteArray NullableOptionalStructInsideOptional_dByteArray = - env->NewByteArray(static_cast(dataResponse.nullableOptionalStruct.Value().Value().d.size())); - env->SetByteArrayRegion(NullableOptionalStructInsideOptional_dByteArray, 0, - static_cast(dataResponse.nullableOptionalStruct.Value().Value().d.size()), - reinterpret_cast(dataResponse.nullableOptionalStruct.Value().Value().d.data())); - NullableOptionalStructInsideOptional_d = NullableOptionalStructInsideOptional_dByteArray; - jobject NullableOptionalStructInsideOptional_e; - NullableOptionalStructInsideOptional_e = - env->NewStringUTF(std::string(dataResponse.nullableOptionalStruct.Value().Value().e.data(), - dataResponse.nullableOptionalStruct.Value().Value().e.size()) - .c_str()); - jobject NullableOptionalStructInsideOptional_f; - std::string NullableOptionalStructInsideOptional_fClassName = "java/lang/Integer"; - std::string NullableOptionalStructInsideOptional_fCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - NullableOptionalStructInsideOptional_fClassName.c_str(), - NullableOptionalStructInsideOptional_fCtorSignature.c_str(), - dataResponse.nullableOptionalStruct.Value().Value().f.Raw(), NullableOptionalStructInsideOptional_f); - jobject NullableOptionalStructInsideOptional_g; - std::string NullableOptionalStructInsideOptional_gClassName = "java/lang/Float"; - std::string NullableOptionalStructInsideOptional_gCtorSignature = "(F)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(NullableOptionalStructInsideOptional_gClassName.c_str(), - NullableOptionalStructInsideOptional_gCtorSignature.c_str(), - dataResponse.nullableOptionalStruct.Value().Value().g, - NullableOptionalStructInsideOptional_g); - jobject NullableOptionalStructInsideOptional_h; - std::string NullableOptionalStructInsideOptional_hClassName = "java/lang/Double"; - std::string NullableOptionalStructInsideOptional_hCtorSignature = "(D)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - NullableOptionalStructInsideOptional_hClassName.c_str(), - NullableOptionalStructInsideOptional_hCtorSignature.c_str(), dataResponse.nullableOptionalStruct.Value().Value().h, - NullableOptionalStructInsideOptional_h); + ChipLogError(Zcl, "Could not find ChipStructs$UnitTestingClusterSimpleStruct constructor"); + return; + } - jclass simpleStructStructClass_2; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$UnitTestingClusterSimpleStruct", simpleStructStructClass_2); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$UnitTestingClusterSimpleStruct"); - return; - } - jmethodID simpleStructStructCtor_2 = - env->GetMethodID(simpleStructStructClass_2, "", - "(Ljava/lang/Integer;Ljava/lang/Boolean;Ljava/lang/Integer;[BLjava/lang/String;Ljava/lang/" - "Integer;Ljava/lang/Float;Ljava/lang/Double;)V"); - if (simpleStructStructCtor_2 == nullptr) - { - ChipLogError(Zcl, "Could not find ChipStructs$UnitTestingClusterSimpleStruct constructor"); - return; - } + NullableOptionalStructValueInsideOptional = + env->NewObject(simpleStructStructClass_1, simpleStructStructCtor_1, NullableOptionalStructValueInsideOptional_a, + NullableOptionalStructValueInsideOptional_b, NullableOptionalStructValueInsideOptional_c, + NullableOptionalStructValueInsideOptional_d, NullableOptionalStructValueInsideOptional_e, + NullableOptionalStructValueInsideOptional_f, NullableOptionalStructValueInsideOptional_g, + NullableOptionalStructValueInsideOptional_h); + chip::JniReferences::GetInstance().CreateOptional(NullableOptionalStructValueInsideOptional, NullableOptionalStructValue); + } + jobject NullableListWasNull; + std::string NullableListWasNullClassName = "java/lang/Boolean"; + std::string NullableListWasNullCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(NullableListWasNullClassName.c_str(), + NullableListWasNullCtorSignature.c_str(), + dataResponse.nullableListWasNull, NullableListWasNull); + jobject NullableListValue; + if (!dataResponse.nullableListValue.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, NullableListValue); + } + else + { + jobject NullableListValueInsideOptional; + chip::JniReferences::GetInstance().CreateArrayList(NullableListValueInsideOptional); - NullableOptionalStructInsideOptional = - env->NewObject(simpleStructStructClass_2, simpleStructStructCtor_2, NullableOptionalStructInsideOptional_a, - NullableOptionalStructInsideOptional_b, NullableOptionalStructInsideOptional_c, - NullableOptionalStructInsideOptional_d, NullableOptionalStructInsideOptional_e, - NullableOptionalStructInsideOptional_f, NullableOptionalStructInsideOptional_g, - NullableOptionalStructInsideOptional_h); + auto iter_NullableListValueInsideOptional_1 = dataResponse.nullableListValue.Value().begin(); + while (iter_NullableListValueInsideOptional_1.Next()) + { + auto & entry_1 = iter_NullableListValueInsideOptional_1.GetValue(); + jobject newElement_1; + std::string newElement_1ClassName = "java/lang/Integer"; + std::string newElement_1CtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_1ClassName.c_str(), newElement_1CtorSignature.c_str(), static_cast(entry_1), newElement_1); + chip::JniReferences::GetInstance().AddToList(NullableListValueInsideOptional, newElement_1); } - chip::JniReferences::GetInstance().CreateOptional(NullableOptionalStructInsideOptional, NullableOptionalStruct); + chip::JniReferences::GetInstance().CreateOptional(NullableListValueInsideOptional, NullableListValue); } - jobject NullableList; - if (dataResponse.nullableList.IsNull()) + jobject OptionalListWasPresent; + std::string OptionalListWasPresentClassName = "java/lang/Boolean"; + std::string OptionalListWasPresentCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(OptionalListWasPresentClassName.c_str(), + OptionalListWasPresentCtorSignature.c_str(), + dataResponse.optionalListWasPresent, OptionalListWasPresent); + jobject OptionalListValue; + if (!dataResponse.optionalListValue.HasValue()) { - NullableList = nullptr; + chip::JniReferences::GetInstance().CreateOptional(nullptr, OptionalListValue); } else { - chip::JniReferences::GetInstance().CreateArrayList(NullableList); + jobject OptionalListValueInsideOptional; + chip::JniReferences::GetInstance().CreateArrayList(OptionalListValueInsideOptional); - auto iter_NullableList_1 = dataResponse.nullableList.Value().begin(); - while (iter_NullableList_1.Next()) + auto iter_OptionalListValueInsideOptional_1 = dataResponse.optionalListValue.Value().begin(); + while (iter_OptionalListValueInsideOptional_1.Next()) { - auto & entry_1 = iter_NullableList_1.GetValue(); + auto & entry_1 = iter_OptionalListValueInsideOptional_1.GetValue(); jobject newElement_1; std::string newElement_1ClassName = "java/lang/Integer"; std::string newElement_1CtorSignature = "(I)V"; chip::JniReferences::GetInstance().CreateBoxedObject( newElement_1ClassName.c_str(), newElement_1CtorSignature.c_str(), static_cast(entry_1), newElement_1); - chip::JniReferences::GetInstance().AddToList(NullableList, newElement_1); + chip::JniReferences::GetInstance().AddToList(OptionalListValueInsideOptional, newElement_1); } + chip::JniReferences::GetInstance().CreateOptional(OptionalListValueInsideOptional, OptionalListValue); + } + jobject NullableOptionalListWasPresent; + std::string NullableOptionalListWasPresentClassName = "java/lang/Boolean"; + std::string NullableOptionalListWasPresentCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + NullableOptionalListWasPresentClassName.c_str(), NullableOptionalListWasPresentCtorSignature.c_str(), + dataResponse.nullableOptionalListWasPresent, NullableOptionalListWasPresent); + jobject NullableOptionalListWasNull; + if (!dataResponse.nullableOptionalListWasNull.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, NullableOptionalListWasNull); } - jobject OptionalList; - if (!dataResponse.optionalList.HasValue()) + else + { + jobject NullableOptionalListWasNullInsideOptional; + std::string NullableOptionalListWasNullInsideOptionalClassName = "java/lang/Boolean"; + std::string NullableOptionalListWasNullInsideOptionalCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(NullableOptionalListWasNullInsideOptionalClassName.c_str(), + NullableOptionalListWasNullInsideOptionalCtorSignature.c_str(), + dataResponse.nullableOptionalListWasNull.Value(), + NullableOptionalListWasNullInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(NullableOptionalListWasNullInsideOptional, NullableOptionalListWasNull); + } + jobject NullableOptionalListValue; + if (!dataResponse.nullableOptionalListValue.HasValue()) { - chip::JniReferences::GetInstance().CreateOptional(nullptr, OptionalList); + chip::JniReferences::GetInstance().CreateOptional(nullptr, NullableOptionalListValue); } else { - jobject OptionalListInsideOptional; - chip::JniReferences::GetInstance().CreateArrayList(OptionalListInsideOptional); + jobject NullableOptionalListValueInsideOptional; + chip::JniReferences::GetInstance().CreateArrayList(NullableOptionalListValueInsideOptional); - auto iter_OptionalListInsideOptional_1 = dataResponse.optionalList.Value().begin(); - while (iter_OptionalListInsideOptional_1.Next()) + auto iter_NullableOptionalListValueInsideOptional_1 = dataResponse.nullableOptionalListValue.Value().begin(); + while (iter_NullableOptionalListValueInsideOptional_1.Next()) { - auto & entry_1 = iter_OptionalListInsideOptional_1.GetValue(); + auto & entry_1 = iter_NullableOptionalListValueInsideOptional_1.GetValue(); jobject newElement_1; std::string newElement_1ClassName = "java/lang/Integer"; std::string newElement_1CtorSignature = "(I)V"; chip::JniReferences::GetInstance().CreateBoxedObject( newElement_1ClassName.c_str(), newElement_1CtorSignature.c_str(), static_cast(entry_1), newElement_1); - chip::JniReferences::GetInstance().AddToList(OptionalListInsideOptional, newElement_1); + chip::JniReferences::GetInstance().AddToList(NullableOptionalListValueInsideOptional, newElement_1); } - chip::JniReferences::GetInstance().CreateOptional(OptionalListInsideOptional, OptionalList); + chip::JniReferences::GetInstance().CreateOptional(NullableOptionalListValueInsideOptional, NullableOptionalListValue); } - jobject NullableOptionalList; - if (!dataResponse.nullableOptionalList.HasValue()) + + env->CallVoidMethod(javaCallbackRef, javaMethod, NullableIntWasNull, NullableIntValue, OptionalIntWasPresent, OptionalIntValue, + NullableOptionalIntWasPresent, NullableOptionalIntWasNull, NullableOptionalIntValue, NullableStringWasNull, + NullableStringValue, OptionalStringWasPresent, OptionalStringValue, NullableOptionalStringWasPresent, + NullableOptionalStringWasNull, NullableOptionalStringValue, NullableStructWasNull, NullableStructValue, + OptionalStructWasPresent, OptionalStructValue, NullableOptionalStructWasPresent, + NullableOptionalStructWasNull, NullableOptionalStructValue, NullableListWasNull, NullableListValue, + OptionalListWasPresent, OptionalListValue, NullableOptionalListWasPresent, NullableOptionalListWasNull, + NullableOptionalListValue); +} +CHIPUnitTestingClusterBooleanResponseCallback::CHIPUnitTestingClusterBooleanResponseCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) { - chip::JniReferences::GetInstance().CreateOptional(nullptr, NullableOptionalList); + ChipLogError(Zcl, "Could not create global reference for Java callback"); + return; } - else + + javaCallbackRef = env->NewGlobalRef(javaCallback); + if (javaCallbackRef == nullptr) { - jobject NullableOptionalListInsideOptional; - if (dataResponse.nullableOptionalList.Value().IsNull()) - { - NullableOptionalListInsideOptional = nullptr; - } - else - { - chip::JniReferences::GetInstance().CreateArrayList(NullableOptionalListInsideOptional); + ChipLogError(Zcl, "Could not create global reference for Java callback"); + } +} - auto iter_NullableOptionalListInsideOptional_2 = dataResponse.nullableOptionalList.Value().Value().begin(); - while (iter_NullableOptionalListInsideOptional_2.Next()) - { - auto & entry_2 = iter_NullableOptionalListInsideOptional_2.GetValue(); - jobject newElement_2; - std::string newElement_2ClassName = "java/lang/Integer"; - std::string newElement_2CtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_2ClassName.c_str(), newElement_2CtorSignature.c_str(), static_cast(entry_2), newElement_2); - chip::JniReferences::GetInstance().AddToList(NullableOptionalListInsideOptional, newElement_2); - } - } - chip::JniReferences::GetInstance().CreateOptional(NullableOptionalListInsideOptional, NullableOptionalList); +CHIPUnitTestingClusterBooleanResponseCallback::~CHIPUnitTestingClusterBooleanResponseCallback() +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + if (env == nullptr) + { + ChipLogError(Zcl, "Could not delete global reference for Java callback"); + return; } + env->DeleteGlobalRef(javaCallbackRef); +}; + +void CHIPUnitTestingClusterBooleanResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::UnitTesting::Commands::BooleanResponse::DecodableType & dataResponse) +{ + chip::DeviceLayer::StackUnlock unlock; + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + jobject javaCallbackRef; + jmethodID javaMethod; + + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); + + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); + VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); + + javaCallbackRef = cppCallback->javaCallbackRef; + // Java callback is allowed to be null, exit early if this is the case. + VerifyOrReturn(javaCallbackRef != nullptr); + + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Boolean;)V", &javaMethod); + VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - env->CallVoidMethod(javaCallbackRef, javaMethod, NullableInt, OptionalInt, NullableOptionalInt, NullableString, OptionalString, - NullableOptionalString, NullableStruct, OptionalStruct, NullableOptionalStruct, NullableList, OptionalList, - NullableOptionalList); + jobject value; + std::string valueClassName = "java/lang/Boolean"; + std::string valueCtorSignature = "(Z)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(valueClassName.c_str(), valueCtorSignature.c_str(), + dataResponse.value, value); + + env->CallVoidMethod(javaCallbackRef, javaMethod, value); } -CHIPUnitTestingClusterSimpleStructEchoRequestCallback::CHIPUnitTestingClusterSimpleStructEchoRequestCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPUnitTestingClusterSimpleStructResponseCallback::CHIPUnitTestingClusterSimpleStructResponseCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -15261,7 +5796,7 @@ CHIPUnitTestingClusterSimpleStructEchoRequestCallback::CHIPUnitTestingClusterSim } } -CHIPUnitTestingClusterSimpleStructEchoRequestCallback::~CHIPUnitTestingClusterSimpleStructEchoRequestCallback() +CHIPUnitTestingClusterSimpleStructResponseCallback::~CHIPUnitTestingClusterSimpleStructResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -15272,8 +5807,8 @@ CHIPUnitTestingClusterSimpleStructEchoRequestCallback::~CHIPUnitTestingClusterSi env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPUnitTestingClusterSimpleStructEchoRequestCallback::CallbackFn( - void * context, const chip::app::Clusters::UnitTesting::Commands::SimpleStructEchoRequest::DecodableType & dataResponse) +void CHIPUnitTestingClusterSimpleStructResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::UnitTesting::Commands::SimpleStructResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -15283,10 +5818,10 @@ void CHIPUnitTestingClusterSimpleStructEchoRequestCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; @@ -15358,134 +5893,9 @@ void CHIPUnitTestingClusterSimpleStructEchoRequestCallback::CallbackFn( env->CallVoidMethod(javaCallbackRef, javaMethod, arg1); } -CHIPUnitTestingClusterTimedInvokeRequestCallback::CHIPUnitTestingClusterTimedInvokeRequestCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPUnitTestingClusterTimedInvokeRequestCallback::~CHIPUnitTestingClusterTimedInvokeRequestCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPUnitTestingClusterTimedInvokeRequestCallback::CallbackFn( - void * context, const chip::app::Clusters::UnitTesting::Commands::TimedInvokeRequest::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "()V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - env->CallVoidMethod(javaCallbackRef, javaMethod); -} -CHIPUnitTestingClusterTestSimpleOptionalArgumentRequestCallback::CHIPUnitTestingClusterTestSimpleOptionalArgumentRequestCallback( - jobject javaCallback) : - Callback::Callback(CallbackFn, this) -{ - JNIEnv * env = 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"); - } -} - -CHIPUnitTestingClusterTestSimpleOptionalArgumentRequestCallback::~CHIPUnitTestingClusterTestSimpleOptionalArgumentRequestCallback() -{ - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - if (env == nullptr) - { - ChipLogError(Zcl, "Could not delete global reference for Java callback"); - return; - } - env->DeleteGlobalRef(javaCallbackRef); -}; - -void CHIPUnitTestingClusterTestSimpleOptionalArgumentRequestCallback::CallbackFn( - void * context, - const chip::app::Clusters::UnitTesting::Commands::TestSimpleOptionalArgumentRequest::DecodableType & dataResponse) -{ - chip::DeviceLayer::StackUnlock unlock; - CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - jobject javaCallbackRef; - jmethodID javaMethod; - - VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); - VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); - - javaCallbackRef = cppCallback->javaCallbackRef; - // Java callback is allowed to be null, exit early if this is the case. - VerifyOrReturn(javaCallbackRef != nullptr); - - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/util/Optional;)V", &javaMethod); - VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - - jobject arg1; - if (!dataResponse.arg1.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, arg1); - } - else - { - jobject arg1InsideOptional; - std::string arg1InsideOptionalClassName = "java/lang/Boolean"; - std::string arg1InsideOptionalCtorSignature = "(Z)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(arg1InsideOptionalClassName.c_str(), - arg1InsideOptionalCtorSignature.c_str(), - dataResponse.arg1.Value(), arg1InsideOptional); - chip::JniReferences::GetInstance().CreateOptional(arg1InsideOptional, arg1); - } - - env->CallVoidMethod(javaCallbackRef, javaMethod, arg1); -} -CHIPUnitTestingClusterTestEmitTestEventRequestCallback::CHIPUnitTestingClusterTestEmitTestEventRequestCallback( +CHIPUnitTestingClusterTestEmitTestEventResponseCallback::CHIPUnitTestingClusterTestEmitTestEventResponseCallback( jobject javaCallback) : - Callback::Callback(CallbackFn, this) + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -15501,7 +5911,7 @@ CHIPUnitTestingClusterTestEmitTestEventRequestCallback::CHIPUnitTestingClusterTe } } -CHIPUnitTestingClusterTestEmitTestEventRequestCallback::~CHIPUnitTestingClusterTestEmitTestEventRequestCallback() +CHIPUnitTestingClusterTestEmitTestEventResponseCallback::~CHIPUnitTestingClusterTestEmitTestEventResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -15512,8 +5922,8 @@ CHIPUnitTestingClusterTestEmitTestEventRequestCallback::~CHIPUnitTestingClusterT env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPUnitTestingClusterTestEmitTestEventRequestCallback::CallbackFn( - void * context, const chip::app::Clusters::UnitTesting::Commands::TestEmitTestEventRequest::DecodableType & dataResponse) +void CHIPUnitTestingClusterTestEmitTestEventResponseCallback::CallbackFn( + void * context, const chip::app::Clusters::UnitTesting::Commands::TestEmitTestEventResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -15523,41 +5933,30 @@ void CHIPUnitTestingClusterTestEmitTestEventRequestCallback::CallbackFn( VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Boolean;)V", &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject arg1; - std::string arg1ClassName = "java/lang/Integer"; - std::string arg1CtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(arg1ClassName.c_str(), arg1CtorSignature.c_str(), - dataResponse.arg1, arg1); - jobject arg2; - std::string arg2ClassName = "java/lang/Integer"; - std::string arg2CtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(arg2ClassName.c_str(), arg2CtorSignature.c_str(), - static_cast(dataResponse.arg2), arg2); - jobject arg3; - std::string arg3ClassName = "java/lang/Boolean"; - std::string arg3CtorSignature = "(Z)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(arg3ClassName.c_str(), arg3CtorSignature.c_str(), dataResponse.arg3, - arg3); + jobject value; + std::string valueClassName = "java/lang/Long"; + std::string valueCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(valueClassName.c_str(), valueCtorSignature.c_str(), + dataResponse.value, value); - env->CallVoidMethod(javaCallbackRef, javaMethod, arg1, arg2, arg3); + env->CallVoidMethod(javaCallbackRef, javaMethod, value); } -CHIPUnitTestingClusterTestEmitTestFabricScopedEventRequestCallback:: - CHIPUnitTestingClusterTestEmitTestFabricScopedEventRequestCallback(jobject javaCallback) : - Callback::Callback(CallbackFn, this) +CHIPUnitTestingClusterTestEmitTestFabricScopedEventResponseCallback:: + CHIPUnitTestingClusterTestEmitTestFabricScopedEventResponseCallback(jobject javaCallback) : + Callback::Callback(CallbackFn, this) { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -15573,8 +5972,8 @@ CHIPUnitTestingClusterTestEmitTestFabricScopedEventRequestCallback:: } } -CHIPUnitTestingClusterTestEmitTestFabricScopedEventRequestCallback:: - ~CHIPUnitTestingClusterTestEmitTestFabricScopedEventRequestCallback() +CHIPUnitTestingClusterTestEmitTestFabricScopedEventResponseCallback:: + ~CHIPUnitTestingClusterTestEmitTestFabricScopedEventResponseCallback() { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); if (env == nullptr) @@ -15585,9 +5984,9 @@ CHIPUnitTestingClusterTestEmitTestFabricScopedEventRequestCallback:: env->DeleteGlobalRef(javaCallbackRef); }; -void CHIPUnitTestingClusterTestEmitTestFabricScopedEventRequestCallback::CallbackFn( +void CHIPUnitTestingClusterTestEmitTestFabricScopedEventResponseCallback::CallbackFn( void * context, - const chip::app::Clusters::UnitTesting::Commands::TestEmitTestFabricScopedEventRequest::DecodableType & dataResponse) + const chip::app::Clusters::UnitTesting::Commands::TestEmitTestFabricScopedEventResponse::DecodableType & dataResponse) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -15597,25 +5996,25 @@ void CHIPUnitTestingClusterTestEmitTestFabricScopedEventRequestCallback::Callbac VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Error invoking Java callback: no JNIEnv")); - std::unique_ptr - cppCallback(reinterpret_cast(context), - chip::Platform::Delete); + std::unique_ptr + cppCallback(reinterpret_cast(context), + chip::Platform::Delete); VerifyOrReturn(cppCallback != nullptr, ChipLogError(Zcl, "Error invoking Java callback: failed to cast native callback")); javaCallbackRef = cppCallback->javaCallbackRef; // Java callback is allowed to be null, exit early if this is the case. VerifyOrReturn(javaCallbackRef != nullptr); - err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod); + err = JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod); VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error invoking Java callback: %s", ErrorStr(err))); - jobject arg1; - std::string arg1ClassName = "java/lang/Integer"; - std::string arg1CtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject(arg1ClassName.c_str(), arg1CtorSignature.c_str(), - dataResponse.arg1, arg1); + jobject value; + std::string valueClassName = "java/lang/Long"; + std::string valueCtorSignature = "(J)V"; + chip::JniReferences::GetInstance().CreateBoxedObject(valueClassName.c_str(), valueCtorSignature.c_str(), + dataResponse.value, value); - env->CallVoidMethod(javaCallbackRef, javaMethod, arg1); + env->CallVoidMethod(javaCallbackRef, javaMethod, value); } } // namespace chip diff --git a/src/controller/java/zap-generated/CHIPInvokeCallbacks.h b/src/controller/java/zap-generated/CHIPInvokeCallbacks.h index 4b527b3bbb01df..5a264fb1994368 100644 --- a/src/controller/java/zap-generated/CHIPInvokeCallbacks.h +++ b/src/controller/java/zap-generated/CHIPInvokeCallbacks.h @@ -24,2653 +24,829 @@ namespace chip { -class CHIPIdentifyClusterIdentifyCallback : public Callback::Callback +class CHIPGroupsClusterAddGroupResponseCallback : public Callback::Callback { public: - CHIPIdentifyClusterIdentifyCallback(jobject javaCallback); + CHIPGroupsClusterAddGroupResponseCallback(jobject javaCallback); - ~CHIPIdentifyClusterIdentifyCallback(); + ~CHIPGroupsClusterAddGroupResponseCallback(); - static void CallbackFn(void * context, const chip::app::Clusters::Identify::Commands::Identify::DecodableType & data); + static void CallbackFn(void * context, const chip::app::Clusters::Groups::Commands::AddGroupResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPIdentifyClusterTriggerEffectCallback : public Callback::Callback +class CHIPGroupsClusterViewGroupResponseCallback : public Callback::Callback { public: - CHIPIdentifyClusterTriggerEffectCallback(jobject javaCallback); + CHIPGroupsClusterViewGroupResponseCallback(jobject javaCallback); - ~CHIPIdentifyClusterTriggerEffectCallback(); + ~CHIPGroupsClusterViewGroupResponseCallback(); - static void CallbackFn(void * context, const chip::app::Clusters::Identify::Commands::TriggerEffect::DecodableType & data); + static void CallbackFn(void * context, const chip::app::Clusters::Groups::Commands::ViewGroupResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPGroupsClusterAddGroupCallback : public Callback::Callback +class CHIPGroupsClusterGetGroupMembershipResponseCallback + : public Callback::Callback { public: - CHIPGroupsClusterAddGroupCallback(jobject javaCallback); + CHIPGroupsClusterGetGroupMembershipResponseCallback(jobject javaCallback); - ~CHIPGroupsClusterAddGroupCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::Groups::Commands::AddGroup::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPGroupsClusterViewGroupCallback : public Callback::Callback -{ -public: - CHIPGroupsClusterViewGroupCallback(jobject javaCallback); - - ~CHIPGroupsClusterViewGroupCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::Groups::Commands::ViewGroup::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPGroupsClusterGetGroupMembershipCallback : public Callback::Callback -{ -public: - CHIPGroupsClusterGetGroupMembershipCallback(jobject javaCallback); - - ~CHIPGroupsClusterGetGroupMembershipCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::Groups::Commands::GetGroupMembership::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPGroupsClusterRemoveGroupCallback : public Callback::Callback -{ -public: - CHIPGroupsClusterRemoveGroupCallback(jobject javaCallback); - - ~CHIPGroupsClusterRemoveGroupCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::Groups::Commands::RemoveGroup::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPGroupsClusterRemoveAllGroupsCallback : public Callback::Callback -{ -public: - CHIPGroupsClusterRemoveAllGroupsCallback(jobject javaCallback); - - ~CHIPGroupsClusterRemoveAllGroupsCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::Groups::Commands::RemoveAllGroups::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPGroupsClusterAddGroupIfIdentifyingCallback : public Callback::Callback -{ -public: - CHIPGroupsClusterAddGroupIfIdentifyingCallback(jobject javaCallback); - - ~CHIPGroupsClusterAddGroupIfIdentifyingCallback(); + ~CHIPGroupsClusterGetGroupMembershipResponseCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::Groups::Commands::AddGroupIfIdentifying::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPScenesClusterAddSceneCallback : public Callback::Callback -{ -public: - CHIPScenesClusterAddSceneCallback(jobject javaCallback); - - ~CHIPScenesClusterAddSceneCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::Scenes::Commands::AddScene::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPScenesClusterViewSceneCallback : public Callback::Callback -{ -public: - CHIPScenesClusterViewSceneCallback(jobject javaCallback); - - ~CHIPScenesClusterViewSceneCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::Scenes::Commands::ViewScene::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPScenesClusterRemoveSceneCallback : public Callback::Callback -{ -public: - CHIPScenesClusterRemoveSceneCallback(jobject javaCallback); - - ~CHIPScenesClusterRemoveSceneCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::Scenes::Commands::RemoveScene::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPScenesClusterRemoveAllScenesCallback : public Callback::Callback -{ -public: - CHIPScenesClusterRemoveAllScenesCallback(jobject javaCallback); - - ~CHIPScenesClusterRemoveAllScenesCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::Scenes::Commands::RemoveAllScenes::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPScenesClusterStoreSceneCallback : public Callback::Callback -{ -public: - CHIPScenesClusterStoreSceneCallback(jobject javaCallback); - - ~CHIPScenesClusterStoreSceneCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::Scenes::Commands::StoreScene::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPScenesClusterRecallSceneCallback : public Callback::Callback -{ -public: - CHIPScenesClusterRecallSceneCallback(jobject javaCallback); - - ~CHIPScenesClusterRecallSceneCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::Scenes::Commands::RecallScene::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPScenesClusterGetSceneMembershipCallback : public Callback::Callback -{ -public: - CHIPScenesClusterGetSceneMembershipCallback(jobject javaCallback); - - ~CHIPScenesClusterGetSceneMembershipCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::Scenes::Commands::GetSceneMembership::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPScenesClusterEnhancedAddSceneCallback : public Callback::Callback -{ -public: - CHIPScenesClusterEnhancedAddSceneCallback(jobject javaCallback); - - ~CHIPScenesClusterEnhancedAddSceneCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::Scenes::Commands::EnhancedAddScene::DecodableType & data); + const chip::app::Clusters::Groups::Commands::GetGroupMembershipResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPScenesClusterEnhancedViewSceneCallback : public Callback::Callback +class CHIPGroupsClusterRemoveGroupResponseCallback : public Callback::Callback { public: - CHIPScenesClusterEnhancedViewSceneCallback(jobject javaCallback); + CHIPGroupsClusterRemoveGroupResponseCallback(jobject javaCallback); - ~CHIPScenesClusterEnhancedViewSceneCallback(); + ~CHIPGroupsClusterRemoveGroupResponseCallback(); - static void CallbackFn(void * context, const chip::app::Clusters::Scenes::Commands::EnhancedViewScene::DecodableType & data); + static void CallbackFn(void * context, const chip::app::Clusters::Groups::Commands::RemoveGroupResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPScenesClusterCopySceneCallback : public Callback::Callback +class CHIPScenesClusterAddSceneResponseCallback : public Callback::Callback { public: - CHIPScenesClusterCopySceneCallback(jobject javaCallback); + CHIPScenesClusterAddSceneResponseCallback(jobject javaCallback); - ~CHIPScenesClusterCopySceneCallback(); + ~CHIPScenesClusterAddSceneResponseCallback(); - static void CallbackFn(void * context, const chip::app::Clusters::Scenes::Commands::CopyScene::DecodableType & data); + static void CallbackFn(void * context, const chip::app::Clusters::Scenes::Commands::AddSceneResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPOnOffClusterOffCallback : public Callback::Callback +class CHIPScenesClusterViewSceneResponseCallback : public Callback::Callback { public: - CHIPOnOffClusterOffCallback(jobject javaCallback); + CHIPScenesClusterViewSceneResponseCallback(jobject javaCallback); - ~CHIPOnOffClusterOffCallback(); + ~CHIPScenesClusterViewSceneResponseCallback(); - static void CallbackFn(void * context, const chip::app::Clusters::OnOff::Commands::Off::DecodableType & data); + static void CallbackFn(void * context, const chip::app::Clusters::Scenes::Commands::ViewSceneResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPOnOffClusterOnCallback : public Callback::Callback +class CHIPScenesClusterRemoveSceneResponseCallback : public Callback::Callback { public: - CHIPOnOffClusterOnCallback(jobject javaCallback); + CHIPScenesClusterRemoveSceneResponseCallback(jobject javaCallback); - ~CHIPOnOffClusterOnCallback(); + ~CHIPScenesClusterRemoveSceneResponseCallback(); - static void CallbackFn(void * context, const chip::app::Clusters::OnOff::Commands::On::DecodableType & data); + static void CallbackFn(void * context, const chip::app::Clusters::Scenes::Commands::RemoveSceneResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPOnOffClusterToggleCallback : public Callback::Callback +class CHIPScenesClusterRemoveAllScenesResponseCallback + : public Callback::Callback { public: - CHIPOnOffClusterToggleCallback(jobject javaCallback); + CHIPScenesClusterRemoveAllScenesResponseCallback(jobject javaCallback); - ~CHIPOnOffClusterToggleCallback(); + ~CHIPScenesClusterRemoveAllScenesResponseCallback(); - static void CallbackFn(void * context, const chip::app::Clusters::OnOff::Commands::Toggle::DecodableType & data); + static void CallbackFn(void * context, + const chip::app::Clusters::Scenes::Commands::RemoveAllScenesResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPOnOffClusterOffWithEffectCallback : public Callback::Callback +class CHIPScenesClusterStoreSceneResponseCallback : public Callback::Callback { public: - CHIPOnOffClusterOffWithEffectCallback(jobject javaCallback); + CHIPScenesClusterStoreSceneResponseCallback(jobject javaCallback); - ~CHIPOnOffClusterOffWithEffectCallback(); + ~CHIPScenesClusterStoreSceneResponseCallback(); - static void CallbackFn(void * context, const chip::app::Clusters::OnOff::Commands::OffWithEffect::DecodableType & data); + static void CallbackFn(void * context, const chip::app::Clusters::Scenes::Commands::StoreSceneResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPOnOffClusterOnWithRecallGlobalSceneCallback - : public Callback::Callback +class CHIPScenesClusterGetSceneMembershipResponseCallback + : public Callback::Callback { public: - CHIPOnOffClusterOnWithRecallGlobalSceneCallback(jobject javaCallback); + CHIPScenesClusterGetSceneMembershipResponseCallback(jobject javaCallback); - ~CHIPOnOffClusterOnWithRecallGlobalSceneCallback(); + ~CHIPScenesClusterGetSceneMembershipResponseCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::OnOff::Commands::OnWithRecallGlobalScene::DecodableType & data); + const chip::app::Clusters::Scenes::Commands::GetSceneMembershipResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPOnOffClusterOnWithTimedOffCallback : public Callback::Callback +class CHIPScenesClusterEnhancedAddSceneResponseCallback + : public Callback::Callback { public: - CHIPOnOffClusterOnWithTimedOffCallback(jobject javaCallback); + CHIPScenesClusterEnhancedAddSceneResponseCallback(jobject javaCallback); - ~CHIPOnOffClusterOnWithTimedOffCallback(); + ~CHIPScenesClusterEnhancedAddSceneResponseCallback(); - static void CallbackFn(void * context, const chip::app::Clusters::OnOff::Commands::OnWithTimedOff::DecodableType & data); + static void CallbackFn(void * context, + const chip::app::Clusters::Scenes::Commands::EnhancedAddSceneResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPLevelControlClusterMoveToLevelCallback : public Callback::Callback +class CHIPScenesClusterEnhancedViewSceneResponseCallback + : public Callback::Callback { public: - CHIPLevelControlClusterMoveToLevelCallback(jobject javaCallback); + CHIPScenesClusterEnhancedViewSceneResponseCallback(jobject javaCallback); - ~CHIPLevelControlClusterMoveToLevelCallback(); + ~CHIPScenesClusterEnhancedViewSceneResponseCallback(); - static void CallbackFn(void * context, const chip::app::Clusters::LevelControl::Commands::MoveToLevel::DecodableType & data); + static void CallbackFn(void * context, + const chip::app::Clusters::Scenes::Commands::EnhancedViewSceneResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPLevelControlClusterMoveCallback : public Callback::Callback +class CHIPScenesClusterCopySceneResponseCallback : public Callback::Callback { public: - CHIPLevelControlClusterMoveCallback(jobject javaCallback); + CHIPScenesClusterCopySceneResponseCallback(jobject javaCallback); - ~CHIPLevelControlClusterMoveCallback(); + ~CHIPScenesClusterCopySceneResponseCallback(); - static void CallbackFn(void * context, const chip::app::Clusters::LevelControl::Commands::Move::DecodableType & data); + static void CallbackFn(void * context, const chip::app::Clusters::Scenes::Commands::CopySceneResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPLevelControlClusterStepCallback : public Callback::Callback +class CHIPOtaSoftwareUpdateProviderClusterQueryImageResponseCallback + : public Callback::Callback { public: - CHIPLevelControlClusterStepCallback(jobject javaCallback); + CHIPOtaSoftwareUpdateProviderClusterQueryImageResponseCallback(jobject javaCallback); - ~CHIPLevelControlClusterStepCallback(); + ~CHIPOtaSoftwareUpdateProviderClusterQueryImageResponseCallback(); - static void CallbackFn(void * context, const chip::app::Clusters::LevelControl::Commands::Step::DecodableType & data); + static void + CallbackFn(void * context, + const chip::app::Clusters::OtaSoftwareUpdateProvider::Commands::QueryImageResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPLevelControlClusterStopCallback : public Callback::Callback +class CHIPOtaSoftwareUpdateProviderClusterApplyUpdateResponseCallback + : public Callback::Callback { public: - CHIPLevelControlClusterStopCallback(jobject javaCallback); + CHIPOtaSoftwareUpdateProviderClusterApplyUpdateResponseCallback(jobject javaCallback); - ~CHIPLevelControlClusterStopCallback(); + ~CHIPOtaSoftwareUpdateProviderClusterApplyUpdateResponseCallback(); - static void CallbackFn(void * context, const chip::app::Clusters::LevelControl::Commands::Stop::DecodableType & data); + static void + CallbackFn(void * context, + const chip::app::Clusters::OtaSoftwareUpdateProvider::Commands::ApplyUpdateResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPLevelControlClusterMoveToLevelWithOnOffCallback - : public Callback::Callback +class CHIPGeneralCommissioningClusterArmFailSafeResponseCallback + : public Callback::Callback { public: - CHIPLevelControlClusterMoveToLevelWithOnOffCallback(jobject javaCallback); + CHIPGeneralCommissioningClusterArmFailSafeResponseCallback(jobject javaCallback); - ~CHIPLevelControlClusterMoveToLevelWithOnOffCallback(); + ~CHIPGeneralCommissioningClusterArmFailSafeResponseCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::LevelControl::Commands::MoveToLevelWithOnOff::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPLevelControlClusterMoveWithOnOffCallback : public Callback::Callback -{ -public: - CHIPLevelControlClusterMoveWithOnOffCallback(jobject javaCallback); - - ~CHIPLevelControlClusterMoveWithOnOffCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::LevelControl::Commands::MoveWithOnOff::DecodableType & data); + const chip::app::Clusters::GeneralCommissioning::Commands::ArmFailSafeResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPLevelControlClusterStepWithOnOffCallback : public Callback::Callback +class CHIPGeneralCommissioningClusterSetRegulatoryConfigResponseCallback + : public Callback::Callback { public: - CHIPLevelControlClusterStepWithOnOffCallback(jobject javaCallback); + CHIPGeneralCommissioningClusterSetRegulatoryConfigResponseCallback(jobject javaCallback); - ~CHIPLevelControlClusterStepWithOnOffCallback(); + ~CHIPGeneralCommissioningClusterSetRegulatoryConfigResponseCallback(); - static void CallbackFn(void * context, const chip::app::Clusters::LevelControl::Commands::StepWithOnOff::DecodableType & data); + static void + CallbackFn(void * context, + const chip::app::Clusters::GeneralCommissioning::Commands::SetRegulatoryConfigResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPLevelControlClusterStopWithOnOffCallback : public Callback::Callback +class CHIPGeneralCommissioningClusterCommissioningCompleteResponseCallback + : public Callback::Callback { public: - CHIPLevelControlClusterStopWithOnOffCallback(jobject javaCallback); + CHIPGeneralCommissioningClusterCommissioningCompleteResponseCallback(jobject javaCallback); - ~CHIPLevelControlClusterStopWithOnOffCallback(); + ~CHIPGeneralCommissioningClusterCommissioningCompleteResponseCallback(); - static void CallbackFn(void * context, const chip::app::Clusters::LevelControl::Commands::StopWithOnOff::DecodableType & data); + static void + CallbackFn(void * context, + const chip::app::Clusters::GeneralCommissioning::Commands::CommissioningCompleteResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPLevelControlClusterMoveToClosestFrequencyCallback - : public Callback::Callback +class CHIPNetworkCommissioningClusterScanNetworksResponseCallback + : public Callback::Callback { public: - CHIPLevelControlClusterMoveToClosestFrequencyCallback(jobject javaCallback); + CHIPNetworkCommissioningClusterScanNetworksResponseCallback(jobject javaCallback); - ~CHIPLevelControlClusterMoveToClosestFrequencyCallback(); + ~CHIPNetworkCommissioningClusterScanNetworksResponseCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::LevelControl::Commands::MoveToClosestFrequency::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPActionsClusterInstantActionCallback : public Callback::Callback -{ -public: - CHIPActionsClusterInstantActionCallback(jobject javaCallback); - - ~CHIPActionsClusterInstantActionCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::Actions::Commands::InstantAction::DecodableType & data); + const chip::app::Clusters::NetworkCommissioning::Commands::ScanNetworksResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPActionsClusterInstantActionWithTransitionCallback - : public Callback::Callback +class CHIPNetworkCommissioningClusterNetworkConfigResponseCallback + : public Callback::Callback { public: - CHIPActionsClusterInstantActionWithTransitionCallback(jobject javaCallback); + CHIPNetworkCommissioningClusterNetworkConfigResponseCallback(jobject javaCallback); - ~CHIPActionsClusterInstantActionWithTransitionCallback(); + ~CHIPNetworkCommissioningClusterNetworkConfigResponseCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::Actions::Commands::InstantActionWithTransition::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPActionsClusterStartActionCallback : public Callback::Callback -{ -public: - CHIPActionsClusterStartActionCallback(jobject javaCallback); - - ~CHIPActionsClusterStartActionCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::Actions::Commands::StartAction::DecodableType & data); + const chip::app::Clusters::NetworkCommissioning::Commands::NetworkConfigResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPActionsClusterStartActionWithDurationCallback - : public Callback::Callback +class CHIPNetworkCommissioningClusterConnectNetworkResponseCallback + : public Callback::Callback { public: - CHIPActionsClusterStartActionWithDurationCallback(jobject javaCallback); + CHIPNetworkCommissioningClusterConnectNetworkResponseCallback(jobject javaCallback); - ~CHIPActionsClusterStartActionWithDurationCallback(); + ~CHIPNetworkCommissioningClusterConnectNetworkResponseCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::Actions::Commands::StartActionWithDuration::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPActionsClusterStopActionCallback : public Callback::Callback -{ -public: - CHIPActionsClusterStopActionCallback(jobject javaCallback); - - ~CHIPActionsClusterStopActionCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::Actions::Commands::StopAction::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPActionsClusterPauseActionCallback : public Callback::Callback -{ -public: - CHIPActionsClusterPauseActionCallback(jobject javaCallback); - - ~CHIPActionsClusterPauseActionCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::Actions::Commands::PauseAction::DecodableType & data); + const chip::app::Clusters::NetworkCommissioning::Commands::ConnectNetworkResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPActionsClusterPauseActionWithDurationCallback - : public Callback::Callback +class CHIPDiagnosticLogsClusterRetrieveLogsResponseCallback + : public Callback::Callback { public: - CHIPActionsClusterPauseActionWithDurationCallback(jobject javaCallback); + CHIPDiagnosticLogsClusterRetrieveLogsResponseCallback(jobject javaCallback); - ~CHIPActionsClusterPauseActionWithDurationCallback(); + ~CHIPDiagnosticLogsClusterRetrieveLogsResponseCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::Actions::Commands::PauseActionWithDuration::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPActionsClusterResumeActionCallback : public Callback::Callback -{ -public: - CHIPActionsClusterResumeActionCallback(jobject javaCallback); - - ~CHIPActionsClusterResumeActionCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::Actions::Commands::ResumeAction::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPActionsClusterEnableActionCallback : public Callback::Callback -{ -public: - CHIPActionsClusterEnableActionCallback(jobject javaCallback); - - ~CHIPActionsClusterEnableActionCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::Actions::Commands::EnableAction::DecodableType & data); + const chip::app::Clusters::DiagnosticLogs::Commands::RetrieveLogsResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPActionsClusterEnableActionWithDurationCallback - : public Callback::Callback +class CHIPOperationalCredentialsClusterAttestationResponseCallback + : public Callback::Callback { public: - CHIPActionsClusterEnableActionWithDurationCallback(jobject javaCallback); + CHIPOperationalCredentialsClusterAttestationResponseCallback(jobject javaCallback); - ~CHIPActionsClusterEnableActionWithDurationCallback(); + ~CHIPOperationalCredentialsClusterAttestationResponseCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::Actions::Commands::EnableActionWithDuration::DecodableType & data); + const chip::app::Clusters::OperationalCredentials::Commands::AttestationResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPActionsClusterDisableActionCallback : public Callback::Callback +class CHIPOperationalCredentialsClusterCertificateChainResponseCallback + : public Callback::Callback { public: - CHIPActionsClusterDisableActionCallback(jobject javaCallback); + CHIPOperationalCredentialsClusterCertificateChainResponseCallback(jobject javaCallback); - ~CHIPActionsClusterDisableActionCallback(); + ~CHIPOperationalCredentialsClusterCertificateChainResponseCallback(); - static void CallbackFn(void * context, const chip::app::Clusters::Actions::Commands::DisableAction::DecodableType & data); + static void + CallbackFn(void * context, + const chip::app::Clusters::OperationalCredentials::Commands::CertificateChainResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPActionsClusterDisableActionWithDurationCallback - : public Callback::Callback +class CHIPOperationalCredentialsClusterCSRResponseCallback + : public Callback::Callback { public: - CHIPActionsClusterDisableActionWithDurationCallback(jobject javaCallback); + CHIPOperationalCredentialsClusterCSRResponseCallback(jobject javaCallback); - ~CHIPActionsClusterDisableActionWithDurationCallback(); + ~CHIPOperationalCredentialsClusterCSRResponseCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::Actions::Commands::DisableActionWithDuration::DecodableType & data); + const chip::app::Clusters::OperationalCredentials::Commands::CSRResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPBasicInformationClusterMfgSpecificPingCallback - : public Callback::Callback +class CHIPOperationalCredentialsClusterNOCResponseCallback + : public Callback::Callback { public: - CHIPBasicInformationClusterMfgSpecificPingCallback(jobject javaCallback); + CHIPOperationalCredentialsClusterNOCResponseCallback(jobject javaCallback); - ~CHIPBasicInformationClusterMfgSpecificPingCallback(); + ~CHIPOperationalCredentialsClusterNOCResponseCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::BasicInformation::Commands::MfgSpecificPing::DecodableType & data); + const chip::app::Clusters::OperationalCredentials::Commands::NOCResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPOtaSoftwareUpdateProviderClusterQueryImageCallback - : public Callback::Callback +class CHIPGroupKeyManagementClusterKeySetReadResponseCallback + : public Callback::Callback { public: - CHIPOtaSoftwareUpdateProviderClusterQueryImageCallback(jobject javaCallback); + CHIPGroupKeyManagementClusterKeySetReadResponseCallback(jobject javaCallback); - ~CHIPOtaSoftwareUpdateProviderClusterQueryImageCallback(); + ~CHIPGroupKeyManagementClusterKeySetReadResponseCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::OtaSoftwareUpdateProvider::Commands::QueryImage::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPOtaSoftwareUpdateProviderClusterApplyUpdateRequestCallback - : public Callback::Callback -{ -public: - CHIPOtaSoftwareUpdateProviderClusterApplyUpdateRequestCallback(jobject javaCallback); - - ~CHIPOtaSoftwareUpdateProviderClusterApplyUpdateRequestCallback(); - - static void - CallbackFn(void * context, - const chip::app::Clusters::OtaSoftwareUpdateProvider::Commands::ApplyUpdateRequest::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPOtaSoftwareUpdateProviderClusterNotifyUpdateAppliedCallback - : public Callback::Callback -{ -public: - CHIPOtaSoftwareUpdateProviderClusterNotifyUpdateAppliedCallback(jobject javaCallback); - - ~CHIPOtaSoftwareUpdateProviderClusterNotifyUpdateAppliedCallback(); - - static void - CallbackFn(void * context, - const chip::app::Clusters::OtaSoftwareUpdateProvider::Commands::NotifyUpdateApplied::DecodableType & data); + const chip::app::Clusters::GroupKeyManagement::Commands::KeySetReadResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPOtaSoftwareUpdateRequestorClusterAnnounceOTAProviderCallback - : public Callback::Callback +class CHIPGroupKeyManagementClusterKeySetReadAllIndicesResponseCallback + : public Callback::Callback { public: - CHIPOtaSoftwareUpdateRequestorClusterAnnounceOTAProviderCallback(jobject javaCallback); + CHIPGroupKeyManagementClusterKeySetReadAllIndicesResponseCallback(jobject javaCallback); - ~CHIPOtaSoftwareUpdateRequestorClusterAnnounceOTAProviderCallback(); + ~CHIPGroupKeyManagementClusterKeySetReadAllIndicesResponseCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::OtaSoftwareUpdateRequestor::Commands::AnnounceOTAProvider::DecodableType & data); + const chip::app::Clusters::GroupKeyManagement::Commands::KeySetReadAllIndicesResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPGeneralCommissioningClusterArmFailSafeCallback - : public Callback::Callback +class CHIPDoorLockClusterGetWeekDayScheduleResponseCallback + : public Callback::Callback { public: - CHIPGeneralCommissioningClusterArmFailSafeCallback(jobject javaCallback); + CHIPDoorLockClusterGetWeekDayScheduleResponseCallback(jobject javaCallback); - ~CHIPGeneralCommissioningClusterArmFailSafeCallback(); + ~CHIPDoorLockClusterGetWeekDayScheduleResponseCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::GeneralCommissioning::Commands::ArmFailSafe::DecodableType & data); + const chip::app::Clusters::DoorLock::Commands::GetWeekDayScheduleResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPGeneralCommissioningClusterSetRegulatoryConfigCallback - : public Callback::Callback +class CHIPDoorLockClusterGetYearDayScheduleResponseCallback + : public Callback::Callback { public: - CHIPGeneralCommissioningClusterSetRegulatoryConfigCallback(jobject javaCallback); + CHIPDoorLockClusterGetYearDayScheduleResponseCallback(jobject javaCallback); - ~CHIPGeneralCommissioningClusterSetRegulatoryConfigCallback(); + ~CHIPDoorLockClusterGetYearDayScheduleResponseCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::GeneralCommissioning::Commands::SetRegulatoryConfig::DecodableType & data); + const chip::app::Clusters::DoorLock::Commands::GetYearDayScheduleResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPGeneralCommissioningClusterCommissioningCompleteCallback - : public Callback::Callback +class CHIPDoorLockClusterGetHolidayScheduleResponseCallback + : public Callback::Callback { public: - CHIPGeneralCommissioningClusterCommissioningCompleteCallback(jobject javaCallback); + CHIPDoorLockClusterGetHolidayScheduleResponseCallback(jobject javaCallback); - ~CHIPGeneralCommissioningClusterCommissioningCompleteCallback(); + ~CHIPDoorLockClusterGetHolidayScheduleResponseCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::GeneralCommissioning::Commands::CommissioningComplete::DecodableType & data); + const chip::app::Clusters::DoorLock::Commands::GetHolidayScheduleResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPNetworkCommissioningClusterScanNetworksCallback - : public Callback::Callback +class CHIPDoorLockClusterGetUserResponseCallback : public Callback::Callback { public: - CHIPNetworkCommissioningClusterScanNetworksCallback(jobject javaCallback); + CHIPDoorLockClusterGetUserResponseCallback(jobject javaCallback); - ~CHIPNetworkCommissioningClusterScanNetworksCallback(); + ~CHIPDoorLockClusterGetUserResponseCallback(); - static void CallbackFn(void * context, - const chip::app::Clusters::NetworkCommissioning::Commands::ScanNetworks::DecodableType & data); + static void CallbackFn(void * context, const chip::app::Clusters::DoorLock::Commands::GetUserResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPNetworkCommissioningClusterAddOrUpdateWiFiNetworkCallback - : public Callback::Callback +class CHIPDoorLockClusterSetCredentialResponseCallback + : public Callback::Callback { public: - CHIPNetworkCommissioningClusterAddOrUpdateWiFiNetworkCallback(jobject javaCallback); + CHIPDoorLockClusterSetCredentialResponseCallback(jobject javaCallback); - ~CHIPNetworkCommissioningClusterAddOrUpdateWiFiNetworkCallback(); + ~CHIPDoorLockClusterSetCredentialResponseCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::NetworkCommissioning::Commands::AddOrUpdateWiFiNetwork::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPNetworkCommissioningClusterAddOrUpdateThreadNetworkCallback - : public Callback::Callback -{ -public: - CHIPNetworkCommissioningClusterAddOrUpdateThreadNetworkCallback(jobject javaCallback); - - ~CHIPNetworkCommissioningClusterAddOrUpdateThreadNetworkCallback(); - - static void - CallbackFn(void * context, - const chip::app::Clusters::NetworkCommissioning::Commands::AddOrUpdateThreadNetwork::DecodableType & data); + const chip::app::Clusters::DoorLock::Commands::SetCredentialResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPNetworkCommissioningClusterRemoveNetworkCallback - : public Callback::Callback +class CHIPDoorLockClusterGetCredentialStatusResponseCallback + : public Callback::Callback { public: - CHIPNetworkCommissioningClusterRemoveNetworkCallback(jobject javaCallback); + CHIPDoorLockClusterGetCredentialStatusResponseCallback(jobject javaCallback); - ~CHIPNetworkCommissioningClusterRemoveNetworkCallback(); + ~CHIPDoorLockClusterGetCredentialStatusResponseCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::NetworkCommissioning::Commands::RemoveNetwork::DecodableType & data); + const chip::app::Clusters::DoorLock::Commands::GetCredentialStatusResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPNetworkCommissioningClusterConnectNetworkCallback - : public Callback::Callback +class CHIPThermostatClusterGetWeeklyScheduleResponseCallback + : public Callback::Callback { public: - CHIPNetworkCommissioningClusterConnectNetworkCallback(jobject javaCallback); + CHIPThermostatClusterGetWeeklyScheduleResponseCallback(jobject javaCallback); - ~CHIPNetworkCommissioningClusterConnectNetworkCallback(); + ~CHIPThermostatClusterGetWeeklyScheduleResponseCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::NetworkCommissioning::Commands::ConnectNetwork::DecodableType & data); + const chip::app::Clusters::Thermostat::Commands::GetWeeklyScheduleResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPNetworkCommissioningClusterReorderNetworkCallback - : public Callback::Callback +class CHIPChannelClusterChangeChannelResponseCallback + : public Callback::Callback { public: - CHIPNetworkCommissioningClusterReorderNetworkCallback(jobject javaCallback); + CHIPChannelClusterChangeChannelResponseCallback(jobject javaCallback); - ~CHIPNetworkCommissioningClusterReorderNetworkCallback(); + ~CHIPChannelClusterChangeChannelResponseCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::NetworkCommissioning::Commands::ReorderNetwork::DecodableType & data); + const chip::app::Clusters::Channel::Commands::ChangeChannelResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPDiagnosticLogsClusterRetrieveLogsRequestCallback - : public Callback::Callback +class CHIPTargetNavigatorClusterNavigateTargetResponseCallback + : public Callback::Callback { public: - CHIPDiagnosticLogsClusterRetrieveLogsRequestCallback(jobject javaCallback); + CHIPTargetNavigatorClusterNavigateTargetResponseCallback(jobject javaCallback); - ~CHIPDiagnosticLogsClusterRetrieveLogsRequestCallback(); + ~CHIPTargetNavigatorClusterNavigateTargetResponseCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::DiagnosticLogs::Commands::RetrieveLogsRequest::DecodableType & data); + const chip::app::Clusters::TargetNavigator::Commands::NavigateTargetResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPGeneralDiagnosticsClusterTestEventTriggerCallback - : public Callback::Callback +class CHIPMediaPlaybackClusterPlaybackResponseCallback + : public Callback::Callback { public: - CHIPGeneralDiagnosticsClusterTestEventTriggerCallback(jobject javaCallback); + CHIPMediaPlaybackClusterPlaybackResponseCallback(jobject javaCallback); - ~CHIPGeneralDiagnosticsClusterTestEventTriggerCallback(); + ~CHIPMediaPlaybackClusterPlaybackResponseCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::DecodableType & data); + const chip::app::Clusters::MediaPlayback::Commands::PlaybackResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPSoftwareDiagnosticsClusterResetWatermarksCallback - : public Callback::Callback +class CHIPKeypadInputClusterSendKeyResponseCallback : public Callback::Callback { public: - CHIPSoftwareDiagnosticsClusterResetWatermarksCallback(jobject javaCallback); + CHIPKeypadInputClusterSendKeyResponseCallback(jobject javaCallback); - ~CHIPSoftwareDiagnosticsClusterResetWatermarksCallback(); + ~CHIPKeypadInputClusterSendKeyResponseCallback(); - static void CallbackFn(void * context, - const chip::app::Clusters::SoftwareDiagnostics::Commands::ResetWatermarks::DecodableType & data); + static void CallbackFn(void * context, const chip::app::Clusters::KeypadInput::Commands::SendKeyResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPThreadNetworkDiagnosticsClusterResetCountsCallback - : public Callback::Callback +class CHIPContentLauncherClusterLauncherResponseCallback + : public Callback::Callback { public: - CHIPThreadNetworkDiagnosticsClusterResetCountsCallback(jobject javaCallback); + CHIPContentLauncherClusterLauncherResponseCallback(jobject javaCallback); - ~CHIPThreadNetworkDiagnosticsClusterResetCountsCallback(); + ~CHIPContentLauncherClusterLauncherResponseCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::ThreadNetworkDiagnostics::Commands::ResetCounts::DecodableType & data); + const chip::app::Clusters::ContentLauncher::Commands::LauncherResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPWiFiNetworkDiagnosticsClusterResetCountsCallback - : public Callback::Callback +class CHIPApplicationLauncherClusterLauncherResponseCallback + : public Callback::Callback { public: - CHIPWiFiNetworkDiagnosticsClusterResetCountsCallback(jobject javaCallback); + CHIPApplicationLauncherClusterLauncherResponseCallback(jobject javaCallback); - ~CHIPWiFiNetworkDiagnosticsClusterResetCountsCallback(); + ~CHIPApplicationLauncherClusterLauncherResponseCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::WiFiNetworkDiagnostics::Commands::ResetCounts::DecodableType & data); + const chip::app::Clusters::ApplicationLauncher::Commands::LauncherResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPEthernetNetworkDiagnosticsClusterResetCountsCallback - : public Callback::Callback +class CHIPAccountLoginClusterGetSetupPINResponseCallback + : public Callback::Callback { public: - CHIPEthernetNetworkDiagnosticsClusterResetCountsCallback(jobject javaCallback); + CHIPAccountLoginClusterGetSetupPINResponseCallback(jobject javaCallback); - ~CHIPEthernetNetworkDiagnosticsClusterResetCountsCallback(); + ~CHIPAccountLoginClusterGetSetupPINResponseCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::EthernetNetworkDiagnostics::Commands::ResetCounts::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPAdministratorCommissioningClusterOpenCommissioningWindowCallback - : public Callback::Callback -{ -public: - CHIPAdministratorCommissioningClusterOpenCommissioningWindowCallback(jobject javaCallback); - - ~CHIPAdministratorCommissioningClusterOpenCommissioningWindowCallback(); - - static void - CallbackFn(void * context, - const chip::app::Clusters::AdministratorCommissioning::Commands::OpenCommissioningWindow::DecodableType & data); + const chip::app::Clusters::AccountLogin::Commands::GetSetupPINResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPAdministratorCommissioningClusterOpenBasicCommissioningWindowCallback - : public Callback::Callback +class CHIPElectricalMeasurementClusterGetProfileInfoResponseCommandCallback + : public Callback::Callback { public: - CHIPAdministratorCommissioningClusterOpenBasicCommissioningWindowCallback(jobject javaCallback); + CHIPElectricalMeasurementClusterGetProfileInfoResponseCommandCallback(jobject javaCallback); - ~CHIPAdministratorCommissioningClusterOpenBasicCommissioningWindowCallback(); + ~CHIPElectricalMeasurementClusterGetProfileInfoResponseCommandCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::DecodableType & data); + const chip::app::Clusters::ElectricalMeasurement::Commands::GetProfileInfoResponseCommand::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPAdministratorCommissioningClusterRevokeCommissioningCallback - : public Callback::Callback +class CHIPElectricalMeasurementClusterGetMeasurementProfileResponseCommandCallback + : public Callback::Callback { public: - CHIPAdministratorCommissioningClusterRevokeCommissioningCallback(jobject javaCallback); + CHIPElectricalMeasurementClusterGetMeasurementProfileResponseCommandCallback(jobject javaCallback); - ~CHIPAdministratorCommissioningClusterRevokeCommissioningCallback(); + ~CHIPElectricalMeasurementClusterGetMeasurementProfileResponseCommandCallback(); - static void - CallbackFn(void * context, - const chip::app::Clusters::AdministratorCommissioning::Commands::RevokeCommissioning::DecodableType & data); + static void CallbackFn( + void * context, + const chip::app::Clusters::ElectricalMeasurement::Commands::GetMeasurementProfileResponseCommand::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPOperationalCredentialsClusterAttestationRequestCallback - : public Callback::Callback +class CHIPUnitTestingClusterTestSpecificResponseCallback + : public Callback::Callback { public: - CHIPOperationalCredentialsClusterAttestationRequestCallback(jobject javaCallback); + CHIPUnitTestingClusterTestSpecificResponseCallback(jobject javaCallback); - ~CHIPOperationalCredentialsClusterAttestationRequestCallback(); + ~CHIPUnitTestingClusterTestSpecificResponseCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::OperationalCredentials::Commands::AttestationRequest::DecodableType & data); + const chip::app::Clusters::UnitTesting::Commands::TestSpecificResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPOperationalCredentialsClusterCertificateChainRequestCallback - : public Callback::Callback +class CHIPUnitTestingClusterTestAddArgumentsResponseCallback + : public Callback::Callback { public: - CHIPOperationalCredentialsClusterCertificateChainRequestCallback(jobject javaCallback); + CHIPUnitTestingClusterTestAddArgumentsResponseCallback(jobject javaCallback); - ~CHIPOperationalCredentialsClusterCertificateChainRequestCallback(); + ~CHIPUnitTestingClusterTestAddArgumentsResponseCallback(); - static void - CallbackFn(void * context, - const chip::app::Clusters::OperationalCredentials::Commands::CertificateChainRequest::DecodableType & data); + static void CallbackFn(void * context, + const chip::app::Clusters::UnitTesting::Commands::TestAddArgumentsResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPOperationalCredentialsClusterCSRRequestCallback - : public Callback::Callback +class CHIPUnitTestingClusterTestSimpleArgumentResponseCallback + : public Callback::Callback { public: - CHIPOperationalCredentialsClusterCSRRequestCallback(jobject javaCallback); + CHIPUnitTestingClusterTestSimpleArgumentResponseCallback(jobject javaCallback); - ~CHIPOperationalCredentialsClusterCSRRequestCallback(); + ~CHIPUnitTestingClusterTestSimpleArgumentResponseCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::OperationalCredentials::Commands::CSRRequest::DecodableType & data); + const chip::app::Clusters::UnitTesting::Commands::TestSimpleArgumentResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPOperationalCredentialsClusterAddNOCCallback - : public Callback::Callback +class CHIPUnitTestingClusterTestStructArrayArgumentResponseCallback + : public Callback::Callback { public: - CHIPOperationalCredentialsClusterAddNOCCallback(jobject javaCallback); + CHIPUnitTestingClusterTestStructArrayArgumentResponseCallback(jobject javaCallback); - ~CHIPOperationalCredentialsClusterAddNOCCallback(); + ~CHIPUnitTestingClusterTestStructArrayArgumentResponseCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::OperationalCredentials::Commands::AddNOC::DecodableType & data); + const chip::app::Clusters::UnitTesting::Commands::TestStructArrayArgumentResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPOperationalCredentialsClusterUpdateNOCCallback - : public Callback::Callback +class CHIPUnitTestingClusterTestListInt8UReverseResponseCallback + : public Callback::Callback { public: - CHIPOperationalCredentialsClusterUpdateNOCCallback(jobject javaCallback); + CHIPUnitTestingClusterTestListInt8UReverseResponseCallback(jobject javaCallback); - ~CHIPOperationalCredentialsClusterUpdateNOCCallback(); + ~CHIPUnitTestingClusterTestListInt8UReverseResponseCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::OperationalCredentials::Commands::UpdateNOC::DecodableType & data); + const chip::app::Clusters::UnitTesting::Commands::TestListInt8UReverseResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPOperationalCredentialsClusterUpdateFabricLabelCallback - : public Callback::Callback +class CHIPUnitTestingClusterTestEnumsResponseCallback + : public Callback::Callback { public: - CHIPOperationalCredentialsClusterUpdateFabricLabelCallback(jobject javaCallback); + CHIPUnitTestingClusterTestEnumsResponseCallback(jobject javaCallback); - ~CHIPOperationalCredentialsClusterUpdateFabricLabelCallback(); + ~CHIPUnitTestingClusterTestEnumsResponseCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::OperationalCredentials::Commands::UpdateFabricLabel::DecodableType & data); + const chip::app::Clusters::UnitTesting::Commands::TestEnumsResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPOperationalCredentialsClusterRemoveFabricCallback - : public Callback::Callback +class CHIPUnitTestingClusterTestNullableOptionalResponseCallback + : public Callback::Callback { public: - CHIPOperationalCredentialsClusterRemoveFabricCallback(jobject javaCallback); + CHIPUnitTestingClusterTestNullableOptionalResponseCallback(jobject javaCallback); - ~CHIPOperationalCredentialsClusterRemoveFabricCallback(); + ~CHIPUnitTestingClusterTestNullableOptionalResponseCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::OperationalCredentials::Commands::RemoveFabric::DecodableType & data); + const chip::app::Clusters::UnitTesting::Commands::TestNullableOptionalResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPOperationalCredentialsClusterAddTrustedRootCertificateCallback - : public Callback::Callback +class CHIPUnitTestingClusterTestComplexNullableOptionalResponseCallback + : public Callback::Callback { public: - CHIPOperationalCredentialsClusterAddTrustedRootCertificateCallback(jobject javaCallback); + CHIPUnitTestingClusterTestComplexNullableOptionalResponseCallback(jobject javaCallback); - ~CHIPOperationalCredentialsClusterAddTrustedRootCertificateCallback(); + ~CHIPUnitTestingClusterTestComplexNullableOptionalResponseCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::OperationalCredentials::Commands::AddTrustedRootCertificate::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPGroupKeyManagementClusterKeySetWriteCallback - : public Callback::Callback -{ -public: - CHIPGroupKeyManagementClusterKeySetWriteCallback(jobject javaCallback); - - ~CHIPGroupKeyManagementClusterKeySetWriteCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::GroupKeyManagement::Commands::KeySetWrite::DecodableType & data); + const chip::app::Clusters::UnitTesting::Commands::TestComplexNullableOptionalResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPGroupKeyManagementClusterKeySetReadCallback - : public Callback::Callback +class CHIPUnitTestingClusterBooleanResponseCallback : public Callback::Callback { public: - CHIPGroupKeyManagementClusterKeySetReadCallback(jobject javaCallback); + CHIPUnitTestingClusterBooleanResponseCallback(jobject javaCallback); - ~CHIPGroupKeyManagementClusterKeySetReadCallback(); + ~CHIPUnitTestingClusterBooleanResponseCallback(); - static void CallbackFn(void * context, - const chip::app::Clusters::GroupKeyManagement::Commands::KeySetRead::DecodableType & data); + static void CallbackFn(void * context, const chip::app::Clusters::UnitTesting::Commands::BooleanResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPGroupKeyManagementClusterKeySetRemoveCallback - : public Callback::Callback +class CHIPUnitTestingClusterSimpleStructResponseCallback + : public Callback::Callback { public: - CHIPGroupKeyManagementClusterKeySetRemoveCallback(jobject javaCallback); + CHIPUnitTestingClusterSimpleStructResponseCallback(jobject javaCallback); - ~CHIPGroupKeyManagementClusterKeySetRemoveCallback(); + ~CHIPUnitTestingClusterSimpleStructResponseCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::GroupKeyManagement::Commands::KeySetRemove::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPGroupKeyManagementClusterKeySetReadAllIndicesCallback - : public Callback::Callback -{ -public: - CHIPGroupKeyManagementClusterKeySetReadAllIndicesCallback(jobject javaCallback); - - ~CHIPGroupKeyManagementClusterKeySetReadAllIndicesCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::GroupKeyManagement::Commands::KeySetReadAllIndices::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPModeSelectClusterChangeToModeCallback : public Callback::Callback -{ -public: - CHIPModeSelectClusterChangeToModeCallback(jobject javaCallback); - - ~CHIPModeSelectClusterChangeToModeCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::ModeSelect::Commands::ChangeToMode::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPDoorLockClusterLockDoorCallback : public Callback::Callback -{ -public: - CHIPDoorLockClusterLockDoorCallback(jobject javaCallback); - - ~CHIPDoorLockClusterLockDoorCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::DoorLock::Commands::LockDoor::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPDoorLockClusterUnlockDoorCallback : public Callback::Callback -{ -public: - CHIPDoorLockClusterUnlockDoorCallback(jobject javaCallback); - - ~CHIPDoorLockClusterUnlockDoorCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::DoorLock::Commands::UnlockDoor::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPDoorLockClusterUnlockWithTimeoutCallback : public Callback::Callback -{ -public: - CHIPDoorLockClusterUnlockWithTimeoutCallback(jobject javaCallback); - - ~CHIPDoorLockClusterUnlockWithTimeoutCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::DoorLock::Commands::UnlockWithTimeout::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPDoorLockClusterSetWeekDayScheduleCallback : public Callback::Callback -{ -public: - CHIPDoorLockClusterSetWeekDayScheduleCallback(jobject javaCallback); - - ~CHIPDoorLockClusterSetWeekDayScheduleCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::DoorLock::Commands::SetWeekDaySchedule::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPDoorLockClusterGetWeekDayScheduleCallback : public Callback::Callback -{ -public: - CHIPDoorLockClusterGetWeekDayScheduleCallback(jobject javaCallback); - - ~CHIPDoorLockClusterGetWeekDayScheduleCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::DoorLock::Commands::GetWeekDaySchedule::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPDoorLockClusterClearWeekDayScheduleCallback - : public Callback::Callback -{ -public: - CHIPDoorLockClusterClearWeekDayScheduleCallback(jobject javaCallback); - - ~CHIPDoorLockClusterClearWeekDayScheduleCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::DoorLock::Commands::ClearWeekDaySchedule::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPDoorLockClusterSetYearDayScheduleCallback : public Callback::Callback -{ -public: - CHIPDoorLockClusterSetYearDayScheduleCallback(jobject javaCallback); - - ~CHIPDoorLockClusterSetYearDayScheduleCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::DoorLock::Commands::SetYearDaySchedule::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPDoorLockClusterGetYearDayScheduleCallback : public Callback::Callback -{ -public: - CHIPDoorLockClusterGetYearDayScheduleCallback(jobject javaCallback); - - ~CHIPDoorLockClusterGetYearDayScheduleCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::DoorLock::Commands::GetYearDaySchedule::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPDoorLockClusterClearYearDayScheduleCallback - : public Callback::Callback -{ -public: - CHIPDoorLockClusterClearYearDayScheduleCallback(jobject javaCallback); - - ~CHIPDoorLockClusterClearYearDayScheduleCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::DoorLock::Commands::ClearYearDaySchedule::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPDoorLockClusterSetHolidayScheduleCallback : public Callback::Callback -{ -public: - CHIPDoorLockClusterSetHolidayScheduleCallback(jobject javaCallback); - - ~CHIPDoorLockClusterSetHolidayScheduleCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::DoorLock::Commands::SetHolidaySchedule::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPDoorLockClusterGetHolidayScheduleCallback : public Callback::Callback -{ -public: - CHIPDoorLockClusterGetHolidayScheduleCallback(jobject javaCallback); - - ~CHIPDoorLockClusterGetHolidayScheduleCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::DoorLock::Commands::GetHolidaySchedule::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPDoorLockClusterClearHolidayScheduleCallback - : public Callback::Callback -{ -public: - CHIPDoorLockClusterClearHolidayScheduleCallback(jobject javaCallback); - - ~CHIPDoorLockClusterClearHolidayScheduleCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::DoorLock::Commands::ClearHolidaySchedule::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPDoorLockClusterSetUserCallback : public Callback::Callback -{ -public: - CHIPDoorLockClusterSetUserCallback(jobject javaCallback); - - ~CHIPDoorLockClusterSetUserCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::DoorLock::Commands::SetUser::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPDoorLockClusterGetUserCallback : public Callback::Callback -{ -public: - CHIPDoorLockClusterGetUserCallback(jobject javaCallback); - - ~CHIPDoorLockClusterGetUserCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::DoorLock::Commands::GetUser::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPDoorLockClusterClearUserCallback : public Callback::Callback -{ -public: - CHIPDoorLockClusterClearUserCallback(jobject javaCallback); - - ~CHIPDoorLockClusterClearUserCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::DoorLock::Commands::ClearUser::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPDoorLockClusterSetCredentialCallback : public Callback::Callback -{ -public: - CHIPDoorLockClusterSetCredentialCallback(jobject javaCallback); - - ~CHIPDoorLockClusterSetCredentialCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::DoorLock::Commands::SetCredential::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPDoorLockClusterGetCredentialStatusCallback : public Callback::Callback -{ -public: - CHIPDoorLockClusterGetCredentialStatusCallback(jobject javaCallback); - - ~CHIPDoorLockClusterGetCredentialStatusCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::DoorLock::Commands::GetCredentialStatus::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPDoorLockClusterClearCredentialCallback : public Callback::Callback -{ -public: - CHIPDoorLockClusterClearCredentialCallback(jobject javaCallback); - - ~CHIPDoorLockClusterClearCredentialCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::DoorLock::Commands::ClearCredential::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPWindowCoveringClusterUpOrOpenCallback : public Callback::Callback -{ -public: - CHIPWindowCoveringClusterUpOrOpenCallback(jobject javaCallback); - - ~CHIPWindowCoveringClusterUpOrOpenCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::WindowCovering::Commands::UpOrOpen::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPWindowCoveringClusterDownOrCloseCallback : public Callback::Callback -{ -public: - CHIPWindowCoveringClusterDownOrCloseCallback(jobject javaCallback); - - ~CHIPWindowCoveringClusterDownOrCloseCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::WindowCovering::Commands::DownOrClose::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPWindowCoveringClusterStopMotionCallback : public Callback::Callback -{ -public: - CHIPWindowCoveringClusterStopMotionCallback(jobject javaCallback); - - ~CHIPWindowCoveringClusterStopMotionCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::WindowCovering::Commands::StopMotion::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPWindowCoveringClusterGoToLiftValueCallback : public Callback::Callback -{ -public: - CHIPWindowCoveringClusterGoToLiftValueCallback(jobject javaCallback); - - ~CHIPWindowCoveringClusterGoToLiftValueCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::WindowCovering::Commands::GoToLiftValue::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPWindowCoveringClusterGoToLiftPercentageCallback - : public Callback::Callback -{ -public: - CHIPWindowCoveringClusterGoToLiftPercentageCallback(jobject javaCallback); - - ~CHIPWindowCoveringClusterGoToLiftPercentageCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::WindowCovering::Commands::GoToLiftPercentage::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPWindowCoveringClusterGoToTiltValueCallback : public Callback::Callback -{ -public: - CHIPWindowCoveringClusterGoToTiltValueCallback(jobject javaCallback); - - ~CHIPWindowCoveringClusterGoToTiltValueCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::WindowCovering::Commands::GoToTiltValue::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPWindowCoveringClusterGoToTiltPercentageCallback - : public Callback::Callback -{ -public: - CHIPWindowCoveringClusterGoToTiltPercentageCallback(jobject javaCallback); - - ~CHIPWindowCoveringClusterGoToTiltPercentageCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::WindowCovering::Commands::GoToTiltPercentage::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPBarrierControlClusterBarrierControlGoToPercentCallback - : public Callback::Callback -{ -public: - CHIPBarrierControlClusterBarrierControlGoToPercentCallback(jobject javaCallback); - - ~CHIPBarrierControlClusterBarrierControlGoToPercentCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::BarrierControl::Commands::BarrierControlGoToPercent::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPBarrierControlClusterBarrierControlStopCallback - : public Callback::Callback -{ -public: - CHIPBarrierControlClusterBarrierControlStopCallback(jobject javaCallback); - - ~CHIPBarrierControlClusterBarrierControlStopCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::BarrierControl::Commands::BarrierControlStop::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPThermostatClusterSetpointRaiseLowerCallback - : public Callback::Callback -{ -public: - CHIPThermostatClusterSetpointRaiseLowerCallback(jobject javaCallback); - - ~CHIPThermostatClusterSetpointRaiseLowerCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::Thermostat::Commands::SetpointRaiseLower::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPThermostatClusterSetWeeklyScheduleCallback : public Callback::Callback -{ -public: - CHIPThermostatClusterSetWeeklyScheduleCallback(jobject javaCallback); - - ~CHIPThermostatClusterSetWeeklyScheduleCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::Thermostat::Commands::SetWeeklySchedule::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPThermostatClusterGetWeeklyScheduleCallback : public Callback::Callback -{ -public: - CHIPThermostatClusterGetWeeklyScheduleCallback(jobject javaCallback); - - ~CHIPThermostatClusterGetWeeklyScheduleCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::Thermostat::Commands::GetWeeklySchedule::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPThermostatClusterClearWeeklyScheduleCallback - : public Callback::Callback -{ -public: - CHIPThermostatClusterClearWeeklyScheduleCallback(jobject javaCallback); - - ~CHIPThermostatClusterClearWeeklyScheduleCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::Thermostat::Commands::ClearWeeklySchedule::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPColorControlClusterMoveToHueCallback : public Callback::Callback -{ -public: - CHIPColorControlClusterMoveToHueCallback(jobject javaCallback); - - ~CHIPColorControlClusterMoveToHueCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::ColorControl::Commands::MoveToHue::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPColorControlClusterMoveHueCallback : public Callback::Callback -{ -public: - CHIPColorControlClusterMoveHueCallback(jobject javaCallback); - - ~CHIPColorControlClusterMoveHueCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::ColorControl::Commands::MoveHue::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPColorControlClusterStepHueCallback : public Callback::Callback -{ -public: - CHIPColorControlClusterStepHueCallback(jobject javaCallback); - - ~CHIPColorControlClusterStepHueCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::ColorControl::Commands::StepHue::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPColorControlClusterMoveToSaturationCallback - : public Callback::Callback -{ -public: - CHIPColorControlClusterMoveToSaturationCallback(jobject javaCallback); - - ~CHIPColorControlClusterMoveToSaturationCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::ColorControl::Commands::MoveToSaturation::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPColorControlClusterMoveSaturationCallback : public Callback::Callback -{ -public: - CHIPColorControlClusterMoveSaturationCallback(jobject javaCallback); - - ~CHIPColorControlClusterMoveSaturationCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::ColorControl::Commands::MoveSaturation::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPColorControlClusterStepSaturationCallback : public Callback::Callback -{ -public: - CHIPColorControlClusterStepSaturationCallback(jobject javaCallback); - - ~CHIPColorControlClusterStepSaturationCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::ColorControl::Commands::StepSaturation::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPColorControlClusterMoveToHueAndSaturationCallback - : public Callback::Callback -{ -public: - CHIPColorControlClusterMoveToHueAndSaturationCallback(jobject javaCallback); - - ~CHIPColorControlClusterMoveToHueAndSaturationCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::ColorControl::Commands::MoveToHueAndSaturation::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPColorControlClusterMoveToColorCallback : public Callback::Callback -{ -public: - CHIPColorControlClusterMoveToColorCallback(jobject javaCallback); - - ~CHIPColorControlClusterMoveToColorCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::ColorControl::Commands::MoveToColor::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPColorControlClusterMoveColorCallback : public Callback::Callback -{ -public: - CHIPColorControlClusterMoveColorCallback(jobject javaCallback); - - ~CHIPColorControlClusterMoveColorCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::ColorControl::Commands::MoveColor::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPColorControlClusterStepColorCallback : public Callback::Callback -{ -public: - CHIPColorControlClusterStepColorCallback(jobject javaCallback); - - ~CHIPColorControlClusterStepColorCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::ColorControl::Commands::StepColor::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPColorControlClusterMoveToColorTemperatureCallback - : public Callback::Callback -{ -public: - CHIPColorControlClusterMoveToColorTemperatureCallback(jobject javaCallback); - - ~CHIPColorControlClusterMoveToColorTemperatureCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::ColorControl::Commands::MoveToColorTemperature::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPColorControlClusterEnhancedMoveToHueCallback - : public Callback::Callback -{ -public: - CHIPColorControlClusterEnhancedMoveToHueCallback(jobject javaCallback); - - ~CHIPColorControlClusterEnhancedMoveToHueCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::ColorControl::Commands::EnhancedMoveToHue::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPColorControlClusterEnhancedMoveHueCallback : public Callback::Callback -{ -public: - CHIPColorControlClusterEnhancedMoveHueCallback(jobject javaCallback); - - ~CHIPColorControlClusterEnhancedMoveHueCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::ColorControl::Commands::EnhancedMoveHue::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPColorControlClusterEnhancedStepHueCallback : public Callback::Callback -{ -public: - CHIPColorControlClusterEnhancedStepHueCallback(jobject javaCallback); - - ~CHIPColorControlClusterEnhancedStepHueCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::ColorControl::Commands::EnhancedStepHue::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPColorControlClusterEnhancedMoveToHueAndSaturationCallback - : public Callback::Callback -{ -public: - CHIPColorControlClusterEnhancedMoveToHueAndSaturationCallback(jobject javaCallback); - - ~CHIPColorControlClusterEnhancedMoveToHueAndSaturationCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::ColorControl::Commands::EnhancedMoveToHueAndSaturation::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPColorControlClusterColorLoopSetCallback : public Callback::Callback -{ -public: - CHIPColorControlClusterColorLoopSetCallback(jobject javaCallback); - - ~CHIPColorControlClusterColorLoopSetCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::ColorControl::Commands::ColorLoopSet::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPColorControlClusterStopMoveStepCallback : public Callback::Callback -{ -public: - CHIPColorControlClusterStopMoveStepCallback(jobject javaCallback); - - ~CHIPColorControlClusterStopMoveStepCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::ColorControl::Commands::StopMoveStep::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPColorControlClusterMoveColorTemperatureCallback - : public Callback::Callback -{ -public: - CHIPColorControlClusterMoveColorTemperatureCallback(jobject javaCallback); - - ~CHIPColorControlClusterMoveColorTemperatureCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::ColorControl::Commands::MoveColorTemperature::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPColorControlClusterStepColorTemperatureCallback - : public Callback::Callback -{ -public: - CHIPColorControlClusterStepColorTemperatureCallback(jobject javaCallback); - - ~CHIPColorControlClusterStepColorTemperatureCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::ColorControl::Commands::StepColorTemperature::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPChannelClusterChangeChannelCallback : public Callback::Callback -{ -public: - CHIPChannelClusterChangeChannelCallback(jobject javaCallback); - - ~CHIPChannelClusterChangeChannelCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::Channel::Commands::ChangeChannel::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPChannelClusterChangeChannelByNumberCallback - : public Callback::Callback -{ -public: - CHIPChannelClusterChangeChannelByNumberCallback(jobject javaCallback); - - ~CHIPChannelClusterChangeChannelByNumberCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::Channel::Commands::ChangeChannelByNumber::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPChannelClusterSkipChannelCallback : public Callback::Callback -{ -public: - CHIPChannelClusterSkipChannelCallback(jobject javaCallback); - - ~CHIPChannelClusterSkipChannelCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::Channel::Commands::SkipChannel::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPTargetNavigatorClusterNavigateTargetCallback - : public Callback::Callback -{ -public: - CHIPTargetNavigatorClusterNavigateTargetCallback(jobject javaCallback); - - ~CHIPTargetNavigatorClusterNavigateTargetCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::TargetNavigator::Commands::NavigateTarget::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPMediaPlaybackClusterPlayCallback : public Callback::Callback -{ -public: - CHIPMediaPlaybackClusterPlayCallback(jobject javaCallback); - - ~CHIPMediaPlaybackClusterPlayCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::MediaPlayback::Commands::Play::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPMediaPlaybackClusterPauseCallback : public Callback::Callback -{ -public: - CHIPMediaPlaybackClusterPauseCallback(jobject javaCallback); - - ~CHIPMediaPlaybackClusterPauseCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::MediaPlayback::Commands::Pause::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPMediaPlaybackClusterStopCallback : public Callback::Callback -{ -public: - CHIPMediaPlaybackClusterStopCallback(jobject javaCallback); - - ~CHIPMediaPlaybackClusterStopCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::MediaPlayback::Commands::Stop::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPMediaPlaybackClusterStartOverCallback : public Callback::Callback -{ -public: - CHIPMediaPlaybackClusterStartOverCallback(jobject javaCallback); - - ~CHIPMediaPlaybackClusterStartOverCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::MediaPlayback::Commands::StartOver::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPMediaPlaybackClusterPreviousCallback : public Callback::Callback -{ -public: - CHIPMediaPlaybackClusterPreviousCallback(jobject javaCallback); - - ~CHIPMediaPlaybackClusterPreviousCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::MediaPlayback::Commands::Previous::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPMediaPlaybackClusterNextCallback : public Callback::Callback -{ -public: - CHIPMediaPlaybackClusterNextCallback(jobject javaCallback); - - ~CHIPMediaPlaybackClusterNextCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::MediaPlayback::Commands::Next::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPMediaPlaybackClusterRewindCallback : public Callback::Callback -{ -public: - CHIPMediaPlaybackClusterRewindCallback(jobject javaCallback); - - ~CHIPMediaPlaybackClusterRewindCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::MediaPlayback::Commands::Rewind::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPMediaPlaybackClusterFastForwardCallback : public Callback::Callback -{ -public: - CHIPMediaPlaybackClusterFastForwardCallback(jobject javaCallback); - - ~CHIPMediaPlaybackClusterFastForwardCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::MediaPlayback::Commands::FastForward::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPMediaPlaybackClusterSkipForwardCallback : public Callback::Callback -{ -public: - CHIPMediaPlaybackClusterSkipForwardCallback(jobject javaCallback); - - ~CHIPMediaPlaybackClusterSkipForwardCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::MediaPlayback::Commands::SkipForward::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPMediaPlaybackClusterSkipBackwardCallback : public Callback::Callback -{ -public: - CHIPMediaPlaybackClusterSkipBackwardCallback(jobject javaCallback); - - ~CHIPMediaPlaybackClusterSkipBackwardCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::MediaPlayback::Commands::SkipBackward::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPMediaPlaybackClusterSeekCallback : public Callback::Callback -{ -public: - CHIPMediaPlaybackClusterSeekCallback(jobject javaCallback); - - ~CHIPMediaPlaybackClusterSeekCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::MediaPlayback::Commands::Seek::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPMediaInputClusterSelectInputCallback : public Callback::Callback -{ -public: - CHIPMediaInputClusterSelectInputCallback(jobject javaCallback); - - ~CHIPMediaInputClusterSelectInputCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::MediaInput::Commands::SelectInput::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPMediaInputClusterShowInputStatusCallback : public Callback::Callback -{ -public: - CHIPMediaInputClusterShowInputStatusCallback(jobject javaCallback); - - ~CHIPMediaInputClusterShowInputStatusCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::MediaInput::Commands::ShowInputStatus::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPMediaInputClusterHideInputStatusCallback : public Callback::Callback -{ -public: - CHIPMediaInputClusterHideInputStatusCallback(jobject javaCallback); - - ~CHIPMediaInputClusterHideInputStatusCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::MediaInput::Commands::HideInputStatus::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPMediaInputClusterRenameInputCallback : public Callback::Callback -{ -public: - CHIPMediaInputClusterRenameInputCallback(jobject javaCallback); - - ~CHIPMediaInputClusterRenameInputCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::MediaInput::Commands::RenameInput::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPLowPowerClusterSleepCallback : public Callback::Callback -{ -public: - CHIPLowPowerClusterSleepCallback(jobject javaCallback); - - ~CHIPLowPowerClusterSleepCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::LowPower::Commands::Sleep::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPKeypadInputClusterSendKeyCallback : public Callback::Callback -{ -public: - CHIPKeypadInputClusterSendKeyCallback(jobject javaCallback); - - ~CHIPKeypadInputClusterSendKeyCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::KeypadInput::Commands::SendKey::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPContentLauncherClusterLaunchContentCallback - : public Callback::Callback -{ -public: - CHIPContentLauncherClusterLaunchContentCallback(jobject javaCallback); - - ~CHIPContentLauncherClusterLaunchContentCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::ContentLauncher::Commands::LaunchContent::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPContentLauncherClusterLaunchURLCallback : public Callback::Callback -{ -public: - CHIPContentLauncherClusterLaunchURLCallback(jobject javaCallback); - - ~CHIPContentLauncherClusterLaunchURLCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::ContentLauncher::Commands::LaunchURL::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPAudioOutputClusterSelectOutputCallback : public Callback::Callback -{ -public: - CHIPAudioOutputClusterSelectOutputCallback(jobject javaCallback); - - ~CHIPAudioOutputClusterSelectOutputCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::AudioOutput::Commands::SelectOutput::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPAudioOutputClusterRenameOutputCallback : public Callback::Callback -{ -public: - CHIPAudioOutputClusterRenameOutputCallback(jobject javaCallback); - - ~CHIPAudioOutputClusterRenameOutputCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::AudioOutput::Commands::RenameOutput::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPApplicationLauncherClusterLaunchAppCallback - : public Callback::Callback -{ -public: - CHIPApplicationLauncherClusterLaunchAppCallback(jobject javaCallback); - - ~CHIPApplicationLauncherClusterLaunchAppCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::ApplicationLauncher::Commands::LaunchApp::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPApplicationLauncherClusterStopAppCallback : public Callback::Callback -{ -public: - CHIPApplicationLauncherClusterStopAppCallback(jobject javaCallback); - - ~CHIPApplicationLauncherClusterStopAppCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::ApplicationLauncher::Commands::StopApp::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPApplicationLauncherClusterHideAppCallback : public Callback::Callback -{ -public: - CHIPApplicationLauncherClusterHideAppCallback(jobject javaCallback); - - ~CHIPApplicationLauncherClusterHideAppCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::ApplicationLauncher::Commands::HideApp::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPAccountLoginClusterGetSetupPINCallback : public Callback::Callback -{ -public: - CHIPAccountLoginClusterGetSetupPINCallback(jobject javaCallback); - - ~CHIPAccountLoginClusterGetSetupPINCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::AccountLogin::Commands::GetSetupPIN::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPAccountLoginClusterLoginCallback : public Callback::Callback -{ -public: - CHIPAccountLoginClusterLoginCallback(jobject javaCallback); - - ~CHIPAccountLoginClusterLoginCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::AccountLogin::Commands::Login::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPAccountLoginClusterLogoutCallback : public Callback::Callback -{ -public: - CHIPAccountLoginClusterLogoutCallback(jobject javaCallback); - - ~CHIPAccountLoginClusterLogoutCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::AccountLogin::Commands::Logout::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPElectricalMeasurementClusterGetProfileInfoCommandCallback - : public Callback::Callback -{ -public: - CHIPElectricalMeasurementClusterGetProfileInfoCommandCallback(jobject javaCallback); - - ~CHIPElectricalMeasurementClusterGetProfileInfoCommandCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::ElectricalMeasurement::Commands::GetProfileInfoCommand::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPElectricalMeasurementClusterGetMeasurementProfileCommandCallback - : public Callback::Callback -{ -public: - CHIPElectricalMeasurementClusterGetMeasurementProfileCommandCallback(jobject javaCallback); - - ~CHIPElectricalMeasurementClusterGetMeasurementProfileCommandCallback(); - - static void - CallbackFn(void * context, - const chip::app::Clusters::ElectricalMeasurement::Commands::GetMeasurementProfileCommand::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPClientMonitoringClusterRegisterClientMonitoringCallback - : public Callback::Callback -{ -public: - CHIPClientMonitoringClusterRegisterClientMonitoringCallback(jobject javaCallback); - - ~CHIPClientMonitoringClusterRegisterClientMonitoringCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::ClientMonitoring::Commands::RegisterClientMonitoring::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPClientMonitoringClusterUnregisterClientMonitoringCallback - : public Callback::Callback -{ -public: - CHIPClientMonitoringClusterUnregisterClientMonitoringCallback(jobject javaCallback); - - ~CHIPClientMonitoringClusterUnregisterClientMonitoringCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::ClientMonitoring::Commands::UnregisterClientMonitoring::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPClientMonitoringClusterStayAwakeRequestCallback - : public Callback::Callback -{ -public: - CHIPClientMonitoringClusterStayAwakeRequestCallback(jobject javaCallback); - - ~CHIPClientMonitoringClusterStayAwakeRequestCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::ClientMonitoring::Commands::StayAwakeRequest::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPUnitTestingClusterTestCallback : public Callback::Callback -{ -public: - CHIPUnitTestingClusterTestCallback(jobject javaCallback); - - ~CHIPUnitTestingClusterTestCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::UnitTesting::Commands::Test::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPUnitTestingClusterTestNotHandledCallback : public Callback::Callback -{ -public: - CHIPUnitTestingClusterTestNotHandledCallback(jobject javaCallback); - - ~CHIPUnitTestingClusterTestNotHandledCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::UnitTesting::Commands::TestNotHandled::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPUnitTestingClusterTestSpecificCallback : public Callback::Callback -{ -public: - CHIPUnitTestingClusterTestSpecificCallback(jobject javaCallback); - - ~CHIPUnitTestingClusterTestSpecificCallback(); - - static void CallbackFn(void * context, const chip::app::Clusters::UnitTesting::Commands::TestSpecific::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPUnitTestingClusterTestUnknownCommandCallback - : public Callback::Callback -{ -public: - CHIPUnitTestingClusterTestUnknownCommandCallback(jobject javaCallback); - - ~CHIPUnitTestingClusterTestUnknownCommandCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::UnitTesting::Commands::TestUnknownCommand::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPUnitTestingClusterTestAddArgumentsCallback : public Callback::Callback -{ -public: - CHIPUnitTestingClusterTestAddArgumentsCallback(jobject javaCallback); - - ~CHIPUnitTestingClusterTestAddArgumentsCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::UnitTesting::Commands::TestAddArguments::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPUnitTestingClusterTestSimpleArgumentRequestCallback - : public Callback::Callback -{ -public: - CHIPUnitTestingClusterTestSimpleArgumentRequestCallback(jobject javaCallback); - - ~CHIPUnitTestingClusterTestSimpleArgumentRequestCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::UnitTesting::Commands::TestSimpleArgumentRequest::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPUnitTestingClusterTestStructArrayArgumentRequestCallback - : public Callback::Callback -{ -public: - CHIPUnitTestingClusterTestStructArrayArgumentRequestCallback(jobject javaCallback); - - ~CHIPUnitTestingClusterTestStructArrayArgumentRequestCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::UnitTesting::Commands::TestStructArrayArgumentRequest::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPUnitTestingClusterTestStructArgumentRequestCallback - : public Callback::Callback -{ -public: - CHIPUnitTestingClusterTestStructArgumentRequestCallback(jobject javaCallback); - - ~CHIPUnitTestingClusterTestStructArgumentRequestCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::UnitTesting::Commands::TestStructArgumentRequest::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPUnitTestingClusterTestNestedStructArgumentRequestCallback - : public Callback::Callback -{ -public: - CHIPUnitTestingClusterTestNestedStructArgumentRequestCallback(jobject javaCallback); - - ~CHIPUnitTestingClusterTestNestedStructArgumentRequestCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::UnitTesting::Commands::TestNestedStructArgumentRequest::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPUnitTestingClusterTestListStructArgumentRequestCallback - : public Callback::Callback -{ -public: - CHIPUnitTestingClusterTestListStructArgumentRequestCallback(jobject javaCallback); - - ~CHIPUnitTestingClusterTestListStructArgumentRequestCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::UnitTesting::Commands::TestListStructArgumentRequest::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPUnitTestingClusterTestListInt8UArgumentRequestCallback - : public Callback::Callback -{ -public: - CHIPUnitTestingClusterTestListInt8UArgumentRequestCallback(jobject javaCallback); - - ~CHIPUnitTestingClusterTestListInt8UArgumentRequestCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::UnitTesting::Commands::TestListInt8UArgumentRequest::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPUnitTestingClusterTestNestedStructListArgumentRequestCallback - : public Callback::Callback -{ -public: - CHIPUnitTestingClusterTestNestedStructListArgumentRequestCallback(jobject javaCallback); - - ~CHIPUnitTestingClusterTestNestedStructListArgumentRequestCallback(); - - static void - CallbackFn(void * context, - const chip::app::Clusters::UnitTesting::Commands::TestNestedStructListArgumentRequest::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPUnitTestingClusterTestListNestedStructListArgumentRequestCallback - : public Callback::Callback -{ -public: - CHIPUnitTestingClusterTestListNestedStructListArgumentRequestCallback(jobject javaCallback); - - ~CHIPUnitTestingClusterTestListNestedStructListArgumentRequestCallback(); - - static void - CallbackFn(void * context, - const chip::app::Clusters::UnitTesting::Commands::TestListNestedStructListArgumentRequest::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPUnitTestingClusterTestListInt8UReverseRequestCallback - : public Callback::Callback -{ -public: - CHIPUnitTestingClusterTestListInt8UReverseRequestCallback(jobject javaCallback); - - ~CHIPUnitTestingClusterTestListInt8UReverseRequestCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::UnitTesting::Commands::TestListInt8UReverseRequest::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPUnitTestingClusterTestEnumsRequestCallback : public Callback::Callback -{ -public: - CHIPUnitTestingClusterTestEnumsRequestCallback(jobject javaCallback); - - ~CHIPUnitTestingClusterTestEnumsRequestCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::UnitTesting::Commands::TestEnumsRequest::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPUnitTestingClusterTestNullableOptionalRequestCallback - : public Callback::Callback -{ -public: - CHIPUnitTestingClusterTestNullableOptionalRequestCallback(jobject javaCallback); - - ~CHIPUnitTestingClusterTestNullableOptionalRequestCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::UnitTesting::Commands::TestNullableOptionalRequest::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPUnitTestingClusterTestComplexNullableOptionalRequestCallback - : public Callback::Callback -{ -public: - CHIPUnitTestingClusterTestComplexNullableOptionalRequestCallback(jobject javaCallback); - - ~CHIPUnitTestingClusterTestComplexNullableOptionalRequestCallback(); - - static void - CallbackFn(void * context, - const chip::app::Clusters::UnitTesting::Commands::TestComplexNullableOptionalRequest::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPUnitTestingClusterSimpleStructEchoRequestCallback - : public Callback::Callback -{ -public: - CHIPUnitTestingClusterSimpleStructEchoRequestCallback(jobject javaCallback); - - ~CHIPUnitTestingClusterSimpleStructEchoRequestCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::UnitTesting::Commands::SimpleStructEchoRequest::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPUnitTestingClusterTimedInvokeRequestCallback - : public Callback::Callback -{ -public: - CHIPUnitTestingClusterTimedInvokeRequestCallback(jobject javaCallback); - - ~CHIPUnitTestingClusterTimedInvokeRequestCallback(); - - static void CallbackFn(void * context, - const chip::app::Clusters::UnitTesting::Commands::TimedInvokeRequest::DecodableType & data); - -private: - jobject javaCallbackRef; -}; - -class CHIPUnitTestingClusterTestSimpleOptionalArgumentRequestCallback - : public Callback::Callback -{ -public: - CHIPUnitTestingClusterTestSimpleOptionalArgumentRequestCallback(jobject javaCallback); - - ~CHIPUnitTestingClusterTestSimpleOptionalArgumentRequestCallback(); - - static void - CallbackFn(void * context, - const chip::app::Clusters::UnitTesting::Commands::TestSimpleOptionalArgumentRequest::DecodableType & data); + const chip::app::Clusters::UnitTesting::Commands::SimpleStructResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPUnitTestingClusterTestEmitTestEventRequestCallback - : public Callback::Callback +class CHIPUnitTestingClusterTestEmitTestEventResponseCallback + : public Callback::Callback { public: - CHIPUnitTestingClusterTestEmitTestEventRequestCallback(jobject javaCallback); + CHIPUnitTestingClusterTestEmitTestEventResponseCallback(jobject javaCallback); - ~CHIPUnitTestingClusterTestEmitTestEventRequestCallback(); + ~CHIPUnitTestingClusterTestEmitTestEventResponseCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::UnitTesting::Commands::TestEmitTestEventRequest::DecodableType & data); + const chip::app::Clusters::UnitTesting::Commands::TestEmitTestEventResponse::DecodableType & data); private: jobject javaCallbackRef; }; -class CHIPUnitTestingClusterTestEmitTestFabricScopedEventRequestCallback - : public Callback::Callback +class CHIPUnitTestingClusterTestEmitTestFabricScopedEventResponseCallback + : public Callback::Callback { public: - CHIPUnitTestingClusterTestEmitTestFabricScopedEventRequestCallback(jobject javaCallback); + CHIPUnitTestingClusterTestEmitTestFabricScopedEventResponseCallback(jobject javaCallback); - ~CHIPUnitTestingClusterTestEmitTestFabricScopedEventRequestCallback(); + ~CHIPUnitTestingClusterTestEmitTestFabricScopedEventResponseCallback(); static void CallbackFn(void * context, - const chip::app::Clusters::UnitTesting::Commands::TestEmitTestFabricScopedEventRequest::DecodableType & data); + const chip::app::Clusters::UnitTesting::Commands::TestEmitTestFabricScopedEventResponse::DecodableType & data); private: jobject javaCallbackRef;