Skip to content

Muse skeleton get remaining part#1

Closed
saksham-chawla wants to merge 6 commits intocodex/replay-pr-207-basefrom
codex/replay-pr-207-head
Closed

Muse skeleton get remaining part#1
saksham-chawla wants to merge 6 commits intocodex/replay-pr-207-basefrom
codex/replay-pr-207-head

Conversation

@saksham-chawla
Copy link
Copy Markdown
Collaborator

@saksham-chawla saksham-chawla commented Mar 18, 2026

  • introduces EnableGet flag on SkeletonField Side.
  • implements Get function functionality.

Please note that this PR is rebased on
eclipse-score#204
https://cc-github.bmwgroup.net/oss/eclipse-score-communication/pull/175/
These PRs needs to be merged before this PR.


Muse skeleton get remaining part

This pull request introduces the EnableGet flag on the SkeletonField side, enabling Get functionality for skeleton fields. It implements the Get method, allowing users to retrieve the latest field value. The changes involve significant refactoring of SkeletonField and SkeletonEvent to incorporate new template parameters and SFINAE-based constructor overloads, ensuring that Get and Set methods are conditionally available based on template flags. A std::mutex is added to SkeletonField to serialize access to Get handlers, and EventDataControlComposite is updated to support finding the latest readable slot.

Architecture Diagram:

flowchart TD
    subgraph Application_Layer
        SF["SkeletonField (+265/-65 lines)"]
    end

    subgraph Core_COM_Layer
        SE["SkeletonEvent (+37/-6 lines)"]
        SEB[/"SkeletonEventBinding (+8 lines)"/]
        SM["SkeletonMethod"]
    end

    subgraph Binding_Layer
        EDCC["EventDataControlComposite (+53/-6 lines)"]
        EDC[("EventDataControl")]
    end

    subgraph Concurrency_Primitives
        Mutex[("std::mutex")]
    end

    SF --"manages"--> SE
    SF --"registers Get/Set handlers"--> SM
    SF --"uses for Get handler serialization"--> Mutex
    SE --"dispatches to"--> SEB
    SE --"manages slots via"--> EDCC
    EDCC --"controls"--> EDC
Loading

This summary was automatically generated by @propel-code-bot

muhseth and others added 6 commits March 17, 2026 13:04
- Adds GetLatestSlot function to EventDataControlComposite

Issue: SWP-249517
- Adds GetLatestSampleFunction to SkeletonEvent
Issue: SWP-249517
Implement RegisterSetHandler() method to allow users to register
callbacks for handling remote Set requests on skeleton fields.
The Set handler wraps user-provided validation/modification logic
and automatically broadcasts accepted values to all field
subscribers via Update().

Configuration support is stubbed with TODO - requires extension of
LolaFieldInstanceDeployment to include has_setter flag.

Issue: SWP-249527
Replace runtime is_setter_ guard with EnableSet/EnableNotifier
template bool parameters on SkeletonField.

Issue: SWP-249527
- SkeletonField now includes a new template parameter, EnableGet.
- When EnableGet is true, a skeleton Get method attribute is added to SkeletonField.
- Constructors were updated to support all relevant EnableSet and EnableGet combinations.
Issue: SWP-249517
- Automatically register a Get handler for fields with EnableGet.
- Serve Get requests by reading the latest field value and returning it through the Get method.
- Update the required slot calculation.
- Add a test covering this behavior.
Issue: SWP-249517
saksham-chawla pushed a commit that referenced this pull request Mar 18, 2026
…_implementation_Feedback_Review

Generic skeleton implementation feedback review
@saksham-chawla saksham-chawla marked this pull request as ready for review March 18, 2026 18:41
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.

3 participants