public void SetProcess(IFiveStepProcess process)
 {
     DoStepOneReceiver.SetProcess(process);
     DoStepTwoReceiver.SetProcess(process);
     DoStepThreeReceiver.SetProcess(process);
     DoStepFourReceiver.SetProcess(process);
     DoStepFiveReceiver.SetProcess(process);
 }
        public ExchangeReceivers()
        {
            Access = AccessSafely.AfterCompleting(5);

            DoStepOneReceiver   = new DoStepOneReceiver(Access);
            DoStepTwoReceiver   = new DoStepTwoReceiver(Access);
            DoStepThreeReceiver = new DoStepThreeReceiver(Access);
            DoStepFourReceiver  = new DoStepFourReceiver(Access);
            DoStepFiveReceiver  = new DoStepFiveReceiver(Access);

            var stepCount = new AtomicInteger(0);

            Access.WritingWith <int>("stepCount", delta => stepCount.IncrementAndGet())
            .ReadingWith("stepCount", () => stepCount.Get());
        }