Exemplo n.º 1
0
        /// <summary>
        /// Creates a new WrapperClient instance.
        /// </summary>
        /// <param name="formatter">Formatter instance for data serialization to the pipe.</param>
        /// <param name="wrapperProcessStarter">WrapperProcessStarter instance for invoking the appropriate wrapper executable.</param>
        /// <param name="pipeStreamFactory">A factory instance to create a new NamedPipeClientStream.</param>
        /// <param name="pipeToken">PipeToken instance for creating pipe connections.</param>
        /// <param name="wrapperConfig">the wrapperconfig</param>
        public PipeConnector(IFormatter formatter, IWrapperProcessStarter wrapperProcessStarter, PipeStreamFactory pipeStreamFactory, PipeToken pipeToken, IWrapperConfig wrapperConfig)
        {
            Raise.ArgumentNullException.IfIsNull(formatter, nameof(formatter));
            Raise.ArgumentNullException.IfIsNull(wrapperProcessStarter, nameof(wrapperProcessStarter));
            Raise.ArgumentNullException.IfIsNull(pipeStreamFactory, nameof(pipeStreamFactory));
            Raise.ArgumentNullException.IfIsNull(pipeToken, nameof(pipeToken));

            _formatter             = formatter;
            _wrapperProcessStarter = wrapperProcessStarter;
            _pipeStreamFactory     = pipeStreamFactory;
            _pipeToken             = pipeToken;

            _wrapperProcessStarter.StartWrapperProcess();
            OpenPipe(wrapperConfig.Timeout);
        }