Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 0aeb4e5

Browse files
committedFeb 23, 2025·
Update all cluster Implentations of the CHI interface
1 parent 97a16db commit 0aeb4e5

File tree

12 files changed

+94
-106
lines changed

12 files changed

+94
-106
lines changed
 

‎src/app/clusters/device-energy-management-server/device-energy-management-server.cpp

+15-14
Original file line numberDiff line numberDiff line change
@@ -104,49 +104,50 @@ CHIP_ERROR Instance::Read(const ConcreteReadAttributePath & aPath, AttributeValu
104104
}
105105

106106
// CommandHandlerInterface
107-
CHIP_ERROR Instance::EnumerateAcceptedCommands(const ConcreteClusterPath & cluster, ListBuilder<AcceptedCommandEntry> & builder)
107+
CHIP_ERROR Instance::EnumerateAcceptedCommands(const ConcreteClusterPath & cluster, DataModel::ListBuilder<DataModel::AcceptedCommandEntry> & builder)
108108
{
109109
using namespace Commands;
110-
using QF = DataModel::CommandQualityFlags;
110+
using QF = DataModel::CommandQualityFlags;
111+
static const auto kDefaultFlags = chip::BitFlags<QF>(QF::kTimed, QF::kLargeMessage, QF::kFabricScoped);
112+
static const auto kDefaultPrivilege = chip::Access::Privilege::kOperate;
111113

112114
if (HasFeature(Feature::kPowerAdjustment))
113115
{
114-
VerifyOrExit(builder.AppendElements({
115-
{PowerAdjustRequest::Id, QF::kFabricScoped, Access::Privilege::kOperate}, //TODO:: WHAT IS THE NEEDED PRIVILEGE AND CommandQualityFlags
116-
{CancelPowerAdjustRequest::Id, QF::kFabricScoped, Access::Privilege::kOperate} //TODO:: WHAT IS THE NEEDED PRIVILEGE AND CommandQualityFlags
116+
ReturnErrorOnFailure(builder.AppendElements({
117+
{PowerAdjustRequest::Id, kDefaultFlags, kDefaultPrivilege}, //TODO:: WHAT IS THE NEEDED PRIVILEGE AND CommandQualityFlags
118+
{CancelPowerAdjustRequest::Id, kDefaultFlags, kDefaultPrivilege} //TODO:: WHAT IS THE NEEDED PRIVILEGE AND CommandQualityFlags
117119
}));
118120
}
119121

120122
if (HasFeature(Feature::kStartTimeAdjustment))
121123
{
122-
VerifyOrExit(builder.AppendElement({StartTimeAdjustRequest::Id, QF::kFabricScoped})); //TODO:: WHAT IS THE NEEDED PRIVILEGE AND CommandQualityFlags
124+
ReturnErrorOnFailure(builder.Append({StartTimeAdjustRequest::Id, kDefaultFlags, kDefaultPrivilege})); //TODO:: WHAT IS THE NEEDED PRIVILEGE AND CommandQualityFlags
123125
}
124126

125127
if (HasFeature(Feature::kPausable))
126128
{
127-
VerifyOrExit(builder.AppendElements({
128-
{PauseRequest::Id, QF::kFabricScoped, Access::Privilege::kOperate},
129-
{ResumeRequest::Id, BitFlags<QF>(QF::kFabricScoped), Access::Privilege::kOperate}
129+
ReturnErrorOnFailure(builder.AppendElements({
130+
{PauseRequest::Id, kDefaultFlags, kDefaultPrivilege},
131+
{ResumeRequest::Id, kDefaultFlags, kDefaultPrivilege}
130132
}));
131133
}
132134

133135
if (HasFeature(Feature::kForecastAdjustment))
134136
{
135-
VerifyOrExit(builder.AppendElement({ModifyForecastRequest::Id, QF::kFabricScoped})); //TODO:: WHAT IS THE NEEDED PRIVILEGE AND CommandQualityFlags
137+
ReturnErrorOnFailure(builder.Append({ModifyForecastRequest::Id, kDefaultFlags, kDefaultPrivilege})); //TODO:: WHAT IS THE NEEDED PRIVILEGE AND CommandQualityFlags
136138
}
137139

138140
if (HasFeature(Feature::kConstraintBasedAdjustment))
139141
{
140-
VerifyOrExit(builder.AppendElement({ModifyForecastRequest::Id, QF::kFabricScoped})); //TODO:: WHAT IS THE NEEDED PRIVILEGE AND CommandQualityFlags
142+
ReturnErrorOnFailure(builder.Append({ModifyForecastRequest::Id, kDefaultFlags, kDefaultPrivilege})); //TODO:: WHAT IS THE NEEDED PRIVILEGE AND CommandQualityFlags
141143
}
142144

143145
if (HasFeature(Feature::kStartTimeAdjustment) || HasFeature(Feature::kForecastAdjustment) ||
144146
HasFeature(Feature::kConstraintBasedAdjustment))
145147
{
146-
VerifyOrExit(builder.AppendElement({CancelRequest::Id, QF::kFabricScoped})); //TODO:: WHAT IS THE NEEDED PRIVILEGE AND CommandQualityFlags
148+
ReturnErrorOnFailure(builder.Append({CancelRequest::Id, kDefaultFlags, kDefaultPrivilege})); //TODO:: WHAT IS THE NEEDED PRIVILEGE AND CommandQualityFlags
147149
}
148-
149-
exit:
150+
150151
return CHIP_NO_ERROR;
151152
}
152153

‎src/app/clusters/device-energy-management-server/device-energy-management-server.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ class Instance : public AttributeAccessInterface, public CommandHandlerInterface
235235

236236
// CommandHandlerInterface
237237
void InvokeCommand(HandlerContext & handlerContext) override;
238-
CHIP_ERROR EnumerateAcceptedCommands(const ConcreteClusterPath & cluster, CommandIdCallback callback, void * context) override;
238+
CHIP_ERROR EnumerateAcceptedCommands(const ConcreteClusterPath & cluster, DataModel::ListBuilder<DataModel::AcceptedCommandEntry> & builder) override;
239239

240240
Protocols::InteractionModel::Status CheckOptOutAllowsRequest(AdjustmentCauseEnum adjustmentCause);
241241
void HandlePowerAdjustRequest(HandlerContext & ctx, const Commands::PowerAdjustRequest::DecodableType & commandData);

‎src/app/clusters/energy-evse-server/energy-evse-server.cpp

+15-20
Original file line numberDiff line numberDiff line change
@@ -182,41 +182,36 @@ CHIP_ERROR Instance::Write(const ConcreteDataAttributePath & aPath, AttributeVal
182182
}
183183

184184
// CommandHandlerInterface
185-
CHIP_ERROR Instance::EnumerateAcceptedCommands(const ConcreteClusterPath & cluster, CommandIdCallback callback, void * context)
185+
CHIP_ERROR Instance::EnumerateAcceptedCommands(const ConcreteClusterPath & cluster, DataModel::ListBuilder<DataModel::AcceptedCommandEntry> & builder)
186186
{
187187
using namespace Commands;
188+
using QF = DataModel::CommandQualityFlags;
189+
static const auto kDefaultFlags = chip::BitFlags<QF>(QF::kTimed, QF::kLargeMessage, QF::kFabricScoped);
190+
static const auto kDefaultPrivilege = chip::Access::Privilege::kOperate;
188191

189-
for (auto && cmd : {
190-
Disable::Id,
191-
EnableCharging::Id,
192-
})
193-
{
194-
VerifyOrExit(callback(cmd, context) == Loop::Continue, /**/);
195-
}
192+
ReturnErrorOnFailure(builder.AppendElements({
193+
{Disable::Id, kDefaultFlags, kDefaultPrivilege},
194+
{EnableCharging::Id, kDefaultFlags, kDefaultPrivilege},
195+
}));
196196

197197
if (HasFeature(Feature::kV2x))
198198
{
199-
VerifyOrExit(callback(EnableDischarging::Id, context) == Loop::Continue, /**/);
199+
ReturnErrorOnFailure(builder.Append({EnableDischarging::Id, kDefaultFlags, kDefaultPrivilege}) );
200200
}
201201

202202
if (HasFeature(Feature::kChargingPreferences))
203203
{
204-
for (auto && cmd : {
205-
SetTargets::Id,
206-
GetTargets::Id,
207-
ClearTargets::Id,
208-
})
209-
{
210-
VerifyOrExit(callback(cmd, context) == Loop::Continue, /**/);
211-
}
204+
ReturnErrorOnFailure(builder.AppendElements({
205+
{SetTargets::Id, kDefaultFlags, kDefaultPrivilege},
206+
{GetTargets::Id, kDefaultFlags, kDefaultPrivilege},
207+
{ClearTargets::Id, kDefaultFlags, kDefaultPrivilege},
208+
}));
212209
}
213210

214211
if (SupportsOptCmd(OptionalCommands::kSupportsStartDiagnostics))
215212
{
216-
callback(StartDiagnostics::Id, context);
213+
ReturnErrorOnFailure(builder.Append({StartDiagnostics::Id, kDefaultFlags, kDefaultPrivilege}));
217214
}
218-
219-
exit:
220215
return CHIP_NO_ERROR;
221216
}
222217

‎src/app/clusters/energy-evse-server/energy-evse-server.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ class Instance : public AttributeAccessInterface, public CommandHandlerInterface
200200

201201
// CommandHandlerInterface
202202
void InvokeCommand(HandlerContext & handlerContext) override;
203-
CHIP_ERROR EnumerateAcceptedCommands(const ConcreteClusterPath & cluster, CommandIdCallback callback, void * context) override;
203+
CHIP_ERROR EnumerateAcceptedCommands(const ConcreteClusterPath & cluster, DataModel::ListBuilder<DataModel::AcceptedCommandEntry> & builder) override;
204204

205205
void HandleDisable(HandlerContext & ctx, const Commands::Disable::DecodableType & commandData);
206206
void HandleEnableCharging(HandlerContext & ctx, const Commands::EnableCharging::DecodableType & commandData);

‎src/app/clusters/network-commissioning/network-commissioning.cpp

+27-40
Original file line numberDiff line numberDiff line change
@@ -1360,64 +1360,51 @@ void Instance::OnFailSafeTimerExpired()
13601360
}
13611361
}
13621362

1363-
CHIP_ERROR Instance::EnumerateAcceptedCommands(const ConcreteClusterPath & cluster, CommandIdCallback callback, void * context)
1363+
CHIP_ERROR Instance::EnumerateAcceptedCommands(const ConcreteClusterPath & cluster, DataModel::ListBuilder<DataModel::AcceptedCommandEntry> & builder)
13641364
{
13651365
using namespace Clusters::NetworkCommissioning::Commands;
1366-
1367-
if (mFeatureFlags.Has(Feature::kThreadNetworkInterface))
1368-
{
1369-
for (auto && cmd : {
1370-
ScanNetworks::Id,
1371-
AddOrUpdateThreadNetwork::Id,
1372-
RemoveNetwork::Id,
1373-
ConnectNetwork::Id,
1374-
ReorderNetwork::Id,
1375-
})
1376-
{
1377-
VerifyOrExit(callback(cmd, context) == Loop::Continue, /**/);
1378-
}
1379-
}
1380-
else if (mFeatureFlags.Has(Feature::kWiFiNetworkInterface))
1381-
{
1382-
for (auto && cmd : {
1383-
ScanNetworks::Id,
1384-
AddOrUpdateWiFiNetwork::Id,
1385-
RemoveNetwork::Id,
1386-
ConnectNetwork::Id,
1387-
ReorderNetwork::Id,
1388-
})
1389-
{
1390-
VerifyOrExit(callback(cmd, context) == Loop::Continue, /**/);
1391-
}
1366+
using QF = DataModel::CommandQualityFlags;
1367+
static const auto kDefaultFlags = chip::BitFlags<QF>(QF::kTimed, QF::kLargeMessage, QF::kFabricScoped);
1368+
static const auto kDefaultPrivilege = chip::Access::Privilege::kOperate;
1369+
1370+
bool hasNet = mFeatureFlags.Has(Feature::kThreadNetworkInterface);
1371+
bool hasWifi = mFeatureFlags.Has(Feature::kWiFiNetworkInterface);
1372+
bool hasCred = mFeatureFlags.Has(Feature::kPerDeviceCredentials);
1373+
auto netId = hasNet? AddOrUpdateThreadNetwork::Id : AddOrUpdateWiFiNetwork::Id;
1374+
1375+
static const DataModel::AcceptedCommandEntry commands [6] = {
1376+
{ScanNetworks::Id, kDefaultFlags, kDefaultPrivilege},
1377+
{netId, kDefaultFlags, kDefaultPrivilege},
1378+
{RemoveNetwork::Id, kDefaultFlags, kDefaultPrivilege},
1379+
{ConnectNetwork::Id, kDefaultFlags, kDefaultPrivilege},
1380+
{ReorderNetwork::Id, kDefaultFlags, kDefaultPrivilege},
1381+
{QueryIdentity::Id, kDefaultFlags, kDefaultPrivilege}
1382+
};
1383+
1384+
if(hasNet | hasWifi) {
1385+
//Avoid extra memory allocation
1386+
return builder.ReferenceExisting({commands, 5 + hasCred? 1 : 0});
1387+
} else if(hasCred) {
1388+
return builder.ReferenceExisting({commands + 5, 1});
13921389
}
13931390

1394-
if (mFeatureFlags.Has(Feature::kPerDeviceCredentials))
1395-
{
1396-
VerifyOrExit(callback(QueryIdentity::Id, context) == Loop::Continue, /**/);
1397-
}
1398-
1399-
exit:
14001391
return CHIP_NO_ERROR;
14011392
}
14021393

1403-
CHIP_ERROR Instance::EnumerateGeneratedCommands(const ConcreteClusterPath & cluster, CommandIdCallback callback, void * context)
1394+
CHIP_ERROR Instance::EnumerateGeneratedCommands(const ConcreteClusterPath & cluster, DataModel::ListBuilder<CommandId> & builder)
14041395
{
14051396
using namespace Clusters::NetworkCommissioning::Commands;
14061397

14071398
if (mFeatureFlags.HasAny(Feature::kWiFiNetworkInterface, Feature::kThreadNetworkInterface))
14081399
{
1409-
for (auto && cmd : { ScanNetworksResponse::Id, NetworkConfigResponse::Id, ConnectNetworkResponse::Id })
1410-
{
1411-
VerifyOrExit(callback(cmd, context) == Loop::Continue, /**/);
1412-
}
1400+
ReturnErrorOnFailure(builder.AppendElements({ ScanNetworksResponse::Id, NetworkConfigResponse::Id, ConnectNetworkResponse::Id }));
14131401
}
14141402

14151403
if (mFeatureFlags.Has(Feature::kPerDeviceCredentials))
14161404
{
1417-
VerifyOrExit(callback(QueryIdentityResponse::Id, context) == Loop::Continue, /**/);
1405+
ReturnErrorOnFailure(builder.Append(QueryIdentityResponse::Id));
14181406
}
14191407

1420-
exit:
14211408
return CHIP_NO_ERROR;
14221409
}
14231410

‎src/app/clusters/network-commissioning/network-commissioning.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,8 @@ class Instance : public CommandHandlerInterface,
5959

6060
// CommandHandlerInterface
6161
void InvokeCommand(HandlerContext & ctx) override;
62-
CHIP_ERROR EnumerateAcceptedCommands(const ConcreteClusterPath & cluster, CommandIdCallback callback, void * context) override;
63-
CHIP_ERROR EnumerateGeneratedCommands(const ConcreteClusterPath & cluster, CommandIdCallback callback, void * context) override;
62+
CHIP_ERROR EnumerateAcceptedCommands(const ConcreteClusterPath & cluster, DataModel::ListBuilder<DataModel::AcceptedCommandEntry> & builder) override;
63+
CHIP_ERROR EnumerateGeneratedCommands(const ConcreteClusterPath & cluster, DataModel::ListBuilder<CommandId> & builder) override;
6464

6565
// AttributeAccessInterface
6666
CHIP_ERROR Read(const ConcreteReadAttributePath & aPath, AttributeValueEncoder & aEncoder) override;

‎src/app/clusters/resource-monitoring-server/resource-monitoring-server.cpp

+7-3
Original file line numberDiff line numberDiff line change
@@ -187,13 +187,17 @@ void Instance::InvokeCommand(HandlerContext & handlerContext)
187187
}
188188

189189
// List the commands supported by this instance.
190-
CHIP_ERROR Instance::EnumerateAcceptedCommands(const ConcreteClusterPath & cluster,
191-
CommandHandlerInterface::CommandIdCallback callback, void * context)
190+
CHIP_ERROR Instance::EnumerateAcceptedCommands(const ConcreteClusterPath & cluster, DataModel::ListBuilder<DataModel::AcceptedCommandEntry> & builder)
192191
{
192+
using namespace ResourceMonitoring::Commands;
193+
using QF = DataModel::CommandQualityFlags;
194+
static const auto kDefaultFlags = chip::BitFlags<QF>(QF::kTimed, QF::kLargeMessage, QF::kFabricScoped);
195+
static const auto kDefaultPrivilege = chip::Access::Privilege::kOperate;
196+
193197
ChipLogDetail(Zcl, "resourcemonitoring: EnumerateAcceptedCommands");
194198
if (mResetConditionCommandSupported)
195199
{
196-
callback(ResourceMonitoring::Commands::ResetCondition::Id, context);
200+
return builder.Append({ResetCondition::Id, kDefaultFlags, kDefaultPrivilege});
197201
}
198202

199203
return CHIP_NO_ERROR;

‎src/app/clusters/resource-monitoring-server/resource-monitoring-server.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ class Instance : public CommandHandlerInterface, public AttributeAccessInterface
132132

133133
// CommandHandlerInterface
134134
void InvokeCommand(HandlerContext & ctx) override;
135-
CHIP_ERROR EnumerateAcceptedCommands(const ConcreteClusterPath & cluster, CommandIdCallback callback, void * context) override;
135+
CHIP_ERROR EnumerateAcceptedCommands(const ConcreteClusterPath & cluster, DataModel::ListBuilder<DataModel::AcceptedCommandEntry> & builder) override;
136136

137137
// AttributeAccessInterface
138138
CHIP_ERROR Read(const ConcreteReadAttributePath & aPath, AttributeValueEncoder & aEncoder) override;

‎src/app/clusters/software-diagnostics-server/software-diagnostics-server.cpp

+7-6
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ class SoftwareDiagnosticsCommandHandler : public CommandHandlerInterface
6262

6363
void InvokeCommand(HandlerContext & handlerContext) override;
6464

65-
CHIP_ERROR EnumerateAcceptedCommands(const ConcreteClusterPath & cluster, CommandIdCallback callback, void * context) override;
65+
CHIP_ERROR EnumerateAcceptedCommands(const ConcreteClusterPath & cluster, DataModel::ListBuilder<DataModel::AcceptedCommandEntry> & builder) override;
6666
};
6767

6868
SoftwareDiagosticsAttrAccess gAttrAccess;
@@ -168,18 +168,19 @@ void SoftwareDiagnosticsCommandHandler::InvokeCommand(HandlerContext & handlerCo
168168
handlerContext.mCommandHandler.AddStatus(handlerContext.mRequestPath, status);
169169
}
170170

171-
CHIP_ERROR SoftwareDiagnosticsCommandHandler::EnumerateAcceptedCommands(const ConcreteClusterPath & cluster,
172-
CommandIdCallback callback, void * context)
171+
CHIP_ERROR SoftwareDiagnosticsCommandHandler::EnumerateAcceptedCommands(const ConcreteClusterPath & cluster, DataModel::ListBuilder<DataModel::AcceptedCommandEntry> & builder)
173172
{
173+
using namespace Commands;
174+
using QF = DataModel::CommandQualityFlags;
175+
static const auto kDefaultFlags = chip::BitFlags<QF>(QF::kTimed, QF::kLargeMessage, QF::kFabricScoped);
176+
static const auto kDefaultPrivilege = chip::Access::Privilege::kOperate;
174177
if (!DeviceLayer::GetDiagnosticDataProvider().SupportsWatermarks())
175178
{
176179
// No commmands.
177180
return CHIP_NO_ERROR;
178181
}
179182

180-
callback(Commands::ResetWatermarks::Id, context);
181-
182-
return CHIP_NO_ERROR;
183+
return builder.Append({ResetWatermarks::Id, kDefaultFlags, kDefaultPrivilege});
183184
}
184185

185186
} // anonymous namespace

‎src/controller/tests/TestServerCommandDispatch.cpp

+9-4
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ class TestClusterCommandHandler : public chip::app::CommandHandlerInterface
6969

7070
private:
7171
void InvokeCommand(chip::app::CommandHandlerInterface::HandlerContext & handlerContext) final;
72-
CHIP_ERROR EnumerateAcceptedCommands(const ConcreteClusterPath & cluster, CommandIdCallback callback, void * context) final;
72+
CHIP_ERROR EnumerateAcceptedCommands(const ConcreteClusterPath & cluster, DataModel::ListBuilder<DataModel::AcceptedCommandEntry> & builder) final;
7373

7474
bool mOverrideAcceptedCommands = false;
7575
bool mClaimNoCommands = false;
@@ -104,8 +104,13 @@ void TestClusterCommandHandler::InvokeCommand(chip::app::CommandHandlerInterface
104104
});
105105
}
106106

107-
CHIP_ERROR TestClusterCommandHandler::EnumerateAcceptedCommands(const ConcreteClusterPath & cluster, ListBuilder<AcceptedCommandEntry> & builder)
107+
CHIP_ERROR TestClusterCommandHandler::EnumerateAcceptedCommands(const ConcreteClusterPath & cluster, DataModel::ListBuilder<DataModel::AcceptedCommandEntry> & builder)
108108
{
109+
using namespace Clusters::UnitTesting::Commands;
110+
using QF = DataModel::CommandQualityFlags;
111+
static const auto kDefaultFlags = chip::BitFlags<QF>(QF::kTimed, QF::kLargeMessage, QF::kFabricScoped);
112+
static const auto kDefaultPrivilege = chip::Access::Privilege::kOperate;
113+
109114
if (!mOverrideAcceptedCommands)
110115
{
111116
return CHIP_ERROR_NOT_IMPLEMENTED;
@@ -115,9 +120,9 @@ CHIP_ERROR TestClusterCommandHandler::EnumerateAcceptedCommands(const ConcreteCl
115120
{
116121
return CHIP_NO_ERROR;
117122
}
118-
builder.get
123+
119124
// We just have one command id.
120-
callback(Clusters::UnitTesting::Commands::TestSimpleArgumentRequest::Id, context);
125+
ReturnErrorOnFailure(builder.Append({TestSimpleArgumentRequest::Id, kDefaultFlags, kDefaultPrivilege}));
121126
return CHIP_NO_ERROR;
122127
}
123128

‎src/data-model-providers/codegen/CodegenDataModelProvider.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,6 @@ CHIP_ERROR CodegenDataModelProvider::GeneratedCommands(const ConcreteClusterPath
373373
CommandHandlerInterfaceRegistry::Instance().GetCommandHandler(path.mEndpointId, path.mClusterId);
374374
if (interface != nullptr)
375375
{
376-
size_t commandCount = 0;
377376
CHIP_ERROR err = interface->EnumerateGeneratedCommands(path, builder);
378377
// if err == CHIP_ERROR_NOT_IMPLEMENTED then continue, else just return whatever err is
379378
VerifyOrReturnError(err == CHIP_ERROR_NOT_IMPLEMENTED, err);

‎src/data-model-providers/codegen/tests/TestCodegenModelViaMocks.cpp

+9-13
Original file line numberDiff line numberDiff line change
@@ -284,21 +284,13 @@ class CustomListCommandHandler : public CommandHandlerInterface
284284

285285
CHIP_ERROR EnumerateAcceptedCommands(const ConcreteClusterPath & cluster, DataModel::ListBuilder<DataModel::AcceptedCommandEntry>& builder) override
286286
{
287-
return builder.ReferenceExisting(mAccepted);
287+
return builder.ReferenceExisting({mAccepted.data(), mAccepted.size()});
288288
}
289289

290-
CHIP_ERROR EnumerateGeneratedCommands(const ConcreteClusterPath & cluster, CommandIdCallback callback, void * context) override
290+
CHIP_ERROR EnumerateGeneratedCommands(const ConcreteClusterPath & cluster, DataModel::ListBuilder<CommandId> & builder) override
291291
{
292292
VerifyOrReturnError(mOverrideGenerated, CHIP_ERROR_NOT_IMPLEMENTED);
293-
294-
for (auto id : mGenerated)
295-
{
296-
if (callback(id, context) != Loop::Continue)
297-
{
298-
break;
299-
}
300-
}
301-
return CHIP_NO_ERROR;
293+
return builder.AppendElements({mGenerated.data(), mGenerated.size()});
302294
}
303295

304296
void SetOverrideAccepted(bool o) { mOverrideAccepted = o; }
@@ -1234,6 +1226,10 @@ TEST_F(TestCodegenModelViaMocks, AcceptedGeneratedCommandsOnInvalidEndpoints)
12341226
TEST_F(TestCodegenModelViaMocks, CommandHandlerInterfaceCommandHandling)
12351227
{
12361228

1229+
using QF = DataModel::CommandQualityFlags;
1230+
static const auto kDefaultFlags = chip::BitFlags<QF>(QF::kTimed, QF::kLargeMessage, QF::kFabricScoped);
1231+
static const auto kDefaultPrivilege = chip::Access::Privilege::kOperate;
1232+
12371233
UseMockNodeConfig config(gTestNodeConfig);
12381234
CodegenDataModelProviderWithContext model;
12391235

@@ -1260,8 +1256,8 @@ TEST_F(TestCodegenModelViaMocks, CommandHandlerInterfaceCommandHandling)
12601256
ASSERT_TRUE(acceptedBuilder.IsEmpty());
12611257

12621258
// set some overrides
1263-
handler.AcceptedVec().push_back(1234);
1264-
handler.AcceptedVec().push_back(999);
1259+
handler.AcceptedVec().push_back({1234, kDefaultFlags, kDefaultPrivilege});
1260+
handler.AcceptedVec().push_back({999, kDefaultFlags, kDefaultPrivilege});
12651261

12661262
handler.GeneratedVec().push_back(33);
12671263

0 commit comments

Comments
 (0)
Please sign in to comment.