Skip to content

Commit 5892a36

Browse files
committed
Update to latest version - mainly std::optional update
1 parent 26c8f16 commit 5892a36

File tree

3 files changed

+39
-39
lines changed

3 files changed

+39
-39
lines changed

src/app/codegen-interaction-model/Model.cpp

+11-11
Original file line numberDiff line numberDiff line change
@@ -110,13 +110,13 @@ InteractionModel::AttributeEntry AttributeEntryFrom(const ConcreteClusterPath &
110110
} // namespace
111111

112112
CHIP_ERROR Model::ReadAttribute(const InteractionModel::ReadAttributeRequest & request, InteractionModel::ReadState & state,
113-
chip::TLV::TLVWriter & attribute_data)
113+
AttributeValueEncoder & encoder)
114114
{
115115
// TODO: this needs an implementation
116116
return CHIP_ERROR_NOT_IMPLEMENTED;
117117
}
118118

119-
CHIP_ERROR Model::WriteAttribute(const InteractionModel::WriteAttributeRequest & request, chip::TLV::TLVReader & attribute_data)
119+
CHIP_ERROR Model::WriteAttribute(const InteractionModel::WriteAttributeRequest & request, AttributeValueDecoder & decoder)
120120
{
121121
// TODO: this needs an implementation
122122
return CHIP_ERROR_NOT_IMPLEMENTED;
@@ -198,15 +198,15 @@ InteractionModel::ClusterEntry Model::NextCluster(const ConcreteClusterPath & be
198198
return InteractionModel::ClusterEntry::Invalid();
199199
}
200200

201-
Optional<InteractionModel::ClusterInfo> Model::GetClusterInfo(const ConcreteClusterPath & path)
201+
std::optional<InteractionModel::ClusterInfo> Model::GetClusterInfo(const ConcreteClusterPath & path)
202202
{
203203
const EmberAfCluster * cluster = emberAfFindServerCluster(path.mEndpointId, path.mClusterId);
204-
VerifyOrReturnValue(cluster != nullptr, Optional<InteractionModel::ClusterInfo>::Missing());
204+
VerifyOrReturnValue(cluster != nullptr, std::nullopt);
205205

206206
InteractionModel::ClusterInfo info;
207207
LoadClusterInfo(path, *cluster, &info);
208208

209-
return MakeOptional(info);
209+
return std::make_optional(info);
210210
}
211211

212212
InteractionModel::AttributeEntry Model::FirstAttribute(const ConcreteClusterPath & path)
@@ -242,24 +242,24 @@ InteractionModel::AttributeEntry Model::NextAttribute(const ConcreteAttributePat
242242
return InteractionModel::AttributeEntry::Invalid();
243243
}
244244

245-
Optional<InteractionModel::AttributeInfo> Model::GetAttributeInfo(const ConcreteAttributePath & path)
245+
std::optional<InteractionModel::AttributeInfo> Model::GetAttributeInfo(const ConcreteAttributePath & path)
246246
{
247247
const EmberAfCluster * cluster = emberAfFindServerCluster(path.mEndpointId, path.mClusterId);
248-
VerifyOrReturnValue(cluster != nullptr, Optional<InteractionModel::AttributeInfo>::Missing());
249-
VerifyOrReturnValue(cluster->attributeCount > 0, Optional<InteractionModel::AttributeInfo>::Missing());
250-
VerifyOrReturnValue(cluster->attributes != nullptr, Optional<InteractionModel::AttributeInfo>::Missing());
248+
VerifyOrReturnValue(cluster != nullptr, std::nullopt);
249+
VerifyOrReturnValue(cluster->attributeCount > 0, std::nullopt);
250+
VerifyOrReturnValue(cluster->attributes != nullptr, std::nullopt);
251251
const unsigned attributeCount = cluster->attributeCount;
252252
for (unsigned i = 0; i < attributeCount; i++)
253253
{
254254
if (cluster->attributes[i].attributeId == path.mAttributeId)
255255
{
256256
InteractionModel::AttributeInfo info;
257257
LoadAttributeInfo(path, cluster->attributes[i], &info);
258-
return MakeOptional(info);
258+
return std::make_optional(info);
259259
}
260260
}
261261

262-
return Optional<InteractionModel::AttributeInfo>::Missing();
262+
return std::nullopt;
263263
}
264264

265265
} // namespace CodegenDataModel

src/app/codegen-interaction-model/Model.h

+4-5
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,8 @@ class Model : public chip::app::InteractionModel::Model
2929
CHIP_ERROR Shutdown() override { return CHIP_NO_ERROR; }
3030

3131
CHIP_ERROR ReadAttribute(const InteractionModel::ReadAttributeRequest & request, InteractionModel::ReadState & state,
32-
chip::TLV::TLVWriter & attribute_data) override;
33-
CHIP_ERROR WriteAttribute(const InteractionModel::WriteAttributeRequest & request,
34-
chip::TLV::TLVReader & attribute_data) override;
32+
AttributeValueEncoder & encoder) override;
33+
CHIP_ERROR WriteAttribute(const InteractionModel::WriteAttributeRequest & request, AttributeValueDecoder & decoder) override;
3534
CHIP_ERROR Invoke(const InteractionModel::InvokeRequest & request, chip::TLV::TLVReader & input_arguments,
3635
InteractionModel::InvokeReply & reply) override;
3736

@@ -41,11 +40,11 @@ class Model : public chip::app::InteractionModel::Model
4140

4241
InteractionModel::ClusterEntry FirstCluster(EndpointId endpoint) override;
4342
InteractionModel::ClusterEntry NextCluster(const ConcreteClusterPath & before) override;
44-
Optional<InteractionModel::ClusterInfo> GetClusterInfo(const ConcreteClusterPath & path) override;
43+
std::optional<InteractionModel::ClusterInfo> GetClusterInfo(const ConcreteClusterPath & path) override;
4544

4645
InteractionModel::AttributeEntry FirstAttribute(const ConcreteClusterPath & cluster) override;
4746
InteractionModel::AttributeEntry NextAttribute(const ConcreteAttributePath & before) override;
48-
Optional<InteractionModel::AttributeInfo> GetAttributeInfo(const ConcreteAttributePath & path) override;
47+
std::optional<InteractionModel::AttributeInfo> GetAttributeInfo(const ConcreteAttributePath & path) override;
4948
};
5049

5150
} // namespace CodegenDataModel

src/app/codegen-interaction-model/tests/TestCodegenModelViaMocks.cpp

+24-23
Original file line numberDiff line numberDiff line change
@@ -180,22 +180,22 @@ TEST(TestCodegenModelViaMocks, GetCluterInfo)
180180

181181
chip::Test::ResetVersion();
182182

183-
ASSERT_FALSE(model.GetClusterInfo(ConcreteClusterPath(kInvalidEndpointId, kInvalidClusterId)).HasValue());
184-
ASSERT_FALSE(model.GetClusterInfo(ConcreteClusterPath(kInvalidEndpointId, MockClusterId(1))).HasValue());
185-
ASSERT_FALSE(model.GetClusterInfo(ConcreteClusterPath(kMockEndpoint1, kInvalidClusterId)).HasValue());
186-
ASSERT_FALSE(model.GetClusterInfo(ConcreteClusterPath(kMockEndpoint1, MockClusterId(10))).HasValue());
183+
ASSERT_FALSE(model.GetClusterInfo(ConcreteClusterPath(kInvalidEndpointId, kInvalidClusterId)).has_value());
184+
ASSERT_FALSE(model.GetClusterInfo(ConcreteClusterPath(kInvalidEndpointId, MockClusterId(1))).has_value());
185+
ASSERT_FALSE(model.GetClusterInfo(ConcreteClusterPath(kMockEndpoint1, kInvalidClusterId)).has_value());
186+
ASSERT_FALSE(model.GetClusterInfo(ConcreteClusterPath(kMockEndpoint1, MockClusterId(10))).has_value());
187187

188188
// now get the value
189-
Optional<ClusterInfo> info = model.GetClusterInfo(ConcreteClusterPath(kMockEndpoint1, MockClusterId(1)));
190-
ASSERT_TRUE(info.HasValue());
191-
ASSERT_EQ(info.Value().dataVersion, 0u);
192-
ASSERT_EQ(info.Value().flags.Raw(), 0u);
189+
std::optional<ClusterInfo> info = model.GetClusterInfo(ConcreteClusterPath(kMockEndpoint1, MockClusterId(1)));
190+
ASSERT_TRUE(info.has_value());
191+
EXPECT_EQ(info->dataVersion, 0u);
192+
EXPECT_EQ(info->flags.Raw(), 0u);
193193

194194
chip::Test::BumpVersion();
195195
info = model.GetClusterInfo(ConcreteClusterPath(kMockEndpoint1, MockClusterId(1)));
196-
ASSERT_TRUE(info.HasValue());
197-
ASSERT_EQ(info.Value().dataVersion, 1u);
198-
ASSERT_EQ(info.Value().flags.Raw(), 0u);
196+
ASSERT_TRUE(info.has_value());
197+
EXPECT_EQ(info->dataVersion, 1u);
198+
EXPECT_EQ(info->flags.Raw(), 0u);
199199
}
200200

201201
TEST(TestCodegenModelViaMocks, IterateOverAttributes)
@@ -270,20 +270,21 @@ TEST(TestCodegenModelViaMocks, GetAttributeInfo)
270270

271271
// various non-existent or invalid paths should return no info data
272272
ASSERT_FALSE(
273-
model.GetAttributeInfo(ConcreteAttributePath(kInvalidEndpointId, kInvalidClusterId, kInvalidAttributeId)).HasValue());
274-
ASSERT_FALSE(model.GetAttributeInfo(ConcreteAttributePath(kInvalidEndpointId, kInvalidClusterId, FeatureMap::Id)).HasValue());
275-
ASSERT_FALSE(model.GetAttributeInfo(ConcreteAttributePath(kInvalidEndpointId, MockClusterId(1), FeatureMap::Id)).HasValue());
276-
ASSERT_FALSE(model.GetAttributeInfo(ConcreteAttributePath(kMockEndpoint1, kInvalidClusterId, FeatureMap::Id)).HasValue());
277-
ASSERT_FALSE(model.GetAttributeInfo(ConcreteAttributePath(kMockEndpoint1, MockClusterId(10), FeatureMap::Id)).HasValue());
278-
ASSERT_FALSE(model.GetAttributeInfo(ConcreteAttributePath(kMockEndpoint1, MockClusterId(10), kInvalidAttributeId)).HasValue());
279-
ASSERT_FALSE(model.GetAttributeInfo(ConcreteAttributePath(kMockEndpoint1, MockClusterId(1), MockAttributeId(10))).HasValue());
273+
model.GetAttributeInfo(ConcreteAttributePath(kInvalidEndpointId, kInvalidClusterId, kInvalidAttributeId)).has_value());
274+
ASSERT_FALSE(model.GetAttributeInfo(ConcreteAttributePath(kInvalidEndpointId, kInvalidClusterId, FeatureMap::Id)).has_value());
275+
ASSERT_FALSE(model.GetAttributeInfo(ConcreteAttributePath(kInvalidEndpointId, MockClusterId(1), FeatureMap::Id)).has_value());
276+
ASSERT_FALSE(model.GetAttributeInfo(ConcreteAttributePath(kMockEndpoint1, kInvalidClusterId, FeatureMap::Id)).has_value());
277+
ASSERT_FALSE(model.GetAttributeInfo(ConcreteAttributePath(kMockEndpoint1, MockClusterId(10), FeatureMap::Id)).has_value());
278+
ASSERT_FALSE(model.GetAttributeInfo(ConcreteAttributePath(kMockEndpoint1, MockClusterId(10), kInvalidAttributeId)).has_value());
279+
ASSERT_FALSE(model.GetAttributeInfo(ConcreteAttributePath(kMockEndpoint1, MockClusterId(1), MockAttributeId(10))).has_value());
280280

281281
// valid info
282-
Optional<AttributeInfo> info = model.GetAttributeInfo(ConcreteAttributePath(kMockEndpoint1, MockClusterId(1), FeatureMap::Id));
283-
ASSERT_TRUE(info.HasValue());
284-
ASSERT_FALSE(info.Value().flags.Has(AttributeQualityFlags::kListAttribute));
282+
std::optional<AttributeInfo> info =
283+
model.GetAttributeInfo(ConcreteAttributePath(kMockEndpoint1, MockClusterId(1), FeatureMap::Id));
284+
ASSERT_TRUE(info.has_value());
285+
ASSERT_FALSE(info->flags.Has(AttributeQualityFlags::kListAttribute));
285286

286287
info = model.GetAttributeInfo(ConcreteAttributePath(kMockEndpoint2, MockClusterId(2), MockAttributeId(2)));
287-
ASSERT_TRUE(info.HasValue());
288-
ASSERT_TRUE(info.Value().flags.Has(AttributeQualityFlags::kListAttribute));
288+
ASSERT_TRUE(info.has_value());
289+
ASSERT_TRUE(info->flags.Has(AttributeQualityFlags::kListAttribute));
289290
}

0 commit comments

Comments
 (0)