diff options
author | coteeq <coteeq@yandex-team.com> | 2025-03-03 22:34:35 +0300 |
---|---|---|
committer | coteeq <coteeq@yandex-team.com> | 2025-03-03 23:13:12 +0300 |
commit | 1cda8004d0370389c3f09e832a85d82b156844bf (patch) | |
tree | d5d9dff1535c94b65acd98845797a9ff93c18988 | |
parent | e2d07d817eaf9bbb50bc5e40c736c531aa920a37 (diff) | |
download | ydb-1cda8004d0370389c3f09e832a85d82b156844bf.tar.gz |
Fix little shizophrenia about registrars vs configurators
commit_hash:f2efbfa663d932cee297368a29c771878efdeec1
-rw-r--r-- | yt/yt/core/ytree/unittests/yson_struct_update_ut.cpp | 8 | ||||
-rw-r--r-- | yt/yt/core/ytree/yson_struct_update-inl.h | 66 | ||||
-rw-r--r-- | yt/yt/core/ytree/yson_struct_update.h | 36 |
3 files changed, 55 insertions, 55 deletions
diff --git a/yt/yt/core/ytree/unittests/yson_struct_update_ut.cpp b/yt/yt/core/ytree/unittests/yson_struct_update_ut.cpp index fd82265dd7..5d25807ada 100644 --- a/yt/yt/core/ytree/unittests/yson_struct_update_ut.cpp +++ b/yt/yt/core/ytree/unittests/yson_struct_update_ut.cpp @@ -132,8 +132,8 @@ TEST(TUpdateYsonStructTest, Inherited) auto configurator = TConfigurator<TSpecBase>(); { - TConfigurator<TSpecWithPool> parentRegistrar = configurator; - parentRegistrar.Field("pool", &TSpecBase::Pool) + TConfigurator<TSpecWithPool> parentConfigurator = configurator; + parentConfigurator.Field("pool", &TSpecBase::Pool) .Updater(BIND([&] (const std::string& newPool) { updatedPool = newPool; })); @@ -154,8 +154,8 @@ TEST(TUpdateYsonStructTest, Nested) auto configurator = TConfigurator<TSpecBase>(); { - TConfigurator<TSpecWithPool> parentRegistrar = configurator; - parentRegistrar.Field("pool", &TSpecBase::Pool) + TConfigurator<TSpecWithPool> parentConfigurator = configurator; + parentConfigurator.Field("pool", &TSpecBase::Pool) .Updater(BIND([&] (const std::string& newPool) { updatedPool = newPool; })); diff --git a/yt/yt/core/ytree/yson_struct_update-inl.h b/yt/yt/core/ytree/yson_struct_update-inl.h index c6ae5f1ead..46ad7fe717 100644 --- a/yt/yt/core/ytree/yson_struct_update-inl.h +++ b/yt/yt/core/ytree/yson_struct_update-inl.h @@ -15,24 +15,24 @@ const IYsonStructMeta* GetYsonStructMeta() { return New<TStruct>()->GetMeta(); } -struct TRegisteredFieldDirectory +struct TConfiguredFieldDirectory : public TRefCounted { template <class TStruct> - static TRegisteredFieldDirectoryPtr Create() + static TConfiguredFieldDirectoryPtr Create() { static auto* meta = GetYsonStructMeta<TStruct>(); - auto directory = New<TRegisteredFieldDirectory>(); + auto directory = New<TConfiguredFieldDirectory>(); directory->Meta = meta; return directory; } - THashMap<IYsonStructParameterPtr, IFieldRegistrarPtr> ParameterToFieldRegistrar; + THashMap<IYsonStructParameterPtr, IFieldConfiguratorPtr> ParameterToFieldConfigurator; const IYsonStructMeta* Meta; }; -DEFINE_REFCOUNTED_TYPE(TRegisteredFieldDirectory); +DEFINE_REFCOUNTED_TYPE(TConfiguredFieldDirectory); //////////////////////////////////////////////////////////////////////////////// @@ -49,7 +49,7 @@ struct TUnwrapYsonStructIntrusivePtr<TIntrusivePtr<T>> //////////////////////////////////////////////////////////////////////////////// template <class TValue> -TFieldRegistrar<TValue>& TFieldRegistrar<TValue>::Validator(TCallback<void(const TValue&, const TValue&)> validator) +TFieldConfigurator<TValue>& TFieldConfigurator<TValue>::Validator(TCallback<void(const TValue&, const TValue&)> validator) { VerifyEmptyValidator(); Validator_ = validator; @@ -57,7 +57,7 @@ TFieldRegistrar<TValue>& TFieldRegistrar<TValue>::Validator(TCallback<void(const } template <class TValue> -TFieldRegistrar<TValue>& TFieldRegistrar<TValue>::Validator(TCallback<void(const TValue&)> validator) +TFieldConfigurator<TValue>& TFieldConfigurator<TValue>::Validator(TCallback<void(const TValue&)> validator) { VerifyEmptyValidator(); Validator_ = BIND_NO_PROPAGATE([validator = std::move(validator)] (const TValue& /*oldValue*/, const TValue& newValue) { @@ -67,7 +67,7 @@ TFieldRegistrar<TValue>& TFieldRegistrar<TValue>::Validator(TCallback<void(const } template <class TValue> -TFieldRegistrar<TValue>& TFieldRegistrar<TValue>::Updater(TCallback<void(const TValue&, const TValue&)> updater) +TFieldConfigurator<TValue>& TFieldConfigurator<TValue>::Updater(TCallback<void(const TValue&, const TValue&)> updater) { VerifyEmptyUpdater(); Updater_ = updater; @@ -75,7 +75,7 @@ TFieldRegistrar<TValue>& TFieldRegistrar<TValue>::Updater(TCallback<void(const T } template <class TValue> -TFieldRegistrar<TValue>& TFieldRegistrar<TValue>::Updater(TCallback<void(const TValue&)> updater) +TFieldConfigurator<TValue>& TFieldConfigurator<TValue>::Updater(TCallback<void(const TValue&)> updater) { VerifyEmptyUpdater(); Updater_ = BIND_NO_PROPAGATE([updater = std::move(updater)] (const TValue& /*oldValue*/, const TValue& newValue) { @@ -100,7 +100,7 @@ TFieldRegistrar<TValue>& TFieldRegistrar<TValue>::Updater(TCallback<void(const T // written as TIntrusivePtr<TMyStruct>, so I need to unwrap that to TMyStruct. template <class TValue> template <CYsonStructDerived TUnwrappedValue> -TFieldRegistrar<TValue>& TFieldRegistrar<TValue>::NestedUpdater( +TFieldConfigurator<TValue>& TFieldConfigurator<TValue>::NestedUpdater( TCallback<TSealedConfigurator<TUnwrappedValue>()> configureCallback) { static_assert( @@ -117,7 +117,7 @@ TFieldRegistrar<TValue>& TFieldRegistrar<TValue>::NestedUpdater( } template <class TValue> -void TFieldRegistrar<TValue>::DoValidate( +void TFieldConfigurator<TValue>::DoValidate( IYsonStructParameterPtr parameter, TYsonStructBase* oldStruct, TYsonStructBase* newStruct) const @@ -134,7 +134,7 @@ void TFieldRegistrar<TValue>::DoValidate( } template <class TValue> -void TFieldRegistrar<TValue>::DoUpdate( +void TFieldConfigurator<TValue>::DoUpdate( IYsonStructParameterPtr parameter, TYsonStructBase* oldStruct, TYsonStructBase* newStruct) const @@ -151,13 +151,13 @@ void TFieldRegistrar<TValue>::DoUpdate( } template <class TValue> -void TFieldRegistrar<TValue>::VerifyEmptyValidator() const +void TFieldConfigurator<TValue>::VerifyEmptyValidator() const { YT_VERIFY(!Validator_); } template <class TValue> -void TFieldRegistrar<TValue>::VerifyEmptyUpdater() const +void TFieldConfigurator<TValue>::VerifyEmptyUpdater() const { YT_VERIFY(!Updater_); } @@ -169,32 +169,32 @@ void TFieldRegistrar<TValue>::VerifyEmptyUpdater() const //////////////////////////////////////////////////////////////////////////////// template <CYsonStructDerived TStruct> -TConfigurator<TStruct>::TConfigurator(NDetail::TRegisteredFieldDirectoryPtr registeredFields) - : RegisteredFields_(registeredFields) +TConfigurator<TStruct>::TConfigurator(NDetail::TConfiguredFieldDirectoryPtr configuredFields) + : ConfiguredFields_(configuredFields) { - // NB: Initialize TRegisteredFieldDirectory with + // NB: Initialize TConfiguredFieldDirectory with // the youngest child in the hierarchy. - if (!registeredFields) { - RegisteredFields_ = NDetail::TRegisteredFieldDirectory::Create<TStruct>(); + if (!configuredFields) { + ConfiguredFields_ = NDetail::TConfiguredFieldDirectory::Create<TStruct>(); } } template <CYsonStructDerived TStruct> template <class TValue> -NDetail::TFieldRegistrar<TValue>& TConfigurator<TStruct>::Field(const std::string& name, TYsonStructField<TStruct, TValue> field) +NDetail::TFieldConfigurator<TValue>& TConfigurator<TStruct>::Field(const std::string& name, TYsonStructField<TStruct, TValue> field) { IYsonStructParameterPtr parameter; try { - parameter = RegisteredFields_->Meta->GetParameter(name); + parameter = ConfiguredFields_->Meta->GetParameter(name); } catch (const std::exception& ex) { YT_ABORT(); } YT_VERIFY(parameter->HoldsField(CreateTypeErasedYsonStructField(field))); - auto fieldRegistrar = New<NDetail::TFieldRegistrar<TValue>>(); - RegisteredFields_->ParameterToFieldRegistrar.emplace(parameter, fieldRegistrar); - return *fieldRegistrar; + auto fieldConfigurator = New<NDetail::TFieldConfigurator<TValue>>(); + ConfiguredFields_->ParameterToFieldConfigurator.emplace(parameter, fieldConfigurator); + return *fieldConfigurator; } template <CYsonStructDerived TStruct> @@ -202,7 +202,7 @@ template <class TAncestor> TConfigurator<TStruct>::operator TConfigurator<TAncestor>() const { static_assert(std::derived_from<TStruct, TAncestor> && std::derived_from<TAncestor, TYsonStructBase>); - return TConfigurator<TAncestor>(RegisteredFields_); + return TConfigurator<TAncestor>(ConfiguredFields_); } template <CYsonStructDerived TStruct> @@ -215,7 +215,7 @@ TSealedConfigurator<TStruct> TConfigurator<TStruct>::Seal() && template <CYsonStructDerived TStruct> TSealedConfigurator<TStruct>::TSealedConfigurator(TConfigurator<TStruct> configurator) - : RegisteredFields_(std::move(configurator.RegisteredFields_)) + : ConfiguredFields_(std::move(configurator.ConfiguredFields_)) { } template <CYsonStructDerived TStruct> @@ -223,7 +223,7 @@ void TSealedConfigurator<TStruct>::Validate( TIntrusivePtr<TStruct> oldStruct, TIntrusivePtr<TStruct> newStruct) const { - Do(oldStruct, newStruct, &NDetail::IFieldRegistrar::DoValidate); + Do(oldStruct, newStruct, &NDetail::IFieldConfigurator::DoValidate); } template <CYsonStructDerived TStruct> @@ -231,26 +231,26 @@ void TSealedConfigurator<TStruct>::Update( TIntrusivePtr<TStruct> oldStruct, TIntrusivePtr<TStruct> newStruct) const { - Do(oldStruct, newStruct, &NDetail::IFieldRegistrar::DoUpdate); + Do(oldStruct, newStruct, &NDetail::IFieldConfigurator::DoUpdate); } template <CYsonStructDerived TStruct> void TSealedConfigurator<TStruct>::Do( TIntrusivePtr<TStruct> oldStruct, TIntrusivePtr<TStruct> newStruct, - TFieldRegistrarMethod fieldMethod) const + TFieldConfiguratorMethod fieldMethod) const { const auto* meta = oldStruct->GetMeta(); YT_VERIFY(meta == newStruct->GetMeta()); - const auto& parameterToFieldRegistrar = RegisteredFields_->ParameterToFieldRegistrar; - YT_VERIFY(RegisteredFields_->Meta == meta); + const auto& parameterToFieldConfigurator = ConfiguredFields_->ParameterToFieldConfigurator; + YT_VERIFY(ConfiguredFields_->Meta == meta); for (const auto& [name, parameter] : meta->GetParameterMap()) { if (parameter->CompareParameter(oldStruct.Get(), newStruct.Get())) { continue; } - auto fieldDescIter = parameterToFieldRegistrar.find(parameter); - if (fieldDescIter == parameterToFieldRegistrar.end()) { + auto fieldDescIter = parameterToFieldConfigurator.find(parameter); + if (fieldDescIter == parameterToFieldConfigurator.end()) { THROW_ERROR_EXCEPTION("Field %Qv is not marked as updatable, but was changed", name); } else { (*(fieldDescIter->second).*fieldMethod)(parameter, oldStruct.Get(), newStruct.Get()); diff --git a/yt/yt/core/ytree/yson_struct_update.h b/yt/yt/core/ytree/yson_struct_update.h index 7a517d6f57..1b762b9cc4 100644 --- a/yt/yt/core/ytree/yson_struct_update.h +++ b/yt/yt/core/ytree/yson_struct_update.h @@ -19,11 +19,11 @@ namespace NDetail { //////////////////////////////////////////////////////////////////////////////// -DECLARE_REFCOUNTED_STRUCT(TRegisteredFieldDirectory); +DECLARE_REFCOUNTED_STRUCT(TConfiguredFieldDirectory); //////////////////////////////////////////////////////////////////////////////// -struct IFieldRegistrar +struct IFieldConfigurator : public TRefCounted { virtual void DoValidate( @@ -37,31 +37,31 @@ struct IFieldRegistrar TYsonStructBase* newStruct) const = 0; }; -DECLARE_REFCOUNTED_STRUCT(IFieldRegistrar); -DEFINE_REFCOUNTED_TYPE(IFieldRegistrar); +DECLARE_REFCOUNTED_STRUCT(IFieldConfigurator); +DEFINE_REFCOUNTED_TYPE(IFieldConfigurator); //////////////////////////////////////////////////////////////////////////////// template <class TValue> -class TFieldRegistrar - : public IFieldRegistrar +class TFieldConfigurator + : public IFieldConfigurator { public: // Registers validator that accepts old and new values as arguments. - TFieldRegistrar& Validator(TCallback<void(const TValue&, const TValue&)> validator); + TFieldConfigurator& Validator(TCallback<void(const TValue&, const TValue&)> validator); // Registers validator that accepts only new value as an argument. - TFieldRegistrar& Validator(TCallback<void(const TValue&)> validator); + TFieldConfigurator& Validator(TCallback<void(const TValue&)> validator); // Registers updater that accepts old and new values as arguments. - TFieldRegistrar& Updater(TCallback<void(const TValue&, const TValue&)> updater); + TFieldConfigurator& Updater(TCallback<void(const TValue&, const TValue&)> updater); // Registers updater that accepts only new value as an argument. - TFieldRegistrar& Updater(TCallback<void(const TValue&)> updater); + TFieldConfigurator& Updater(TCallback<void(const TValue&)> updater); // Registers nested YsonStruct to be updated recursively. template <CYsonStructDerived TUnwrappedValue> - TFieldRegistrar& NestedUpdater( + TFieldConfigurator& NestedUpdater( TCallback<TSealedConfigurator<TUnwrappedValue>()> configureCallback); void DoUpdate( @@ -106,19 +106,19 @@ template <CYsonStructDerived TStruct> class TConfigurator { public: - explicit TConfigurator(NDetail::TRegisteredFieldDirectoryPtr state = {}); + explicit TConfigurator(NDetail::TConfiguredFieldDirectoryPtr state = {}); template <class TValue> - NDetail::TFieldRegistrar<TValue>& Field(const std::string& name, TYsonStructField<TStruct, TValue> field); + NDetail::TFieldConfigurator<TValue>& Field(const std::string& name, TYsonStructField<TStruct, TValue> field); - // Converts to a registrar of a base class + // Converts to a configurator of a base class template <class TAncestor> operator TConfigurator<TAncestor>() const; TSealedConfigurator<TStruct> Seal() &&; private: - NDetail::TRegisteredFieldDirectoryPtr RegisteredFields_; + NDetail::TConfiguredFieldDirectoryPtr ConfiguredFields_; template <CYsonStructDerived TStructForSealed> friend class TSealedConfigurator; @@ -141,7 +141,7 @@ public: TIntrusivePtr<TStruct> newStruct) const; private: - using TFieldRegistrarMethod = void(NDetail::IFieldRegistrar::*)( + using TFieldConfiguratorMethod = void(NDetail::IFieldConfigurator::*)( IYsonStructParameterPtr parameter, TYsonStructBase* oldStruct, TYsonStructBase* newStruct) const; @@ -149,9 +149,9 @@ private: void Do( TIntrusivePtr<TStruct> oldStruct, TIntrusivePtr<TStruct> newStruct, - TFieldRegistrarMethod fieldMethod) const; + TFieldConfiguratorMethod fieldMethod) const; - NDetail::TRegisteredFieldDirectoryPtr RegisteredFields_; + NDetail::TConfiguredFieldDirectoryPtr ConfiguredFields_; }; //////////////////////////////////////////////////////////////////////////////// |