Repository navigation
Conversation
…nt binding factory Since the proxy-side binding layer was made type-erased, IProxyEventBindingFactory/ProxyEventBindingFactory/ProxyEventBindingFactoryImpl no longer reference SampleType in their implementation. Remove the now unused template parameter and move the (now non-template) implementations to .cpp files. IProxyFieldBindingFactory is also de-templated for the same reason (its interface methods never referenced SampleType).
crimson11
requested review from
LittleHuba,
bemerybmw,
castler,
hoe-jo and
limdor
as code owners
October 20, 2026 16:39
crimson11
force-pushed
the
mf_fix_proxy_event_factory_template
branch
from
October 21, 2026 09:13
801cd5e to
456ba08
Compare
…dingFactory Previously ProxyEventBindingFactoryImpl::Create()/ ProxyFieldBindingFactoryImpl::CreateEventBinding() did not receive the event's DataTypeSizeInfo from the caller, even though only the binding-independent layer (which knows the concrete SampleType) can correctly compute it. This went undetected because lola::ProxyEvent happened to fetch the type info itself from the EventMetaInfo stored in shared-memory via its parent Proxy. This works only for LoLa and only because LoLa publishes type metadata into shared-memory for the generic proxy use-case; other bindings have (most likely) no such mechanism and would need the type info passed in explicitly. - IProxyEventBindingFactory::Create() (and its ProxyEventBindingFactory/ ProxyEventBindingFactoryImpl implementations) now take an additional memory::DataTypeSizeInfo parameter, computed by the caller (ProxyEvent<SampleType>) via CreateDataTypeSizeInfoFromTypes<SampleType>(). - IGenericProxyEventBindingFactory::Create() is intentionally left unchanged: a generic proxy event has no known SampleType at its call site, so it continues to look up the DataTypeSizeInfo from the EventMetaInfo stored in shared-memory for that case (passed as std::nullopt). - lola::ProxyEvent now receives its DataTypeSizeInfo via constructor parameter instead of looking it up itself from its parent Proxy's shared-memory EventMetaInfo.
…ctory Since the proxy-side binding layer is now type-erased, ProxyFieldBindingFactory and ProxyMethodBindingFactory don't need template argumens regarding SampleType/Signature as they can be replaced by non-template DataTypeSizeInfo call-arguments in the create-functions, which are created on the binding independent layer.
…thodBindingFactory Removed unused members of lola::SkeletonMethod (in_args_type_erased_info_ and return_type_type_erased_info_). To keep the factory signature consistent with the fact that only the binding-independent layer (which knows the concrete method signature) has the in-arg/return type info, and to allow other (non-LoLa) bindings to receive this info when creating their binding-specific SkeletonMethod, this commit: - Extends ISkeletonMethodBindingFactory::Create() (and its SkeletonMethodBindingFactory/SkeletonMethodBindingFactoryImpl implementations) with two additional std::optional<memory::DataTypeSizeInfo> parameters, computed by the caller (SkeletonMethod<ReturnType(ArgTypes...)>) via TypeErasedMethodSignatureInfo<Signature>::InArgsTypeInfo()/ ReturnTypeInfo(). - Removes the dead in_args_type_erased_info_/ return_type_type_erased_info_ members from lola::SkeletonMethod, since the LoLa binding doesn't need this info (it currently gets the size/alignment info it needs from the proxy-side call queue, same as before).
crimson11
force-pushed
the
mf_fix_proxy_event_factory_template
branch
from
October 21, 2026 11:09
456ba08 to
7c25686
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.