Skip to content

Commit

Permalink
Address review comment.
Browse files Browse the repository at this point in the history
  • Loading branch information
bzbarsky-apple committed Jun 6, 2023
1 parent 395a392 commit 75dc90b
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 8 deletions.
8 changes: 4 additions & 4 deletions src/app/ReadClient.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -433,7 +433,7 @@ CHIP_ERROR ReadClient::OnMessageReceived(Messaging::ExchangeContext * apExchange

if (aPayloadHeader.HasMessageType(Protocols::InteractionModel::MsgType::ReportData))
{
err = ProcessReportData(std::move(aPayload), /* aIsUnsolicitedReport = */ false);
err = ProcessReportData(std::move(aPayload), ReportType::kContinuingTransaction);
}
else if (aPayloadHeader.HasMessageType(Protocols::InteractionModel::MsgType::SubscribeResponse))
{
Expand Down Expand Up @@ -487,7 +487,7 @@ void ReadClient::OnUnsolicitedReportData(Messaging::ExchangeContext * apExchange
//
mReadPrepareParams.mSessionHolder.Grab(mExchange->GetSessionHandle());

CHIP_ERROR err = ProcessReportData(std::move(aPayload), /* aIsUnsolicitedReport = */ true);
CHIP_ERROR err = ProcessReportData(std::move(aPayload), ReportType::kUnsolicited);
if (err != CHIP_NO_ERROR)
{
if (err == CHIP_ERROR_INVALID_SUBSCRIPTION)
Expand All @@ -504,7 +504,7 @@ void ReadClient::OnUnsolicitedReportData(Messaging::ExchangeContext * apExchange
}
}

CHIP_ERROR ReadClient::ProcessReportData(System::PacketBufferHandle && aPayload, bool aIsUnsolicitedReport)
CHIP_ERROR ReadClient::ProcessReportData(System::PacketBufferHandle && aPayload, ReportType aReportType)
{
CHIP_ERROR err = CHIP_NO_ERROR;
ReportDataMessage::Parser report;
Expand All @@ -518,7 +518,7 @@ CHIP_ERROR ReadClient::ProcessReportData(System::PacketBufferHandle && aPayload,
SuccessOrExit(err);

#if CHIP_CONFIG_IM_PRETTY_PRINT
if (!aIsUnsolicitedReport)
if (aReportType != ReportType::kUnsolicited)
{
report.PrettyPrint();
}
Expand Down
10 changes: 9 additions & 1 deletion src/app/ReadClient.h
Original file line number Diff line number Diff line change
Expand Up @@ -447,6 +447,14 @@ class ReadClient : public Messaging::ExchangeDelegate
SubscriptionActive, ///< The client is maintaining subscription
};

enum class ReportType
{
// kUnsolicited reports are the first message in an exchange.
kUnsolicited,
// kContinuingTransaction reports are responses to a message we sent.
kContinuingTransaction
};

bool IsMatchingSubscriptionId(SubscriptionId aSubscriptionId)
{
return aSubscriptionId == mSubscriptionId && mInteractionType == InteractionType::Subscribe;
Expand Down Expand Up @@ -486,7 +494,7 @@ class ReadClient : public Messaging::ExchangeDelegate
void CancelResubscribeTimer();
void MoveToState(const ClientState aTargetState);
CHIP_ERROR ProcessAttributePath(AttributePathIB::Parser & aAttributePath, ConcreteDataAttributePath & aClusterInfo);
CHIP_ERROR ProcessReportData(System::PacketBufferHandle && aPayload, bool aIsUnsolicitedReport);
CHIP_ERROR ProcessReportData(System::PacketBufferHandle && aPayload, ReportType aReportType);
const char * GetStateStr() const;

/*
Expand Down
6 changes: 3 additions & 3 deletions src/app/tests/TestReadInteraction.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -468,7 +468,7 @@ void TestReadInteraction::TestReadClient(nlTestSuite * apSuite, void * apContext
ctx.DrainAndServiceIO();

GenerateReportData(apSuite, apContext, buf, false /*aNeedInvalidReport*/, true /* aSuppressResponse*/);
err = readClient.ProcessReportData(std::move(buf), false /* aIsUnsolicitedReport */);
err = readClient.ProcessReportData(std::move(buf), ReadClient::ReportType::kContinuingTransaction);
NL_TEST_ASSERT(apSuite, err == CHIP_NO_ERROR);
}

Expand All @@ -494,7 +494,7 @@ void TestReadInteraction::TestReadUnexpectedSubscriptionId(nlTestSuite * apSuite
// For read, we don't expect there is subscription id in report data.
GenerateReportData(apSuite, apContext, buf, false /*aNeedInvalidReport*/, true /* aSuppressResponse*/,
true /*aHasSubscriptionId*/);
err = readClient.ProcessReportData(std::move(buf), false /* aIsUnsolicitedReport */);
err = readClient.ProcessReportData(std::move(buf), ReadClient::ReportType::kContinuingTransaction);
NL_TEST_ASSERT(apSuite, err == CHIP_ERROR_INVALID_ARGUMENT);
}

Expand Down Expand Up @@ -637,7 +637,7 @@ void TestReadInteraction::TestReadClientInvalidReport(nlTestSuite * apSuite, voi

GenerateReportData(apSuite, apContext, buf, true /*aNeedInvalidReport*/, true /* aSuppressResponse*/);

err = readClient.ProcessReportData(std::move(buf), false /* aIsUnsolicitedReport */);
err = readClient.ProcessReportData(std::move(buf), ReadClient::ReportType::kContinuingTransaction);
NL_TEST_ASSERT(apSuite, err == CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_PATH_IB);
}

Expand Down

0 comments on commit 75dc90b

Please sign in to comment.