feat(gateway): Add gateway and transport abstractions#450
feat(gateway): Add gateway and transport abstractions#450Rahul-Sutariya wants to merge 1 commit into
Conversation
3a90d34 to
40e58b0
Compare
Introduce score/mw/com/gateway module with: - GatewayCore and Transport interfaces - ServiceElementConfiguration data types - Error domains with comprehensive unit tests - Full Bazel integration
40e58b0 to
86ddff0
Compare
| { | ||
|
|
||
| /// \brief Holds size and alignment information for a data type exchanged via the transport layer. | ||
| struct DataTypeSizeInfo |
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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. |
There was a problem hiding this comment.
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. |
There was a problem hiding this comment.
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. |
There was a problem hiding this comment.
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. |
There was a problem hiding this comment.
... 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. |
There was a problem hiding this comment.
... 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. |
There was a problem hiding this comment.
... locally within the destination domain.
Introduce score/mw/com/gateway module with: