Skip to content

Commit 5b12fa6

Browse files
authored
Refactor event pb (#6235)
1 parent b0efa0f commit 5b12fa6

File tree

2 files changed

+13
-22
lines changed

2 files changed

+13
-22
lines changed

ydb/library/actors/core/event_pb.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -347,22 +347,24 @@ namespace NActors {
347347
}
348348
}
349349

350-
ui32 CalculateSerializedSizeImpl(const TVector<TRope> &payload, size_t totalPayloadSize, ssize_t recordSize) {
351-
// TODO: calc totalPayloadSize via payload?
350+
ui32 CalculateSerializedSizeImpl(const TVector<TRope> &payload, ssize_t recordSize) {
352351
ssize_t result = recordSize;
353352
if (result >= 0 && payload) {
354353
++result; // marker
355354
char buf[MaxNumberBytes];
356355
result += SerializeNumber(payload.size(), buf);
356+
size_t totalPayloadSize = 0;
357357
for (const TRope& rope : payload) {
358-
result += SerializeNumber(rope.GetSize(), buf);
358+
size_t ropeSize = rope.GetSize();
359+
totalPayloadSize += ropeSize;
360+
result += SerializeNumber(ropeSize, buf);
359361
}
360362
result += totalPayloadSize;
361363
}
362364
return result;
363365
}
364366

365-
TEventSerializationInfo CreateSerializationInfoImpl(size_t preserializedSize, bool allowExternalDataChannel, const TVector<TRope> &payload, size_t totalPayloadSize, ssize_t recordSize) {
367+
TEventSerializationInfo CreateSerializationInfoImpl(size_t preserializedSize, bool allowExternalDataChannel, const TVector<TRope> &payload, ssize_t recordSize) {
366368
TEventSerializationInfo info;
367369
info.IsExtendedFormat = static_cast<bool>(payload);
368370

@@ -382,14 +384,12 @@ namespace NActors {
382384
const size_t byteSize = Max<ssize_t>(0, recordSize) + preserializedSize;
383385
info.Sections.push_back(TEventSectionInfo{0, byteSize, 0, 0, true}); // protobuf itself
384386

385-
#ifdef NDEBUG
386-
Y_UNUSED(totalPayloadSize);
387-
#else
387+
#ifndef NDEBUG
388388
size_t total = 0;
389389
for (const auto& section : info.Sections) {
390390
total += section.Size;
391391
}
392-
size_t serialized = CalculateSerializedSizeImpl(payload, totalPayloadSize, recordSize);
392+
size_t serialized = CalculateSerializedSizeImpl(payload, recordSize);
393393
Y_ABORT_UNLESS(total == serialized, "total# %zu serialized# %zu byteSize# %zd payload.size# %zu", total,
394394
serialized, byteSize, payload.size());
395395
#endif

ydb/library/actors/core/event_pb.h

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -148,10 +148,9 @@ namespace NActors {
148148
static constexpr size_t MaxNumberBytes = (sizeof(size_t) * CHAR_BIT + 6) / 7;
149149

150150
void ParseExtendedFormatPayload(TRope::TConstIterator &iter, size_t &size, TVector<TRope> &payload, size_t &totalPayloadSize);
151-
size_t SerializeNumber(size_t num, char *buffer);
152151
bool SerializeToArcadiaStreamImpl(TChunkSerializer* chunker, const TVector<TRope> &payload);
153-
ui32 CalculateSerializedSizeImpl(const TVector<TRope> &payload, size_t totalPayloadSize, ssize_t recordSize);
154-
TEventSerializationInfo CreateSerializationInfoImpl(size_t preserializedSize, bool allowExternalDataChannel, const TVector<TRope> &payload, size_t totalPayloadSize, ssize_t recordSize);
152+
ui32 CalculateSerializedSizeImpl(const TVector<TRope> &payload, ssize_t recordSize);
153+
TEventSerializationInfo CreateSerializationInfoImpl(size_t preserializedSize, bool allowExternalDataChannel, const TVector<TRope> &payload, ssize_t recordSize);
155154

156155
template <typename TEv, typename TRecord /*protobuf record*/, ui32 TEventType, typename TRecHolder>
157156
class TEventPBBase: public TEventBase<TEv, TEventType> , public TRecHolder {
@@ -201,7 +200,7 @@ namespace NActors {
201200
}
202201

203202
ui32 CalculateSerializedSize() const override {
204-
return CalculateSerializedSizeImpl(Payload, GetTotalPayloadSize(), Record.ByteSize());
203+
return CalculateSerializedSizeImpl(Payload, Record.ByteSize());
205204
}
206205

207206
static IEventBase* Load(TEventSerializedData *input) {
@@ -242,18 +241,14 @@ namespace NActors {
242241
}
243242

244243
TEventSerializationInfo CreateSerializationInfo() const override {
245-
return CreateSerializationInfoImpl(0, static_cast<const TEv&>(*this).AllowExternalDataChannel(), GetPayload(), GetTotalPayloadSize(), Record.ByteSize());
244+
return CreateSerializationInfoImpl(0, static_cast<const TEv&>(*this).AllowExternalDataChannel(), GetPayload(), Record.ByteSize());
246245
}
247246

248247
bool AllowExternalDataChannel() const {
249248
return TotalPayloadSize >= 4096;
250249
}
251250

252251
public:
253-
void ReservePayload(size_t size) {
254-
Payload.reserve(size);
255-
}
256-
257252
ui32 AddPayload(TRope&& rope) {
258253
const ui32 id = Payload.size();
259254
TotalPayloadSize += rope.size();
@@ -278,10 +273,6 @@ namespace NActors {
278273
void StripPayload() {
279274
Payload.clear();
280275
TotalPayloadSize = 0;
281-
}
282-
283-
size_t GetTotalPayloadSize() const {
284-
return TotalPayloadSize;
285276
}
286277

287278
protected:
@@ -444,7 +435,7 @@ namespace NActors {
444435
}
445436

446437
TEventSerializationInfo CreateSerializationInfo() const override {
447-
return CreateSerializationInfoImpl(PreSerializedData.size(), static_cast<const TEv&>(*this).AllowExternalDataChannel(), TBase::GetPayload(), TBase::GetTotalPayloadSize(), Record.ByteSize());
438+
return CreateSerializationInfoImpl(PreSerializedData.size(), static_cast<const TEv&>(*this).AllowExternalDataChannel(), TBase::GetPayload(), Record.ByteSize());
448439
}
449440
};
450441

0 commit comments

Comments
 (0)