Skip to content

mw:com: Clean up Field impl#496

Open
KrishaDeshkool wants to merge 20 commits into
eclipse-score:mainfrom
KrishaDeshkool:clean_up_mw_com
Open

mw:com: Clean up Field impl#496
KrishaDeshkool wants to merge 20 commits into
eclipse-score:mainfrom
KrishaDeshkool:clean_up_mw_com

Conversation

@KrishaDeshkool

@KrishaDeshkool KrishaDeshkool commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

Depends on: #357
Depends on: #534

@KrishaDeshkool KrishaDeshkool marked this pull request as ready for review June 2, 2026 13:26
@KrishaDeshkool KrishaDeshkool changed the title Clean up mw com mw:com: remove redundant instance id Jun 2, 2026
@KrishaDeshkool KrishaDeshkool marked this pull request as draft June 3, 2026 10:21
@KrishaDeshkool KrishaDeshkool force-pushed the clean_up_mw_com branch 2 times, most recently from f63201a to 5e300ec Compare June 9, 2026 12:27
@KrishaDeshkool KrishaDeshkool changed the title mw:com: remove redundant instance id mw:com: Clean up Field impl Jun 9, 2026
@KrishaDeshkool KrishaDeshkool force-pushed the clean_up_mw_com branch 17 times, most recently from 610b3dd to 86a56d4 Compare June 11, 2026 14:08
@KrishaDeshkool KrishaDeshkool force-pushed the clean_up_mw_com branch 6 times, most recently from 6406140 to 7832839 Compare June 12, 2026 12:42
KrishaDeshkool and others added 13 commits June 12, 2026 14:45
The new order allows us to set the bindings to nullptrs by default for
test only constructors. This will be useful for fields which will
require optionally inserting get / set bindings. We change all
constructors so that they're all consistent.
- Use a single test constructor which creates the get / set methods
  according to the provided bindings. This allows us to remove the
  test-only constructor overloads for each template arg combination.
- Always store the get / set method dispatches as unique_ptrs even if
  they're not enabled (when disabled, they'll simply be nullptrs). This
  allows us to have a single private constructor which always accepts
  unique_ptrs (which may be valid or nullptrs).
…nitions

Introduce field_tags.h with tag structs (WithGetter, WithSetter,
WithNotifier) and the contains_type / is_tag_enabled SFINAE utilities.
Re-export the tags through types.h and wire the BUILD dependency.
Change forward and friend declarations of ProxyField and SkeletonField
from fixed bool parameters to variadic typename... packs. Replaces the
eight explicit ProxyField friend specializations with a single template friend.
Replace the fixed bool EnableSet/EnableNotifier template parameters
with a variadic Tags... pack. WithGetter, WithSetter, WithNotifier
tag structs control which API is enabled/disabled via SFINAE.
Adapt all test interfaces, test fixtures, and integration helpers to
use the new WithGetter/WithSetter/WithNotifier tag syntax instead of
bare ProxyField<T> or SkeletonField<T, bool, bool>.
Add field_tags_test.cpp for is_tag_enabled and contains_type traits.
Extend proxy_field_test.cpp to verify that notifier methods are only
callable with WithNotifier, Get() with WithGetter, Set() with WithSetter.
…sent

Remove the ASSERT_PRD that required proxy_event_base_dispatch to be
non-null. When the field's tag pack does not include WithNotifier the
production ctor passes nullptr for the event dispatch, which is valid
because the notifier surface is SFINAE-removed.
SkeletonField became SkeletonField<T, Tags...> in the tag introduction
commit. NamedSkeletonFieldMock must carry the same Tags... so that
InjectFieldMock can dynamic_cast to the correct specialisation.
method_identifier.h defines a UniqueMethodIdentifier that is
not referenced by any production code.
the  binding dependant layer uses its own
UniqueMethodIdentifier.
removing a spillover from previous work.
Add a ServiceElementType parameter to ProxyEventBindingFactory::Create to avoid code duplication
@KrishaDeshkool KrishaDeshkool force-pushed the clean_up_mw_com branch 2 times, most recently from 0d8af99 to c8ecc76 Compare June 12, 2026 13:41
split LookupLolaProxyElement into two free functions in bindings/lola and rework all the callers
refactor to reduce code duplication with generic helper methods
and also, SetupMethods hardcoded kUseGetIfAvailable/kUseSetIfAvailable to true and ignored
the parsed useGetIfAvailable/useSetIfAvailable deployment config.
The proxy method test helper now takes a MethodType per registered entry
instead of always kMethod, so field Get and Set methods can be
registered too. Existing method call sites pass MethodType::kMethod.
covers field Get/Set handling in Proxy::SetupMethods
@KrishaDeshkool KrishaDeshkool marked this pull request as ready for review June 12, 2026 15:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant