Skip to content

Commit f8e5d35

Browse files
committed
Add length() API call to OutMessage
1 parent 8ed7591 commit f8e5d35

4 files changed

Lines changed: 24 additions & 0 deletions

File tree

include/Homa/Homa.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,11 @@ class OutMessage {
163163
*/
164164
virtual Status getStatus() const = 0;
165165

166+
/**
167+
* Return the number of bytes this Message contains.
168+
*/
169+
virtual size_t length() const = 0;
170+
166171
/**
167172
* Copy an array of bytes to the beginning of the Message.
168173
*

src/Sender.cc

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -585,6 +585,15 @@ Sender::Message::getStatus() const
585585
return state.load();
586586
}
587587

588+
/**
589+
* @copydoc Homa::OutMessage::length()
590+
*/
591+
size_t
592+
Sender::Message::length() const
593+
{
594+
return Util::downCast<size_t>(messageLength - start);
595+
}
596+
588597
/**
589598
* @copydoc Homa::OutMessage::prepend()
590599
*/

src/Sender.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,7 @@ class Sender {
156156
virtual void append(const void* source, size_t count);
157157
virtual void cancel();
158158
virtual Status getStatus() const;
159+
virtual size_t length() const;
159160
virtual void prepend(const void* source, size_t count);
160161
virtual void release();
161162
virtual void reserve(size_t count);

src/SenderTest.cc

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1127,6 +1127,15 @@ TEST_F(SenderTest, Message_getStatus)
11271127
// Nothing to test
11281128
}
11291129

1130+
TEST_F(SenderTest, Message_length)
1131+
{
1132+
ON_CALL(mockDriver, getMaxPayloadSize).WillByDefault(Return(2048));
1133+
Sender::Message msg(sender, &mockDriver);
1134+
msg.messageLength = 200;
1135+
msg.start = 20;
1136+
EXPECT_EQ(180U, msg.length());
1137+
}
1138+
11301139
TEST_F(SenderTest, Message_prepend)
11311140
{
11321141
ON_CALL(mockDriver, getMaxPayloadSize).WillByDefault(Return(2048));

0 commit comments

Comments
 (0)