Exemplo n.º 1
0
        static void Main(string[] args)
        {
            var publisher = new TemperatureSensor();

            IListener janWorker    = new WorkerListener();
            IListener adamWorker   = new WorkerListener();
            IListener kamilaWorker = new WorkerListener();

            IListener piotrManager = new ManagerListener();

            IListener jerzyBoss = new BossListener();

            publisher.Subscribe(janWorker);
            publisher.Subscribe(adamWorker);
            publisher.Subscribe(kamilaWorker);
            publisher.Subscribe(piotrManager);
            publisher.Subscribe(jerzyBoss);

            int i = 10;

            while (--i > 0)
            {
                publisher.CheckTemperature();
            }

            Console.Read();
        }
Exemplo n.º 2
0
        public void RequestBallotAndAnnounceBallotReceivedAndRevokedTest()
        {
            var vn  = new VoterNumber(250000);
            var cpr = new CPR(2312881234);

            Assert.That(Peer1.Database[vn, cpr] == BallotStatus.Unavailable);
            Assert.That(Peer2.Database[vn, cpr] == BallotStatus.Unavailable);
            Assert.That(Peer3.Database[vn, cpr] == BallotStatus.Unavailable);
            Assert.That(Manager.Database[vn, cpr] == BallotStatus.Unavailable);
            var data = new List <EncryptedVoterData> {
                new EncryptedVoterData(new CipherText(Peer1.Crypto.AsymmetricEncrypt(Bytes.From(vn.Value), Peer1.Crypto.VoterDataEncryptionKey)), new CipherText(Peer1.Crypto.AsymmetricEncrypt(Bytes.From(cpr.Value), Peer1.Crypto.VoterDataEncryptionKey)), new CipherText(Peer1.Crypto.AsymmetricEncrypt(Bytes.From(cpr.Value + (uint)BallotStatus.NotReceived), Peer1.Crypto.VoterDataEncryptionKey)))
            };

            Peer1.Database.Import(data);
            Peer2.Database.Import(data);
            Peer3.Database.Import(data);
            Manager.Database.Import(data);


            Assert.That(Peer1.Database[vn, cpr] == BallotStatus.NotReceived);
            Assert.That(Peer2.Database[vn, cpr] == BallotStatus.NotReceived);
            Assert.That(Peer3.Database[vn, cpr] == BallotStatus.NotReceived);
            Assert.That(Manager.Database[vn, cpr] == BallotStatus.NotReceived);
            var managerListenerResult = ManagerListener.BeginInvoke(null, null);

            AsyncManagerAnnounce(() => Peer1.RequestBallot(vn, cpr));
            ManagerListener.EndInvoke(managerListenerResult);
            Assert.That(Peer1.Database[vn, cpr] == BallotStatus.Received);
            Assert.That(Peer2.Database[vn, cpr] == BallotStatus.Received);
            Assert.That(Peer3.Database[vn, cpr] == BallotStatus.Received);
            Assert.That(Manager.Database[vn, cpr] == BallotStatus.Received);
            AsyncManagerAnnounce(() => Manager.AnnounceRevokeBallot(vn, cpr));
            Assert.That(Peer1.Database[vn, cpr] == BallotStatus.NotReceived);
            Assert.That(Peer2.Database[vn, cpr] == BallotStatus.NotReceived);
            Assert.That(Peer3.Database[vn, cpr] == BallotStatus.NotReceived);
            Assert.That(Manager.Database[vn, cpr] == BallotStatus.NotReceived);

            managerListenerResult = ManagerListener.BeginInvoke(null, null);
            AsyncManagerAnnounce(() => Peer1.RequestBallot(cpr, "yo boii"));
            ManagerListener.EndInvoke(managerListenerResult);
            Assert.That(Peer1.Database[vn, cpr] == BallotStatus.Received);
            Assert.That(Peer2.Database[vn, cpr] == BallotStatus.Received);
            Assert.That(Peer3.Database[vn, cpr] == BallotStatus.Received);
            Assert.That(Manager.Database[vn, cpr] == BallotStatus.Received);

            AsyncManagerAnnounce(() => Manager.AnnounceRevokeBallot(cpr, "yo boii"));
            Assert.That(Peer1.Database[vn, cpr] == BallotStatus.NotReceived);
            Assert.That(Peer2.Database[vn, cpr] == BallotStatus.NotReceived);
            Assert.That(Peer3.Database[vn, cpr] == BallotStatus.NotReceived);
            Assert.That(Manager.Database[vn, cpr] == BallotStatus.NotReceived);
        }
Exemplo n.º 3
0
 public void Register(ManagerListener listener)
 {
     m_Listeners.Add(listener);
 }