Exemple #1
0
        /// <summary>
        /// Private constructor for initializing <b>server side</b> sessions.
        /// </summary>
        /// <param name="router">The message router.</param>
        /// <param name="msg">The <see cref="ReliableTransferMsg" /> that initiated this session.</param>
        /// <param name="direction">The transfer direction supported by the server.</param>
        /// <param name="stream">The input or output stream.</param>
        /// <exception cref="InvalidOperationException">
        /// Thrown if the client requested transfer direction does not match the
        /// direction implied by this method.
        /// </exception>
        private StreamTransferSession(MsgRouter router, ReliableTransferMsg msg, TransferDirection direction, EnhancedStream stream)
        {
            if (direction != msg.Direction)
            {
                throw new InvalidOperationException(string.Format("Transfer direction [{0}] is not supported.", msg.Direction));
            }

            ReliableTransferHandler handler;

            reliableSession = msg.Session;
            reliableSession.SessionHandler =
                handler = new ReliableTransferHandler(reliableSession);
            handler.BeginTransferEvent += new ReliableTransferDelegate(OnBeginTransfer);
            handler.EndTransferEvent   += new ReliableTransferDelegate(OnEndTransfer);

            if (direction == TransferDirection.Upload)
            {
                handler.ReceiveEvent += new ReliableTransferDelegate(OnReceive);
            }
            else
            {
                handler.SendEvent += new ReliableTransferDelegate(OnSend);
            }

            this.router     = router;
            this.direction  = direction;
            this.args       = msg.Args;
            this.stream     = stream;
            this.started    = false;
            this.closed     = false;
            this.arTransfer = null;
            this.simError   = false;
            this.simCancel  = false;
            this.delay      = 0;
        }
Exemple #2
0
        /// <summary>
        /// Private constructor for initializing <b>client side</b> sessions.
        /// </summary>
        /// <param name="router">The message router.</param>
        /// <param name="serverEP">The server endpoint.</param>
        /// <param name="direction">The transfer direction.</param>
        /// <param name="stream">The input or output stream.</param>
        private StreamTransferSession(MsgRouter router, MsgEP serverEP, TransferDirection direction, EnhancedStream stream)
        {
            ReliableTransferHandler handler;

            reliableSession = router.CreateReliableTransferSession();
            reliableSession.SessionHandler =
                handler = new ReliableTransferHandler(reliableSession);
            handler.BeginTransferEvent += new ReliableTransferDelegate(OnBeginTransfer);
            handler.EndTransferEvent   += new ReliableTransferDelegate(OnEndTransfer);

            if (direction == TransferDirection.Upload)
            {
                handler.SendEvent += new ReliableTransferDelegate(OnSend);
            }
            else
            {
                handler.ReceiveEvent += new ReliableTransferDelegate(OnReceive);
            }

            this.router       = router;
            this.serverEP     = serverEP;
            this.direction    = direction;
            this.args         = null;
            this.stream       = stream;
            this.started      = false;
            this.closed       = false;
            this.streamClosed = false;
            this.arTransfer   = null;
            this.simError     = false;
            this.simCancel    = false;
            this.delay        = 0;
        }
Exemple #3
0
        public void Cleanup()
        {
            ReliableTransferSession.ClearCachedSettings();
            Config.SetConfig(null);
            NetTrace.Stop();

            clientWait.Close();
        }
Exemple #4
0
        public void Initialize()
        {
            ReliableTransferSession.ClearCachedSettings();
            NetTrace.Start();
            NetTrace.Enable(ReliableTransferSession.TraceSubsystem, 0);

            // NetTrace.Enable(MsgRouter.TraceSubsystem,255);

            clientWait = new AutoResetEvent(false);
        }