[message] introduce MessageAllocator to unify allocation (#12702)

This commit introduces the `MessageAllocator` template class using the
CRTP pattern to provide a unified implementation of the `NewMessage()`
methods. It standardizes the reserved header sizes for different
message types within `ReservedHeaderSize`. This removes boilerplate
code and redundant `NewMessage()` method implementations across the
`Ip6`, `Icmp`, `Udp`, `Udp::Socket`, and `CoapBase` classes.
This commit is contained in:
Abtin Keshavarzian
2026-03-17 18:50:39 -05:00
committed by GitHub
parent 422a649919
commit 44f5cddc2e
19 changed files with 182 additions and 185 deletions
+5 -5
View File
@@ -184,7 +184,7 @@ void TestUdpMessageChecksum(void)
for (uint16_t size = kMinSize; size <= kMaxSize; size++)
{
Message *message = instance->Get<Ip6::Ip6>().NewMessage(sizeof(Ip6::Udp::Header));
Message *message = instance->Get<Ip6::Ip6>().NewMessage();
Ip6::Udp::Header udpHeader;
Ip6::MessageInfo messageInfo;
@@ -252,7 +252,7 @@ void TestIcmp6MessageChecksum(void)
for (uint16_t size = kMinSize; size <= kMaxSize; size++)
{
Message *message = instance->Get<Ip6::Ip6>().NewMessage(sizeof(Ip6::Icmp::Header));
Message *message = instance->Get<Ip6::Ip6>().NewMessage();
Ip6::Icmp::Header icmp6Header;
Ip6::MessageInfo messageInfo;
@@ -327,7 +327,7 @@ void TestTcp4MessageChecksum(void)
for (uint16_t size = kMinSize; size <= kMaxSize; size++)
{
Message *message = instance->Get<Ip6::Ip6>().NewMessage(sizeof(Ip4::Tcp::Header));
Message *message = instance->Get<Ip6::Ip6>().NewMessage();
Ip4::Tcp::Header tcpHeader;
VerifyOrQuit(message != nullptr, "Ip6::NewMesssage() failed");
@@ -382,7 +382,7 @@ void TestUdp4MessageChecksum(void)
for (uint16_t size = kMinSize; size <= kMaxSize; size++)
{
Message *message = instance->Get<Ip6::Ip6>().NewMessage(sizeof(Ip4::Udp::Header));
Message *message = instance->Get<Ip6::Ip6>().NewMessage();
Ip4::Udp::Header udpHeader;
VerifyOrQuit(message != nullptr, "Ip6::NewMesssage() failed");
@@ -427,7 +427,7 @@ void TestIcmp4MessageChecksum(void)
"\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30\x31\x32\x33\x34\x35\x36\x37";
uint16_t kChecksumForExampleMessage = 0x5594;
Instance *instance = static_cast<Instance *>(testInitInstance());
Message *message = instance->Get<Ip6::Ip6>().NewMessage(sizeof(kExampleIcmpMessage));
Message *message = instance->Get<Ip6::Ip6>().NewMessage();
Ip4::Address source;
Ip4::Address dest;
+2 -2
View File
@@ -117,7 +117,7 @@ void Verify6To4(const char *aTestName,
uint16_t aIp4Length,
Error aError)
{
Message *message = sInstance->Get<Ip6::Ip6>().NewMessage(0);
Message *message = sInstance->Get<Ip6::Ip6>().NewMessage();
Error error;
Log("- - - - - - - - - - - - - - - - - - - - - - - - - ");
@@ -161,7 +161,7 @@ void Verify4To6(const char *aTestName,
uint16_t aIp6Length,
Error aError)
{
Message *message = sInstance->Get<Ip6::Ip6>().NewMessage(0);
Message *message = sInstance->Get<Ip6::Ip6>().NewMessage();
Error error;
Log("- - - - - - - - - - - - - - - - - - - - - - - - - ");