Esempio n. 1
0
        public Result <IUnityNetworkMiddlewareSchema> BuildUnityNetworkClientPipeline(
            NetworkClientMiddlewareManifests manifest)
        {
            var coroutineRunner = ModulesRegister.Get <ICoroutineRunner>();

            if (coroutineRunner.IsError)
            {
                return(Result <IUnityNetworkMiddlewareSchema> .FromError(
                           $"Unable to get {nameof(coroutineRunner)} at {nameof(UnityNetworkClientPipelineBuilder<T>)}"));
            }

            var compositionManifest = manifest.RequestComposition;

            var requestProcessor = UnityWebRequestProcessorMiddleware <T> .Create(Option <T> .None,
                                                                                  coroutineRunner.Value, manifest.RequestProcessor);

            var statusCodeValidator = StatusCodeValidationMiddleware <T> .Create(
                ((T)(IUnityNetworkMiddlewareSchema)requestProcessor).ToSome());

            var compositionMiddleware = UnityRequestCompositionMiddleware <T> .Create(
                ((T)(IUnityNetworkMiddlewareSchema)statusCodeValidator).ToSome(), compositionManifest);

            return(((IUnityNetworkMiddlewareSchema)compositionMiddleware).ToValue());
        }
Esempio n. 2
0
 protected override Result <IUnityNetworkMiddlewareSchema> BuildPipeline(NetworkClientMiddlewareManifests manifests)
 {
     return(new UnityNetworkClientPipelineBuilder <IUnityNetworkMiddlewareSchema>()
            .BuildUnityNetworkClientPipeline(manifests));
 }