Exemple #1
0
        public static void Main(string[] args)
        {
            var disruptor = new Disruptor <ObjectBox>(() => new ObjectBox(), _ringSize, TaskScheduler.Current, ProducerType.Multi, new BlockingWaitStrategy());

            disruptor.HandleEventsWith(new Consumer()).Then(new Consumer());
            var ringBuffer    = disruptor.RingBuffer;
            var message       = new Message();
            var transportable = new Transportable();
            var streamName    = "com.lmax.wibble";

            Console.WriteLine($"publishing {_ringSize} messages");
            var p = new Publisher();

            for (var i = 0; i < _ringSize; i++)
            {
                ringBuffer.PublishEvent(p, message, transportable, streamName);
                Thread.Sleep(10);
            }
            Console.WriteLine("start disruptor");
            disruptor.Start();
            Console.WriteLine("continue publishing disruptor");
            while (true)
            {
                ringBuffer.PublishEvent(p, message, transportable, streamName);
                Thread.Sleep(10);
            }
        }
Exemple #2
0
        public void UpdateGiveToTarget()
        {
            #region Setup

            var mockComponentActorFactory = new Mock <ComponentActorFactory <TransportableStorage> >(Sys);
            mockComponentActorFactory.Setup(f => f.GetProps(It.IsAny <TransportableStorage>()))
            .Returns(Props.Create(() => new EntityTestActor()));
            var resourceContainer        = new ResourceContainer();
            var containerTransportable   = new Transportable();
            var orderTargetTransportable = new TransportableStorage();
            var orderTargetEntity        = new Entity {
                orderTargetTransportable
            };
            var deliverOrder =
                new DeliverContainerToStorage(resourceContainer, orderTargetEntity,
                                              mockComponentActorFactory.Object);
            var transporterEntity = new Entity
            {
                new TransportableStorage
                {
                    Transportables =
                    {
                        containerTransportable
                    }
                }
            };

            #endregion

            deliverOrder.Update(transporterEntity, new GameTime());
            var messageToEntityComponent = ExpectMsg <MessageToEntityComponentFirstOfType <TransportableStorage> >();
            Assert.Equal(transporterEntity.Id, messageToEntityComponent.EntityId);
            var giveTransportableTo = Assert.IsType <GiveTransportableTo>(messageToEntityComponent.Message);
            Assert.Equal(resourceContainer.Id, giveTransportableTo.Transportable.Id);
            Assert.Equal(orderTargetTransportable.Id, giveTransportableTo.Target.Id);
        }
Exemple #3
0
 private void GivenTransportableExists()
 {
     transportable = CreateBareTransportable();
 }
Exemple #4
0
 public void SetTransportable(Transportable arg1)
 {
     _transportable = arg1;
 }