/// <inheritdoc /> public GenericProxiedMessageContext([NotNull] IManagedNetworkClient <TPayloadReadType, TPayloadWriteType> proxyConnection, [NotNull] IConnectionService connectionService, [NotNull] IPeerPayloadSendService <TPayloadWriteType> payloadSendService, [NotNull] IPeerRequestSendService <TPayloadWriteType> requestSendService) { ProxyConnection = proxyConnection ?? throw new ArgumentNullException(nameof(proxyConnection)); ConnectionService = connectionService ?? throw new ArgumentNullException(nameof(connectionService)); PayloadSendService = payloadSendService ?? throw new ArgumentNullException(nameof(payloadSendService)); RequestSendService = requestSendService ?? throw new ArgumentNullException(nameof(requestSendService)); }
static GenericMessageContextFactory() { try { MockedPeerRequestService = Mock.Of <IPeerRequestSendService <TPayloadWriteType> >(); } catch (Exception e) { throw new InvalidOperationException($"Failed to create Mocked peer request service for Type: {nameof(TPayloadWriteType)}", e); throw; } }
/// <inheritdoc /> public HubConnectionMessageContext( [JetBrains.Annotations.NotNull] IConnectionService connectionService, [JetBrains.Annotations.NotNull] IPeerPayloadSendService <object> payloadSendService, [JetBrains.Annotations.NotNull] IPeerRequestSendService <object> requestSendService, [JetBrains.Annotations.NotNull] IGroupManager groups, [JetBrains.Annotations.NotNull] IHubCallerClients <TRemoteClientHubType> clients, [JetBrains.Annotations.NotNull] HubCallerContext hubConntext) { ConnectionService = connectionService ?? throw new ArgumentNullException(nameof(connectionService)); PayloadSendService = payloadSendService ?? throw new ArgumentNullException(nameof(payloadSendService)); RequestSendService = requestSendService ?? throw new ArgumentNullException(nameof(requestSendService)); Groups = groups ?? throw new ArgumentNullException(nameof(groups)); Clients = clients ?? throw new ArgumentNullException(nameof(clients)); HubConntext = hubConntext ?? throw new ArgumentNullException(nameof(hubConntext)); }
/// <inheritdoc /> public DefaultPeerMessageContext(IConnectionService connectionService, IPeerPayloadSendService <TPayloadBaseType> payloadSendService, IPeerRequestSendService <TPayloadBaseType> requestSendService) { if (connectionService == null) { throw new ArgumentNullException(nameof(connectionService)); } if (payloadSendService == null) { throw new ArgumentNullException(nameof(payloadSendService)); } if (requestSendService == null) { throw new ArgumentNullException(nameof(requestSendService)); } ConnectionService = connectionService; PayloadSendService = payloadSendService; RequestSendService = requestSendService; }
/// <inheritdoc /> public AuthSessionMessageContext([NotNull] IConnectionService connectionService, [NotNull] IPeerPayloadSendService <AuthenticationServerPayload> payloadSendService, [NotNull] IPeerRequestSendService <AuthenticationServerPayload> requestSendService, [NotNull] SessionDetails details) { if (connectionService == null) { throw new ArgumentNullException(nameof(connectionService)); } if (payloadSendService == null) { throw new ArgumentNullException(nameof(payloadSendService)); } if (requestSendService == null) { throw new ArgumentNullException(nameof(requestSendService)); } if (details == null) { throw new ArgumentNullException(nameof(details)); } ConnectionService = connectionService; PayloadSendService = payloadSendService; RequestSendService = requestSendService; Details = details; }
//This extension mostly exists for the old TCP-only API /// <summary> /// Sends the <see cref="request"/> payload and provided a future awaitable /// that can yield the <typeparamref name="TResponseType"/> payload. /// </summary> /// <typeparam name="TResponseType"></typeparam> /// <typeparam name="TPayloadBaseType"></typeparam> /// <param name="sendService"></param> /// <param name="request">The request payload.</param> /// <returns>A future that contains the response.</returns> public static Task <TResponseType> SendRequestAsync <TPayloadBaseType, TResponseType>(this IPeerRequestSendService <TPayloadBaseType> sendService, TPayloadBaseType request) where TPayloadBaseType : class { if (sendService == null) { throw new ArgumentNullException(nameof(sendService)); } if (request == null) { throw new ArgumentNullException(nameof(request)); } //Since no delivry or cancel was provided we should default to reliable and also make sure there is no cancel return(sendService.SendRequestAsync <TResponseType>(request, DeliveryMethod.ReliableOrdered, CancellationToken.None)); }
static AuthServerClientSession() { MockedInterceptor = Mock.Of <IPeerRequestSendService <AuthenticationServerPayload> >(); }
/// <inheritdoc /> public DefaultSessionMessageContext([NotNull] IConnectionService connectionService, [NotNull] IPeerPayloadSendService <TPayloadWriteType> payloadSendService, [NotNull] IPeerRequestSendService <TPayloadWriteType> requestSendService, [NotNull] SessionDetails details) { ConnectionService = connectionService ?? throw new ArgumentNullException(nameof(connectionService)); PayloadSendService = payloadSendService ?? throw new ArgumentNullException(nameof(payloadSendService)); RequestSendService = requestSendService ?? throw new ArgumentNullException(nameof(requestSendService)); Details = details ?? throw new ArgumentNullException(nameof(details)); }
/// <inheritdoc /> public IPeerMessageContext <TPayloadBaseType> Create <TPayloadBaseType>(IConnectionService connectionService, IPeerPayloadSendService <TPayloadBaseType> sendService, IPeerRequestSendService <TPayloadBaseType> requestService) where TPayloadBaseType : class { if (connectionService == null) { throw new ArgumentNullException(nameof(connectionService)); } if (sendService == null) { throw new ArgumentNullException(nameof(sendService)); } //This doesn't have to work like this, it could be other services/dependencies, //but the only implementation right now is the client itself. return(new DefaultPeerMessageContext <TPayloadBaseType>(connectionService, sendService, requestService)); }