Skip to content

Commit f49a348

Browse files
jrsala-augurationJoan-Roch Sala
andauthored
[C++] std::forward fragment handlers to avoid unnecessary copies (#1405)
Co-authored-by: Joan-Roch Sala <[email protected]>
1 parent 562f048 commit f49a348

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

aeron-client/src/main/cpp/Image.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -404,7 +404,7 @@ class Image
404404
AtomicBuffer &termBuffer = m_termBuffers[index];
405405
TermReader::ReadOutcome outcome{};
406406

407-
TermReader::read(outcome, termBuffer, offset, fragmentHandler, fragmentLimit, m_header, m_exceptionHandler);
407+
TermReader::read(outcome, termBuffer, offset, std::forward<F>(fragmentHandler), fragmentLimit, m_header, m_exceptionHandler);
408408

409409
const std::int64_t newPosition = position + (outcome.offset - offset);
410410
if (newPosition > position)

aeron-client/src/main/cpp/Subscription.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -221,12 +221,12 @@ class CLIENT_EXPORT Subscription
221221

222222
for (std::size_t i = startingIndex; i < length && fragmentsRead < fragmentLimit; i++)
223223
{
224-
fragmentsRead += imageArray[i]->poll(fragmentHandler, fragmentLimit - fragmentsRead);
224+
fragmentsRead += imageArray[i]->poll(std::forward<F>(fragmentHandler), fragmentLimit - fragmentsRead);
225225
}
226226

227227
for (std::size_t i = 0; i < startingIndex && fragmentsRead < fragmentLimit; i++)
228228
{
229-
fragmentsRead += imageArray[i]->poll(fragmentHandler, fragmentLimit - fragmentsRead);
229+
fragmentsRead += imageArray[i]->poll(std::forward<F>(fragmentHandler), fragmentLimit - fragmentsRead);
230230
}
231231

232232
return fragmentsRead;
@@ -263,12 +263,12 @@ class CLIENT_EXPORT Subscription
263263

264264
for (std::size_t i = startingIndex; i < length && fragmentsRead < fragmentLimit; i++)
265265
{
266-
fragmentsRead += imageArray[i]->controlledPoll(fragmentHandler, fragmentLimit - fragmentsRead);
266+
fragmentsRead += imageArray[i]->controlledPoll(std::forward<F>(fragmentHandler), fragmentLimit - fragmentsRead);
267267
}
268268

269269
for (std::size_t i = 0; i < startingIndex && fragmentsRead < fragmentLimit; i++)
270270
{
271-
fragmentsRead += imageArray[i]->controlledPoll(fragmentHandler, fragmentLimit - fragmentsRead);
271+
fragmentsRead += imageArray[i]->controlledPoll(std::forward<F>(fragmentHandler), fragmentLimit - fragmentsRead);
272272
}
273273

274274
return fragmentsRead;
@@ -291,7 +291,7 @@ class CLIENT_EXPORT Subscription
291291

292292
for (std::size_t i = 0; i < length; i++)
293293
{
294-
bytesConsumed += imageArray[i]->blockPoll(blockHandler, blockLengthLimit);
294+
bytesConsumed += imageArray[i]->blockPoll(std::forward<F>(blockHandler), blockLengthLimit);
295295
}
296296

297297
return bytesConsumed;

0 commit comments

Comments
 (0)