Exemple #1
0
        public void TestRemoveListener2()
        {
            DefaultCloseFuture future = new DefaultCloseFuture(null);

            Assert.IsFalse(future.Done);
            Assert.IsFalse(future.Closed);

            IoFuture f1 = null, f2 = null;
            EventHandler <IoFutureEventArgs> listener1 = (s, e) => f1 = e.Future;
            EventHandler <IoFutureEventArgs> listener2 = (s, e) => f2 = e.Future;

            future.Complete += listener1;
            future.Complete += listener2;
            future.Complete -= listener2;

            TestThread thread = new TestThread(future);

            thread.Start();

            future.Closed = true;
            thread.Join();

            Assert.IsTrue(thread.success);
            Assert.IsTrue(future.Done);
            Assert.IsTrue(future.Closed);

            Assert.AreSame(future, f1);
            Assert.AreSame(null, f2);
        }
Exemple #2
0
        public void TestAddListener()
        {
            DefaultCloseFuture future = new DefaultCloseFuture(null);

            Assert.IsFalse(future.Done);
            Assert.IsFalse(future.Closed);

            IoFuture f1 = null, f2 = null;

            future.Complete += (s, e) => f1 = e.Future;
            future.Complete += (s, e) => f2 = e.Future;

            TestThread thread = new TestThread(future);

            thread.Start();

            future.Closed = true;
            thread.Join();

            Assert.IsTrue(thread.success);
            Assert.IsTrue(future.Done);
            Assert.IsTrue(future.Closed);

            Assert.AreSame(future, f1);
            Assert.AreSame(future, f2);
        }
Exemple #3
0
 /// <inheritdoc/>
 protected override void FinishSessionInitialization0(IoSession session, IoFuture future)
 {
     // In case that IConnectFuture.Cancel() is invoked before
     // SetSession() is invoked, add a listener that closes the
     // connection immediately on cancellation.
     future.Complete += (s, e) =>
     {
         if (((IConnectFuture)e.Future).Canceled)
         {
             session.Close(true);
         }
     };
 }
 /// <inheritdoc/>
 protected override void FinishSessionInitialization0(IoSession session, IoFuture future)
 {
     // In case that IConnectFuture.Cancel() is invoked before
     // SetSession() is invoked, add a listener that closes the
     // connection immediately on cancellation.
     future.Complete += (s, e) =>
     {
         if (((IConnectFuture)e.Future).Canceled)
             session.Close(true);
     };
 }
Exemple #5
0
 /// <summary>
 /// </summary>
 public IoFutureEventArgs(IoFuture future)
 {
     _future = future;
 }
 internal void DoFinishSessionInitialization(IoSession session, IoFuture future)
 {
     InitSession(session, future, null);
 }
Exemple #7
0
 public TestThread(IoFuture future)
 {
     this.future = future;
     this.t = new Thread(Run);
 }
Exemple #8
0
 /// <summary>
 /// Implement this method to perform additional tasks required for session
 /// initialization. Do not call this method directly.
 /// </summary>
 protected virtual void FinishSessionInitialization0(IoSession session, IoFuture future)
 {
     // Do nothing. Extended class might add some specific code
 }
Exemple #9
0
 internal void DoFinishSessionInitialization(IoSession session, IoFuture future)
 {
     InitSession(session, future, null);
 }
Exemple #10
0
 /// <summary>
 /// </summary>
 public IoFutureEventArgs(IoFuture future)
 {
     _future = future;
 }
Exemple #11
0
 public TestThread(IoFuture future)
 {
     this.future = future;
     this.t      = new Thread(Run);
 }