Skip to content

Commit

Permalink
tv-casting-app: Fixing persistence logic
Browse files Browse the repository at this point in the history
  • Loading branch information
sharadb-amazon committed Jan 31, 2023
1 parent eceb047 commit f53c79d
Showing 1 changed file with 21 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -46,12 +46,17 @@ CHIP_ERROR PersistenceManager::AddVideoPlayer(TargetVideoPlayerInfo * targetVide
// found the same video player, overwrite the data
if (cachedVideoPlayers[i] == *targetVideoPlayerInfo)
{
ChipLogProgress(AppServer,
"PersistenceManager::AddVideoPlayer found video player already cached. Overwriting at position: %lu",
static_cast<unsigned long>(i));
cachedVideoPlayers[i] = *targetVideoPlayerInfo;
newVideoPlayer = false;
}
}
if (newVideoPlayer)
{
ChipLogProgress(AppServer, "PersistenceManager::AddVideoPlayer writing new video player at position: %lu",
static_cast<unsigned long>(i));
VerifyOrReturnError(i < kMaxCachedVideoPlayers, CHIP_ERROR_BUFFER_TOO_SMALL);
cachedVideoPlayers[i] = *targetVideoPlayerInfo;
}
Expand All @@ -78,7 +83,8 @@ CHIP_ERROR PersistenceManager::WriteAllVideoPlayers(TargetVideoPlayerInfo videoP
ReturnErrorOnFailure(
tlvWriter.StartContainer(TLV::ContextTag(kVideoPlayersContainerTag), TLV::kTLVType_Structure, videoPlayersContainerType));

for (size_t videoPlayerIndex = 0; videoPlayerIndex < kMaxCachedVideoPlayers && videoPlayers[videoPlayerIndex].IsInitialized();
size_t videoPlayerIndex;
for (videoPlayerIndex = 0; videoPlayerIndex < kMaxCachedVideoPlayers && videoPlayers[videoPlayerIndex].IsInitialized();
videoPlayerIndex++)
{
TargetVideoPlayerInfo * videoPlayer = &videoPlayers[videoPlayerIndex];
Expand Down Expand Up @@ -146,19 +152,19 @@ CHIP_ERROR PersistenceManager::WriteAllVideoPlayers(TargetVideoPlayerInfo videoP
// Content app endpoints container ends
ReturnErrorOnFailure(tlvWriter.EndContainer(contentAppEndpointsContainerType));
}
// Video Players container ends
ReturnErrorOnFailure(tlvWriter.EndContainer(videoPlayersContainerType));
ReturnErrorOnFailure(tlvWriter.EndContainer(outerContainerType));

ReturnErrorOnFailure(tlvWriter.Finalize());
ChipLogProgress(AppServer,
"PersistenceManager::WriteAllVideoPlayers TLV(CastingData).LengthWritten: %d bytes and version: %d",
tlvWriter.GetLengthWritten(), kCurrentCastingDataVersion);
return chip::DeviceLayer::PersistedStorage::KeyValueStoreMgr().Put(kCastingDataKey, castingData,
tlvWriter.GetLengthWritten());
}
}
return CHIP_NO_ERROR;

// Video Players container ends
ReturnErrorOnFailure(tlvWriter.EndContainer(videoPlayersContainerType));
ReturnErrorOnFailure(tlvWriter.EndContainer(outerContainerType));

ReturnErrorOnFailure(tlvWriter.Finalize());
ChipLogProgress(AppServer,
"PersistenceManager::WriteAllVideoPlayers TLV(CastingData).LengthWritten: %d bytes, video player count: %lu "
"and version: %d",
tlvWriter.GetLengthWritten(), static_cast<unsigned long>(videoPlayerIndex), kCurrentCastingDataVersion);
return chip::DeviceLayer::PersistedStorage::KeyValueStoreMgr().Put(kCastingDataKey, castingData, tlvWriter.GetLengthWritten());
}

CHIP_ERROR PersistenceManager::ReadAllVideoPlayers(TargetVideoPlayerInfo outVideoPlayers[])
Expand Down Expand Up @@ -379,6 +385,9 @@ CHIP_ERROR PersistenceManager::ReadAllVideoPlayers(TargetVideoPlayerInfo outVide
VerifyOrReturnError(err == CHIP_END_OF_TLV, err);
ReturnErrorOnFailure(reader.ExitContainer(videoPlayersContainerType));
ReturnErrorOnFailure(reader.ExitContainer(outerContainerType));

ChipLogProgress(AppServer, "PersistenceManager::ReadAllVideoPlayers Video player read count: %lu",
static_cast<unsigned long>(videoPlayerIndex));
return CHIP_NO_ERROR;
}

Expand Down

0 comments on commit f53c79d

Please sign in to comment.