/// <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; }
/// <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; }
public void Cleanup() { ReliableTransferSession.ClearCachedSettings(); Config.SetConfig(null); NetTrace.Stop(); clientWait.Close(); }
public void Initialize() { ReliableTransferSession.ClearCachedSettings(); NetTrace.Start(); NetTrace.Enable(ReliableTransferSession.TraceSubsystem, 0); // NetTrace.Enable(MsgRouter.TraceSubsystem,255); clientWait = new AutoResetEvent(false); }