Esempio n. 1
0
            public override Msg Clone()
            {
                TestAck clone;

                clone = new TestAck();
                clone.CopyBaseFields(this, true);
                return(clone);
            }
Esempio n. 2
0
        private static void DoAction(MsgRouter router, BaseMsg msg)
        {
            TestAck ack;

            try
            {
                switch (msg.Action)
                {
                case "Normal":

                    router.ReplyTo(msg, new TestAck(msg.Value));
                    break;

                case "Exception":

                    ack           = new TestAck();
                    ack.Exception = msg.Value;

                    router.ReplyTo(msg, ack);
                    break;

                case "Ignore":

                    break;

                case "ActionCount":

                    ack = new TestAck();

                    lock (syncLock)
                        ack.Value = msg.Value + ": " + actionCount.ToString();

                    router.ReplyTo(msg, ack);
                    break;

                case "Throw-Exception":

                    Assert.Fail(msg.Value);
                    break;

                case "Sleep":

                    Thread.Sleep(TimeSpan.FromSeconds(router.SessionTimeout.TotalSeconds + 5));
                    router.ReplyTo(msg, new TestAck("Hello World!"));
                    break;

                default:

                    throw new InvalidOperationException("Unexpected action.");
                }
            }
            finally
            {
                lock (syncLock)
                    actionCount++;
            }
        }