Skip to content

Commit

Permalink
Migrate ReliableMessageMgr::mRetransTable to Pool (#9951)
Browse files Browse the repository at this point in the history
  • Loading branch information
kghost authored and pull[bot] committed Sep 30, 2021
1 parent 11eb456 commit 1526335
Show file tree
Hide file tree
Showing 4 changed files with 127 additions and 211 deletions.
18 changes: 4 additions & 14 deletions src/messaging/ReliableMessageContext.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -43,16 +43,6 @@ ReliableMessageContext::ReliableMessageContext() :
mConfig(gDefaultReliableMessageProtocolConfig), mNextAckTimeTick(0), mPendingPeerAckMessageCounter(0)
{}

void ReliableMessageContext::RetainContext()
{
GetExchangeContext()->Retain();
}

void ReliableMessageContext::ReleaseContext()
{
GetExchangeContext()->Release();
}

bool ReliableMessageContext::AutoRequestAck() const
{
return mFlags.Has(Flags::kFlagAutoRequestAck);
Expand Down Expand Up @@ -88,14 +78,14 @@ void ReliableMessageContext::SetDropAckDebug(bool inDropAckDebug)
mFlags.Set(Flags::kFlagDropAckDebug, inDropAckDebug);
}

bool ReliableMessageContext::IsOccupied() const
bool ReliableMessageContext::IsMessageNotAcked() const
{
return mFlags.Has(Flags::kFlagOccupied);
return mFlags.Has(Flags::kFlagMesageNotAcked);
}

void ReliableMessageContext::SetOccupied(bool inOccupied)
void ReliableMessageContext::SetMessageNotAcked(bool messageNotAcked)
{
mFlags.Set(Flags::kFlagOccupied, inOccupied);
mFlags.Set(Flags::kFlagMesageNotAcked, messageNotAcked);
}

bool ReliableMessageContext::ShouldDropAckDebug() const
Expand Down
24 changes: 6 additions & 18 deletions src/messaging/ReliableMessageContext.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@ namespace Messaging {
class ChipMessageInfo;
class ExchangeContext;
enum class MessageFlagValues : uint32_t;
class ReliableMessageContext;
class ReliableMessageMgr;

class ReliableMessageContext
Expand Down Expand Up @@ -166,20 +165,11 @@ class ReliableMessageContext
*/
void SetMsgRcvdFromPeer(bool inMsgRcvdFromPeer);

/**
* Determine whether there is already an acknowledgment pending to be sent to the peer on this exchange.
*
* @return Returns 'true' if there is already an acknowledgment pending on this exchange, else 'false'.
*/
bool IsOccupied() const;
/// Determine whether there is message hasn't been acknowledged.
bool IsMessageNotAcked() const;

/**
* Set whether there is an acknowledgment panding to be send to the peer on
* this exchange.
*
* @param[in] inOccupied Whether there is a pending acknowledgment.
*/
void SetOccupied(bool inOccupied);
/// Set whether there is a message hasn't been acknowledged.
void SetMessageNotAcked(bool messageNotAcked);

/**
* Get the reliable message manager that corresponds to this reliable
Expand All @@ -202,8 +192,8 @@ class ReliableMessageContext
/// Internal and debug only: when set, the exchange layer does not send an acknowledgment.
kFlagDropAckDebug = (1u << 3),

/// When set, signifies current reliable message context is in usage.
kFlagOccupied = (1u << 4),
/// When set, signifies there is a message which hasn't been acknowledged.
kFlagMesageNotAcked = (1u << 4),

/// When set, signifies that there is an acknowledgment pending to be sent back.
kFlagAckPending = (1u << 5),
Expand All @@ -229,8 +219,6 @@ class ReliableMessageContext
BitFlags<Flags> mFlags; // Internal state flags

private:
void RetainContext();
void ReleaseContext();
void HandleRcvdAck(uint32_t ackMessageCounter);
CHIP_ERROR HandleNeedsAck(uint32_t messageCounter, BitFlags<MessageFlagValues> messageFlags);
CHIP_ERROR HandleNeedsAckInner(uint32_t messageCounter, BitFlags<MessageFlagValues> messageFlags);
Expand Down
Loading

0 comments on commit 1526335

Please sign in to comment.