@@ -239,7 +239,7 @@ void TFederatedWriteSession::Write(NTopic::TContinuationToken&& token, TStringBu
239
239
}
240
240
241
241
void TFederatedWriteSession::Write (NTopic::TContinuationToken&& token, NTopic::TWriteMessage&& message) {
242
- return WriteInternal (std::move (token), std::move (message));
242
+ return WriteInternal (std::move (token), TWrappedWriteMessage ( std::move (message) ));
243
243
}
244
244
245
245
void TFederatedWriteSession::WriteEncoded (NTopic::TContinuationToken&& token, TStringBuf data, NTopic::ECodec codec,
@@ -249,24 +249,24 @@ void TFederatedWriteSession::WriteEncoded(NTopic::TContinuationToken&& token, TS
249
249
message.SeqNo (*seqNo);
250
250
if (createTimestamp.Defined ())
251
251
message.CreateTimestamp (*createTimestamp);
252
- return WriteInternal (std::move (token), std::move (message));
252
+ return WriteInternal (std::move (token), TWrappedWriteMessage ( std::move (message) ));
253
253
}
254
254
255
255
void TFederatedWriteSession::WriteEncoded (NTopic::TContinuationToken&& token, NTopic::TWriteMessage&& message) {
256
- return WriteInternal (std::move (token), std::move (message));
256
+ return WriteInternal (std::move (token), TWrappedWriteMessage ( std::move (message) ));
257
257
}
258
258
259
- void TFederatedWriteSession::WriteInternal (NTopic::TContinuationToken&&, NTopic::TWriteMessage && message ) {
259
+ void TFederatedWriteSession::WriteInternal (NTopic::TContinuationToken&&, TWrappedWriteMessage && wrapped ) {
260
260
ClientHasToken = false ;
261
- if (!message .CreateTimestamp_ .Defined ()) {
262
- message .CreateTimestamp_ = TInstant::Now ();
261
+ if (!wrapped. Message .CreateTimestamp_ .Defined ()) {
262
+ wrapped. Message .CreateTimestamp_ = TInstant::Now ();
263
263
}
264
264
265
265
{
266
266
TDeferredWrite deferred (Subsession);
267
267
with_lock (Lock) {
268
- BufferFreeSpace -= message .Data .size ();
269
- OriginalMessagesToPassDown.emplace_back (std::move (message ));
268
+ BufferFreeSpace -= wrapped. Message .Data .size ();
269
+ OriginalMessagesToPassDown.emplace_back (std::move (wrapped ));
270
270
271
271
PrepareDeferredWrite (deferred);
272
272
}
@@ -285,10 +285,10 @@ bool TFederatedWriteSession::PrepareDeferredWrite(TDeferredWrite& deferred) {
285
285
if (OriginalMessagesToPassDown.empty ()) {
286
286
return false ;
287
287
}
288
- OriginalMessagesToGetAck.push_back (OriginalMessagesToPassDown.front ());
289
- deferred.Token .ConstructInPlace (std::move (*PendingToken));
290
- deferred.Message .ConstructInPlace (std::move (OriginalMessagesToPassDown.front ()));
288
+ OriginalMessagesToGetAck.push_back (std::move (OriginalMessagesToPassDown.front ()));
291
289
OriginalMessagesToPassDown.pop_front ();
290
+ deferred.Token .ConstructInPlace (std::move (*PendingToken));
291
+ deferred.Message .ConstructInPlace (std::move (OriginalMessagesToGetAck.back ().Message ));
292
292
PendingToken.Clear ();
293
293
return true ;
294
294
}
0 commit comments