Skip to content

feat(gateway): Add gateway and transport abstractions#450

Open
Rahul-Sutariya wants to merge 1 commit into
eclipse-score:mainfrom
Rahul-Sutariya:gateway_interface
Open

feat(gateway): Add gateway and transport abstractions#450
Rahul-Sutariya wants to merge 1 commit into
eclipse-score:mainfrom
Rahul-Sutariya:gateway_interface

Conversation

@Rahul-Sutariya
Copy link
Copy Markdown
Contributor

Introduce score/mw/com/gateway module with:

  • GatewayCore and Transport interfaces
  • ServiceElementConfiguration data types
  • Error domains with comprehensive unit tests
  • Full Bazel integration

@Rahul-Sutariya Rahul-Sutariya force-pushed the gateway_interface branch 2 times, most recently from 3a90d34 to 40e58b0 Compare May 19, 2026 09:59
Introduce score/mw/com/gateway module with:
- GatewayCore and Transport interfaces
- ServiceElementConfiguration data types
- Error domains with comprehensive unit tests
- Full Bazel integration
@Rahul-Sutariya Rahul-Sutariya marked this pull request as ready for review May 20, 2026 13:03
{

/// \brief Holds size and alignment information for a data type exchanged via the transport layer.
struct DataTypeSizeInfo
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just saw, that we have score::memory::DataTypeSizeInfo - so we should reuse instead of re-implement here ...


/// \brief Provide the given service instance locally.
/// \details This API is expected to be called by the transport layer implementation, when the transport layer
/// receives a request from the remote gateway to provide a service instance. It shall provide/create the given
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

from the remote gateway

from the source gateway

/// \brief Provide the given service instance locally.
/// \details This API is expected to be called by the transport layer implementation, when the transport layer
/// receives a request from the remote gateway to provide a service instance. It shall provide/create the given
/// service instance locally (e.g. by creating a GenericSkeleton) and offer it.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

service instance locally ...

service instance locally within the destination domain by creating a Forwarding Skeleton (GenericSkeleton) and offer it.

virtual score::Result<void> ProvideService(impl::InstanceSpecifier service_instance_specifier,
std::vector<ServiceElementConfiguration> service_elements) = 0;

/// \brief Stop providing the given service instance locally.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

instance locally.

instance locally within the destination domain.

/// that this specifier is configured/existent in the mw_com_config.json at the local gateway side.
virtual void StopOfferService(impl::InstanceSpecifier service_instance_specifier) = 0;

/// \brief Offer the given service instance locally.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

instance locally within the destination domain.

/// \return result indicating success or failure.
virtual score::Result<void> OfferService(impl::InstanceSpecifier service_instance_specifier) = 0;

/// \brief Register an event-update notification for the given service instance and element locally.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

... locally within the destination domain.

impl::ServiceElementType element_type,
std::string element_name) = 0;

/// \brief Unregister an event-update notification for the given service instance and element locally.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

... locally within the destination domain.

impl::ServiceElementType element_type,
std::string element_name) = 0;

/// \brief Notify an event update for the given service instance and element locally.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

... locally within the destination domain.

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.

2 participants