Skip to content

Generic skeleton implementation - Only with Event and Black Box Test with IPC_bridge App#17

Closed
saksham-chawla wants to merge 37 commits intocodex/replay-pr-140-basefrom
codex/replay-pr-140-head
Closed

Generic skeleton implementation - Only with Event and Black Box Test with IPC_bridge App#17
saksham-chawla wants to merge 37 commits intocodex/replay-pr-140-basefrom
codex/replay-pr-140-head

Conversation

@saksham-chawla
Copy link
Collaborator

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

Hi @crimson11
As discussed earler Rasing a pull request containing the Event with black-box tests through Example Application.

Rest will done in second pull request(First week of Feb) which includes the complete Event functionality documentation along with tests for both Event and Field


Generic Skeleton Implementation with Event Support and Black Box Tests

This pull request introduces a generic skeleton implementation, enabling the creation of runtime-configurable service providers that operate on raw data. The initial scope focuses on GenericSkeletonEvent functionality, allowing applications like gateways or bridges to offer services without compile-time knowledge of specific data types. This is achieved through the introduction of DataTypeMetaInfo for dynamic size and alignment information.

The changes involve a significant refactoring of existing event handling logic into a new lola::SkeletonEventCommon class, centralizing shared behavior for both strongly typed and generic events. It also includes the necessary factory interfaces and implementations for creating generic event bindings, along with comprehensive unit tests and an updated example application to demonstrate the new capabilities.

Architecture Diagram:

flowchart TD
    subgraph Application_Layer
        A["IPC_Bridge_App (+68 lines)"]
    end

    subgraph Core_COM_Layer
        B["GenericSkeleton (+145 lines)"]
        C["GenericSkeletonEvent (+100 lines)"]
        D["SkeletonBase"]
        E["DataTypeMetaInfo (+2 lines)"]
        F["EventInfo"]
        G["GenericSkeletonServiceElementInfo"]
        H["ServiceElementMap"]
        I["ComErrc (+2 lines)"]
        J["SampleAllocateePtr (refactored)"]
        K["types.h (+23 lines)"]
    end

    subgraph Plumbing_Layer
        L["IGenericSkeletonEventBindingFactory (+38 lines)"]
        M["GenericSkeletonEventBindingFactory (+64 lines)"]
        N["GenericSkeletonEventBindingFactoryImpl (+31 lines)"]
        O["SkeletonServiceElementBindingFactoryImpl (+56 lines)"]
    end

    subgraph LoLa_Binding_Layer
        P["GenericSkeletonEventBinding (+39 lines)"]
        Q["lola::GenericSkeletonEvent (+139 lines)"]
        R["lola::Skeleton (+104 lines)"]
        S["lola::SkeletonEventCommon (+121 lines)"]
        T["lola::SkeletonEvent (refactored)"]
    end

    subgraph Testing_Layer
        U["GenericSkeletonTest (+328 lines)"]
        V["GenericSkeletonEventTest (+347 lines)"]
        W["lola::SkeletonEventComponentTest (refactored)"]
        X["lola::SkeletonTest (refactored)"]
        Y["lola::ProxyTest (refactored)"]
        Z["lola::GenericProxyEventTest (refactored)"]
    end

    A -->|uses| B
    B -->|manages| C
    B -->|inherits| D
    B -->|uses| F
    B -->|uses| G
    B -->|uses| H
    B -->|uses| M
    C -->|inherits| P
    C -->|uses| E
    D <|-- B
    D -->|uses| P
    P <|-- Q
    P <|-- C
    Q -->|uses| S
    Q -->|uses| E
    R -->|registers generic events| Q
    R -->|uses| S
    S o-- R
    T -->|uses| S
    M -->|creates| P
    M -->|uses| L
    M -->|delegates to| N
    N -->|uses| O
    O -->|creates| Q
    K -->|exposes| B
    K -->|exposes| C
    K -->|exposes| E
    K -->|exposes| F
    K -->|exposes| G
    K -->|exposes| I
    K -->|exposes| J
    J -->|uses| Q
    U -->|tests| B
    U -->|tests| M
    V -->|tests| C
    V -->|tests| P
    W -->|tests| T
    X -->|tests| R
    Y -->|tests| R
    Z -->|tests| Q
Loading

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

mina-hamdi and others added 30 commits January 15, 2026 14:43
Signed-off-by: Abhishek GOYAL <abhishek.goyal@valeo.com>
…aining feedback review points and introduce GTest-based unit tests for generic_skeleton_event
…_implementation_Feedback_Review

Generic skeleton implementation feedback review
…_implementation_Feedback_Review

Use standard include guards for portability
…_implementation_Feedback_Review

Address review feedback
…_implementation_Feedback_Review

Make GenericSkeleton and supporting types publicly accessible via types.h
…_implementation_Feedback_Review

Generic skeleton implementation feedback review [Resolve merge conflicts with main]
…_implementation_Feedback_Review

Fix ASan ODR violation
…_implementation_Feedback_Review

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

4 participants