public override Msg Clone() { TestAck clone; clone = new TestAck(); clone.CopyBaseFields(this, true); return(clone); }
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++; } }