using ZB.MOM.WW.ScadaBridge.Commons.Messages.InboundApi;
namespace ZB.MOM.WW.ScadaBridge.InboundAPI;
///
/// Seam over the cross-site routing transport used by .
/// The production implementation ()
/// delegates to ZB.MOM.WW.ScadaBridge.Communication.CommunicationService; the interface
/// exists so / can be unit tested
/// without a live actor system (InboundAPI-017).
///
public interface IInstanceRouter
{
/// Routes a script call request to the specified site.
/// Target site identifier.
/// The call request to route.
/// Cancellation token for the routed call.
Task RouteToCallAsync(
string siteId, RouteToCallRequest request, CancellationToken cancellationToken);
/// Routes a batch attribute read request to the specified site.
/// Target site identifier.
/// The get-attributes request to route.
/// Cancellation token for the routed call.
Task RouteToGetAttributesAsync(
string siteId, RouteToGetAttributesRequest request, CancellationToken cancellationToken);
/// Routes a batch attribute write request to the specified site.
/// Target site identifier.
/// The set-attributes request to route.
/// Cancellation token for the routed call.
Task RouteToSetAttributesAsync(
string siteId, RouteToSetAttributesRequest request, CancellationToken cancellationToken);
}