diff options
author | bidzilya <bidzilya@yandex-team.ru> | 2022-02-10 16:50:46 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:50:46 +0300 |
commit | a175286682787b2d1213734c5be7458aaf594c1c (patch) | |
tree | 5d5cb817648f650d76cf1076100726fd9b8448e8 | |
parent | df9835cb1b90255cbbd11b71ab3609ec1ff75107 (diff) | |
download | ydb-a175286682787b2d1213734c5be7458aaf594c1c.tar.gz |
Restoring authorship annotation for <bidzilya@yandex-team.ru>. Commit 2 of 2.
-rw-r--r-- | build/rules/flake8/migrations.yaml | 2 | ||||
-rw-r--r-- | library/cpp/packers/proto_packer.cpp | 2 | ||||
-rw-r--r-- | library/cpp/packers/proto_packer.h | 98 | ||||
-rw-r--r-- | library/cpp/packers/region_packer.cpp | 2 | ||||
-rw-r--r-- | library/cpp/packers/ut/proto_packer_ut.cpp | 190 | ||||
-rw-r--r-- | library/cpp/packers/ut/test.proto | 22 | ||||
-rw-r--r-- | library/cpp/packers/ut/ya.make | 4 | ||||
-rw-r--r-- | library/cpp/packers/ya.make | 4 | ||||
-rw-r--r-- | library/cpp/yt/string/format-inl.h | 6 | ||||
-rw-r--r-- | util/generic/singleton.h | 46 | ||||
-rw-r--r-- | util/generic/singleton_ut.cpp | 58 |
11 files changed, 217 insertions, 217 deletions
diff --git a/build/rules/flake8/migrations.yaml b/build/rules/flake8/migrations.yaml index 900c413118..6e54bf2e62 100644 --- a/build/rules/flake8/migrations.yaml +++ b/build/rules/flake8/migrations.yaml @@ -1515,7 +1515,7 @@ migrations: - ydo/payments/balance_notifications_processor/lib - ydo/server/apphost_source/lib/endpoints - ydo/tools/direct/make_ya_clients_export - - yp/eviction_alerter/bin + - yp/eviction_alerter/bin - yp/scheduler_simulator/analysis/library - yql/library/test_framework - yweb/antimalware/mitb/mitb_monitor/lib diff --git a/library/cpp/packers/proto_packer.cpp b/library/cpp/packers/proto_packer.cpp index 457202d1e5..ddca0d5b3b 100644 --- a/library/cpp/packers/proto_packer.cpp +++ b/library/cpp/packers/proto_packer.cpp @@ -1 +1 @@ -#include "proto_packer.h" +#include "proto_packer.h" diff --git a/library/cpp/packers/proto_packer.h b/library/cpp/packers/proto_packer.h index bf40c6c2cd..5a3d008e29 100644 --- a/library/cpp/packers/proto_packer.h +++ b/library/cpp/packers/proto_packer.h @@ -1,50 +1,50 @@ -#pragma once - -#include "packers.h" - -#include <util/generic/yexception.h> - -namespace NPackers { - template <typename TProtoMessage> - class TProtoMessagePacker { - public: - void UnpackLeaf(const char* bufferPtr, TProtoMessage& protoMessage) const { - const size_t protoMessageByteSize = GetProtoMessageByteSize(bufferPtr); - const size_t skipBytesCount = ProtoMessageByteSizePacker.SkipLeaf(bufferPtr); - - if (!protoMessage.ParseFromArray(static_cast<const void*>(bufferPtr + skipBytesCount), protoMessageByteSize)) { - ythrow yexception() << "Cannot unpack leaf with proto message"; - } - } - - void PackLeaf(char* bufferPtr, const TProtoMessage& protoMessage, const size_t totalByteSize) const { - const size_t protoMessageByteSize = protoMessage.ByteSize(); - const size_t skipBytesCount = totalByteSize - protoMessageByteSize; - - ProtoMessageByteSizePacker.PackLeaf(bufferPtr, protoMessageByteSize, skipBytesCount); - - if (!protoMessage.SerializeToArray(static_cast<void*>(bufferPtr + skipBytesCount), protoMessageByteSize)) { - ythrow yexception() << "Cannot pack leaf with proto message"; - } - } - - size_t MeasureLeaf(const TProtoMessage& protoMessage) const { - const size_t protoMessageByteSize = protoMessage.ByteSize(); - return ProtoMessageByteSizePacker.MeasureLeaf(protoMessageByteSize) + protoMessageByteSize; - } - - size_t SkipLeaf(const char* bufferPtr) const { - const size_t protoMessageByteSize = GetProtoMessageByteSize(bufferPtr); - return ProtoMessageByteSizePacker.SkipLeaf(bufferPtr) + protoMessageByteSize; - } - - private: - TIntegralPacker<size_t> ProtoMessageByteSizePacker; - - size_t GetProtoMessageByteSize(const char* bufferPtr) const { - size_t result; - ProtoMessageByteSizePacker.UnpackLeaf(bufferPtr, result); - return result; - } - }; +#pragma once + +#include "packers.h" + +#include <util/generic/yexception.h> + +namespace NPackers { + template <typename TProtoMessage> + class TProtoMessagePacker { + public: + void UnpackLeaf(const char* bufferPtr, TProtoMessage& protoMessage) const { + const size_t protoMessageByteSize = GetProtoMessageByteSize(bufferPtr); + const size_t skipBytesCount = ProtoMessageByteSizePacker.SkipLeaf(bufferPtr); + + if (!protoMessage.ParseFromArray(static_cast<const void*>(bufferPtr + skipBytesCount), protoMessageByteSize)) { + ythrow yexception() << "Cannot unpack leaf with proto message"; + } + } + + void PackLeaf(char* bufferPtr, const TProtoMessage& protoMessage, const size_t totalByteSize) const { + const size_t protoMessageByteSize = protoMessage.ByteSize(); + const size_t skipBytesCount = totalByteSize - protoMessageByteSize; + + ProtoMessageByteSizePacker.PackLeaf(bufferPtr, protoMessageByteSize, skipBytesCount); + + if (!protoMessage.SerializeToArray(static_cast<void*>(bufferPtr + skipBytesCount), protoMessageByteSize)) { + ythrow yexception() << "Cannot pack leaf with proto message"; + } + } + + size_t MeasureLeaf(const TProtoMessage& protoMessage) const { + const size_t protoMessageByteSize = protoMessage.ByteSize(); + return ProtoMessageByteSizePacker.MeasureLeaf(protoMessageByteSize) + protoMessageByteSize; + } + + size_t SkipLeaf(const char* bufferPtr) const { + const size_t protoMessageByteSize = GetProtoMessageByteSize(bufferPtr); + return ProtoMessageByteSizePacker.SkipLeaf(bufferPtr) + protoMessageByteSize; + } + + private: + TIntegralPacker<size_t> ProtoMessageByteSizePacker; + + size_t GetProtoMessageByteSize(const char* bufferPtr) const { + size_t result; + ProtoMessageByteSizePacker.UnpackLeaf(bufferPtr, result); + return result; + } + }; } diff --git a/library/cpp/packers/region_packer.cpp b/library/cpp/packers/region_packer.cpp index f40f8dd7da..3d8b20c371 100644 --- a/library/cpp/packers/region_packer.cpp +++ b/library/cpp/packers/region_packer.cpp @@ -1 +1 @@ -#include "region_packer.h" +#include "region_packer.h" diff --git a/library/cpp/packers/ut/proto_packer_ut.cpp b/library/cpp/packers/ut/proto_packer_ut.cpp index 325eb3d542..e4151ba68c 100644 --- a/library/cpp/packers/ut/proto_packer_ut.cpp +++ b/library/cpp/packers/ut/proto_packer_ut.cpp @@ -1,104 +1,104 @@ -#include "proto_packer.h" - +#include "proto_packer.h" + #include <library/cpp/packers/ut/test.pb.h> #include <library/cpp/testing/unittest/registar.h> - -#include <util/generic/string.h> - -using namespace NPackers; -using namespace NProtoPackerTest; - -void FillRequiredFields(TTestMessage& msg) { - msg.SetRequiredString("required_string"); - msg.SetRequiredInt32(42); -} - -void FillOptionalFields(TTestMessage& msg) { - msg.SetOptionalString("optional_string"); - msg.SetOptionalInt32(43); -} - -void FillRepeatedFields(TTestMessage& msg) { - msg.ClearRepeatedStrings(); - for (ui32 idx = 0; idx < 5; ++idx) { - msg.AddRepeatedStrings("repeated_string" + ToString(idx)); - } -} - + +#include <util/generic/string.h> + +using namespace NPackers; +using namespace NProtoPackerTest; + +void FillRequiredFields(TTestMessage& msg) { + msg.SetRequiredString("required_string"); + msg.SetRequiredInt32(42); +} + +void FillOptionalFields(TTestMessage& msg) { + msg.SetOptionalString("optional_string"); + msg.SetOptionalInt32(43); +} + +void FillRepeatedFields(TTestMessage& msg) { + msg.ClearRepeatedStrings(); + for (ui32 idx = 0; idx < 5; ++idx) { + msg.AddRepeatedStrings("repeated_string" + ToString(idx)); + } +} + // do not want to use google/protobuf/util/message_differencer because of warnings bool operator==(const TTestMessage& lhs, const TTestMessage& rhs) { - if (lhs.GetRequiredString() != rhs.GetRequiredString() || - lhs.GetRequiredInt32() != rhs.GetRequiredInt32() || - lhs.HasOptionalString() != rhs.HasOptionalString() || - (lhs.HasOptionalString() && lhs.GetOptionalString() != rhs.GetOptionalString()) || - lhs.HasOptionalInt32() != rhs.HasOptionalInt32() || - (lhs.HasOptionalInt32() && lhs.GetOptionalInt32() != rhs.GetOptionalInt32()) || - lhs.RepeatedStringsSize() != rhs.RepeatedStringsSize()) - { - return false; - } - for (ui32 idx = 0; idx < lhs.RepeatedStringsSize(); ++idx) { - if (lhs.GetRepeatedStrings(idx) != rhs.GetRepeatedStrings(idx)) { - return false; - } - } - return true; -} - + if (lhs.GetRequiredString() != rhs.GetRequiredString() || + lhs.GetRequiredInt32() != rhs.GetRequiredInt32() || + lhs.HasOptionalString() != rhs.HasOptionalString() || + (lhs.HasOptionalString() && lhs.GetOptionalString() != rhs.GetOptionalString()) || + lhs.HasOptionalInt32() != rhs.HasOptionalInt32() || + (lhs.HasOptionalInt32() && lhs.GetOptionalInt32() != rhs.GetOptionalInt32()) || + lhs.RepeatedStringsSize() != rhs.RepeatedStringsSize()) + { + return false; + } + for (ui32 idx = 0; idx < lhs.RepeatedStringsSize(); ++idx) { + if (lhs.GetRepeatedStrings(idx) != rhs.GetRepeatedStrings(idx)) { + return false; + } + } + return true; +} + Y_UNIT_TEST_SUITE(ProtoPackerTestSuite) { - TProtoMessagePacker<TTestMessage> Packer; - TString Buffer; - - void DoPackUnpackTest(const TTestMessage& msg) { - const ui32 msgByteSize = Packer.MeasureLeaf(msg); - Buffer.resize(msgByteSize); - - Packer.PackLeaf(Buffer.begin(), msg, msgByteSize); - - TTestMessage checkMsg; - Packer.UnpackLeaf(Buffer.begin(), checkMsg); - - UNIT_ASSERT_EQUAL(msg, checkMsg); - } - + TProtoMessagePacker<TTestMessage> Packer; + TString Buffer; + + void DoPackUnpackTest(const TTestMessage& msg) { + const ui32 msgByteSize = Packer.MeasureLeaf(msg); + Buffer.resize(msgByteSize); + + Packer.PackLeaf(Buffer.begin(), msg, msgByteSize); + + TTestMessage checkMsg; + Packer.UnpackLeaf(Buffer.begin(), checkMsg); + + UNIT_ASSERT_EQUAL(msg, checkMsg); + } + Y_UNIT_TEST(TestPackUnpackOnlyRequired) { - TTestMessage msg; - FillRequiredFields(msg); - DoPackUnpackTest(msg); - } - + TTestMessage msg; + FillRequiredFields(msg); + DoPackUnpackTest(msg); + } + Y_UNIT_TEST(TestPackUnpackRequiredAndOptional) { - TTestMessage msg; - FillRequiredFields(msg); - FillOptionalFields(msg); - DoPackUnpackTest(msg); - } - + TTestMessage msg; + FillRequiredFields(msg); + FillOptionalFields(msg); + DoPackUnpackTest(msg); + } + Y_UNIT_TEST(TestPackUnpackAll) { - TTestMessage msg; - FillRequiredFields(msg); - FillOptionalFields(msg); - FillRepeatedFields(msg); - DoPackUnpackTest(msg); - } - + TTestMessage msg; + FillRequiredFields(msg); + FillOptionalFields(msg); + FillRepeatedFields(msg); + DoPackUnpackTest(msg); + } + Y_UNIT_TEST(TestSkipLeaf) { - TTestMessage msgFirst; - FillRequiredFields(msgFirst); - TTestMessage msgSecond; - FillRequiredFields(msgSecond); - FillOptionalFields(msgSecond); - - const ui32 msgFirstByteSize = Packer.MeasureLeaf(msgFirst); - const ui32 msgSecondByteSize = Packer.MeasureLeaf(msgSecond); - - Buffer.resize(msgFirstByteSize + msgSecondByteSize); - Packer.PackLeaf(Buffer.begin(), msgFirst, msgFirstByteSize); - Packer.PackLeaf(Buffer.begin() + msgFirstByteSize, msgSecond, msgSecondByteSize); - - TTestMessage checkMsg; - Packer.UnpackLeaf(Buffer.begin() + Packer.SkipLeaf(Buffer.begin()), checkMsg); - - UNIT_ASSERT_EQUAL(msgSecond, checkMsg); - } -} + TTestMessage msgFirst; + FillRequiredFields(msgFirst); + TTestMessage msgSecond; + FillRequiredFields(msgSecond); + FillOptionalFields(msgSecond); + + const ui32 msgFirstByteSize = Packer.MeasureLeaf(msgFirst); + const ui32 msgSecondByteSize = Packer.MeasureLeaf(msgSecond); + + Buffer.resize(msgFirstByteSize + msgSecondByteSize); + Packer.PackLeaf(Buffer.begin(), msgFirst, msgFirstByteSize); + Packer.PackLeaf(Buffer.begin() + msgFirstByteSize, msgSecond, msgSecondByteSize); + + TTestMessage checkMsg; + Packer.UnpackLeaf(Buffer.begin() + Packer.SkipLeaf(Buffer.begin()), checkMsg); + + UNIT_ASSERT_EQUAL(msgSecond, checkMsg); + } +} diff --git a/library/cpp/packers/ut/test.proto b/library/cpp/packers/ut/test.proto index 439498b917..c872616bcc 100644 --- a/library/cpp/packers/ut/test.proto +++ b/library/cpp/packers/ut/test.proto @@ -1,11 +1,11 @@ -package NProtoPackerTest; - -message TTestMessage { - required string RequiredString = 1; - optional string OptionalString = 2; - - required int32 RequiredInt32 = 3; - optional int32 OptionalInt32 = 4; - - repeated string RepeatedStrings = 5; -} +package NProtoPackerTest; + +message TTestMessage { + required string RequiredString = 1; + optional string OptionalString = 2; + + required int32 RequiredInt32 = 3; + optional int32 OptionalInt32 = 4; + + repeated string RepeatedStrings = 5; +} diff --git a/library/cpp/packers/ut/ya.make b/library/cpp/packers/ut/ya.make index a3db381ed3..1c024ffd94 100644 --- a/library/cpp/packers/ut/ya.make +++ b/library/cpp/packers/ut/ya.make @@ -4,9 +4,9 @@ OWNER(velavokr) SRCS( packers_ut.cpp - proto_packer_ut.cpp + proto_packer_ut.cpp region_packer_ut.cpp - test.proto + test.proto ) END() diff --git a/library/cpp/packers/ya.make b/library/cpp/packers/ya.make index bb86d9b00b..e1ec4972ed 100644 --- a/library/cpp/packers/ya.make +++ b/library/cpp/packers/ya.make @@ -4,8 +4,8 @@ OWNER(velavokr) SRCS( packers.cpp - proto_packer.cpp - region_packer.cpp + proto_packer.cpp + region_packer.cpp ) END() diff --git a/library/cpp/yt/string/format-inl.h b/library/cpp/yt/string/format-inl.h index f47c1acf33..5484d4a216 100644 --- a/library/cpp/yt/string/format-inl.h +++ b/library/cpp/yt/string/format-inl.h @@ -378,10 +378,10 @@ struct TValueFormatter<THashMultiMap<K, V>> }; // TEnumIndexedVector -template <class E, class T> -struct TValueFormatter<TEnumIndexedVector<E, T>> +template <class E, class T> +struct TValueFormatter<TEnumIndexedVector<E, T>> { - static void Do(TStringBuilderBase* builder, const TEnumIndexedVector<E, T>& collection, TStringBuf format) + static void Do(TStringBuilderBase* builder, const TEnumIndexedVector<E, T>& collection, TStringBuf format) { builder->AppendChar('{'); bool firstItem = true; diff --git a/util/generic/singleton.h b/util/generic/singleton.h index feaa95e4b6..f5fa047f5c 100644 --- a/util/generic/singleton.h +++ b/util/generic/singleton.h @@ -4,7 +4,7 @@ #include <util/system/atomic.h> #include <new> -#include <utility> +#include <utility> template <class T> struct TSingletonTraits { @@ -23,8 +23,8 @@ namespace NPrivate { FillWithTrash(ptr, sizeof(T)); } - template <class T, size_t P, class... TArgs> - Y_NO_INLINE T* SingletonBase(T*& ptr, TArgs&&... args) { + template <class T, size_t P, class... TArgs> + Y_NO_INLINE T* SingletonBase(T*& ptr, TArgs&&... args) { alignas(T) static char buf[sizeof(T)]; static TAtomic lock; @@ -34,7 +34,7 @@ namespace NPrivate { try { if (!ret) { - ret = ::new (buf) T(std::forward<TArgs>(args)...); + ret = ::new (buf) T(std::forward<TArgs>(args)...); try { AtExit(Destroyer<T>, ret, P); @@ -57,15 +57,15 @@ namespace NPrivate { return ret; } - template <class T, size_t P, class... TArgs> - T* SingletonInt(TArgs&&... args) { + template <class T, size_t P, class... TArgs> + T* SingletonInt(TArgs&&... args) { static_assert(sizeof(T) < 32000, "use HugeSingleton instead"); static T* ptr; auto ret = AtomicGet(ptr); if (Y_UNLIKELY(!ret)) { - ret = SingletonBase<T, P>(ptr, std::forward<TArgs>(args)...); + ret = SingletonBase<T, P>(ptr, std::forward<TArgs>(args)...); } return ret; @@ -74,9 +74,9 @@ namespace NPrivate { template <class T> class TDefault { public: - template <class... TArgs> - inline TDefault(TArgs&&... args) - : T_(std::forward<TArgs>(args)...) + template <class... TArgs> + inline TDefault(TArgs&&... args) + : T_(std::forward<TArgs>(args)...) { } @@ -90,9 +90,9 @@ namespace NPrivate { template <class T> struct THeapStore { - template <class... TArgs> - inline THeapStore(TArgs&&... args) - : D(new T(std::forward<TArgs>(args)...)) + template <class... TArgs> + inline THeapStore(TArgs&&... args) + : D(new T(std::forward<TArgs>(args)...)) { } @@ -110,23 +110,23 @@ namespace NPrivate { template <class T, size_t P, class... TArgs> \ friend T* ::NPrivate::SingletonBase(T*&, TArgs&&...); -template <class T, class... TArgs> -T* Singleton(TArgs&&... args) { - return ::NPrivate::SingletonInt<T, TSingletonTraits<T>::Priority>(std::forward<TArgs>(args)...); +template <class T, class... TArgs> +T* Singleton(TArgs&&... args) { + return ::NPrivate::SingletonInt<T, TSingletonTraits<T>::Priority>(std::forward<TArgs>(args)...); } -template <class T, class... TArgs> -T* HugeSingleton(TArgs&&... args) { +template <class T, class... TArgs> +T* HugeSingleton(TArgs&&... args) { return Singleton<::NPrivate::THeapStore<T>>(std::forward<TArgs>(args)...)->D; } -template <class T, size_t P, class... TArgs> -T* SingletonWithPriority(TArgs&&... args) { - return ::NPrivate::SingletonInt<T, P>(std::forward<TArgs>(args)...); +template <class T, size_t P, class... TArgs> +T* SingletonWithPriority(TArgs&&... args) { + return ::NPrivate::SingletonInt<T, P>(std::forward<TArgs>(args)...); } -template <class T, size_t P, class... TArgs> -T* HugeSingletonWithPriority(TArgs&&... args) { +template <class T, size_t P, class... TArgs> +T* HugeSingletonWithPriority(TArgs&&... args) { return SingletonWithPriority<::NPrivate::THeapStore<T>, P>(std::forward<TArgs>(args)...)->D; } diff --git a/util/generic/singleton_ut.cpp b/util/generic/singleton_ut.cpp index 4db5d61a11..35ba90cd76 100644 --- a/util/generic/singleton_ut.cpp +++ b/util/generic/singleton_ut.cpp @@ -12,35 +12,35 @@ Y_UNIT_TEST_SUITE(TestSingleton) { UNIT_ASSERT_VALUES_EQUAL(*HugeSingleton<int>(), 0); UNIT_ASSERT_VALUES_EQUAL(HugeSingleton<THuge>()->V, 1234); } - - struct TWithParams { - explicit TWithParams(const ui32 data1 = 0, const TString& data2 = TString()) - : Data1(data1) - , Data2(data2) - { - } - - ui32 Data1; - TString Data2; - }; - + + struct TWithParams { + explicit TWithParams(const ui32 data1 = 0, const TString& data2 = TString()) + : Data1(data1) + , Data2(data2) + { + } + + ui32 Data1; + TString Data2; + }; + Y_UNIT_TEST(TestConstructorParamsOrder) { - UNIT_ASSERT_VALUES_EQUAL(Singleton<TWithParams>(10, "123123")->Data1, 10); - UNIT_ASSERT_VALUES_EQUAL(Singleton<TWithParams>(20, "123123")->Data1, 10); - UNIT_ASSERT_VALUES_EQUAL(Singleton<TWithParams>(10, "456456")->Data2, "123123"); - } - + UNIT_ASSERT_VALUES_EQUAL(Singleton<TWithParams>(10, "123123")->Data1, 10); + UNIT_ASSERT_VALUES_EQUAL(Singleton<TWithParams>(20, "123123")->Data1, 10); + UNIT_ASSERT_VALUES_EQUAL(Singleton<TWithParams>(10, "456456")->Data2, "123123"); + } + Y_UNIT_TEST(TestInstantiationWithConstructorParams) { - UNIT_ASSERT_VALUES_EQUAL(Singleton<TWithParams>(10)->Data1, 10); - UNIT_ASSERT_VALUES_EQUAL(HugeSingleton<TWithParams>(20, "123123")->Data2, "123123"); - { - const auto value = SingletonWithPriority<TWithParams, 12312>(30, "456")->Data1; - UNIT_ASSERT_VALUES_EQUAL(value, 30); - } - { - const auto value = HugeSingletonWithPriority<TWithParams, 12311>(40, "789")->Data2; - UNIT_ASSERT_VALUES_EQUAL(value, "789"); - } - UNIT_ASSERT_VALUES_EQUAL(Default<TWithParams>().Data1, 0); - } + UNIT_ASSERT_VALUES_EQUAL(Singleton<TWithParams>(10)->Data1, 10); + UNIT_ASSERT_VALUES_EQUAL(HugeSingleton<TWithParams>(20, "123123")->Data2, "123123"); + { + const auto value = SingletonWithPriority<TWithParams, 12312>(30, "456")->Data1; + UNIT_ASSERT_VALUES_EQUAL(value, 30); + } + { + const auto value = HugeSingletonWithPriority<TWithParams, 12311>(40, "789")->Data2; + UNIT_ASSERT_VALUES_EQUAL(value, "789"); + } + UNIT_ASSERT_VALUES_EQUAL(Default<TWithParams>().Data1, 0); + } } |