@@ -55,6 +55,15 @@ class ClusterCommand : public InteractionModelCommands, public ModelCommand, pub
55
55
return InteractionModelCommands::SendCommand (device, endpointId, clusterId, commandId, value);
56
56
}
57
57
58
+ CHIP_ERROR SendCommand (chip::DeviceProxy * device, chip::EndpointId endpointId, chip::ClusterId clusterId,
59
+ chip::CommandId commandId,
60
+ const chip::app::Clusters::IcdManagement::Commands::UnregisterClient::Type & value)
61
+ {
62
+ ReturnErrorOnFailure (InteractionModelCommands::SendCommand (device, endpointId, clusterId, commandId, value));
63
+ mScopedNodeId = chip::ScopedNodeId (value.checkInNodeID , device->GetSecureSession ().Value ()->GetFabricIndex ());
64
+ return CHIP_NO_ERROR;
65
+ }
66
+
58
67
CHIP_ERROR SendCommand (chip::DeviceProxy * device, chip::EndpointId endpointId, chip::ClusterId clusterId,
59
68
chip::CommandId commandId,
60
69
const chip::app::Clusters::DiagnosticLogs::Commands::RetrieveLogsRequest::Type & value)
@@ -109,6 +118,11 @@ class ClusterCommand : public InteractionModelCommands, public ModelCommand, pub
109
118
return ;
110
119
}
111
120
}
121
+ if ((path.mEndpointId == chip::kRootEndpointId ) && (path.mClusterId == chip::app::Clusters::IcdManagement::Id) &&
122
+ (path.mCommandId == chip::app::Clusters::IcdManagement::Commands::UnregisterClient::Id))
123
+ {
124
+ ModelCommand::ClearICDEntry (mScopedNodeId );
125
+ }
112
126
}
113
127
114
128
virtual void OnError (const chip::app::CommandSender * client, CHIP_ERROR error) override
@@ -208,7 +222,7 @@ class ClusterCommand : public InteractionModelCommands, public ModelCommand, pub
208
222
private:
209
223
chip::ClusterId mClusterId ;
210
224
chip::CommandId mCommandId ;
211
-
225
+ chip::ScopedNodeId mScopedNodeId ;
212
226
CHIP_ERROR mError = CHIP_NO_ERROR;
213
227
CustomArgument mPayload ;
214
228
};
0 commit comments