Example #1
0
 public void AddEvent(IServerEvent serverEvent)
 {
     lock (serverEvents)
     {
         serverEvents.Enqueue(serverEvent);
     }
 }
        public void SetUp()
        {
            theInitializer = new DefaultChannelInitializer <FakeTopic>();
            theWriter      = new RecordingServerEventWriter();

            theCache = MockRepository.GenerateMock <ITopicChannelCache>();
            ITopicChannel <FakeTopic> channel = new TopicChannel <FakeTopic>(new EventQueue <FakeTopic>());

            theChannel = channel.Channel;
            theTopic   = new FakeTopic();

            theCache.Stub(x => x.TryGetChannelFor(theTopic, out channel)).Return(true).OutRef(channel);

            theChannelWriter = new ChannelWriter <FakeTopic>(theWriter, theWriter, theCache, theInitializer);

            e1 = new ServerEvent("1", "data-1");
            e2 = new ServerEvent("2", "data-2");
            e3 = new ServerEvent("3", "data-3");
            e4 = new ServerEvent("4", "data-4");
            e5 = new ServerEvent("5", "data-5");

            ie1 = new ServerEvent("random1", "initialization data-1");
            ie2 = new ServerEvent("random2", "initialization data-2");
            ie3 = new ServerEvent("3", "initialization data-3");
        }
 private void PublishEvent(IServerEvent serverEvent)
 {
     this.scheduler.Schedule(() =>
     {
         this.events.Enqueue(serverEvent);
     });
 }
        public bool Write(IServerEvent @event)
        {
            if (WriterThrows)
            {
                throw new Exception(ExceptionMessage);
            }

            if (FailOnNthWrite.HasValue && FailOnNthWrite.Value == _lock.Read(() => _events.Count + 1))
            {
                return(false);
            }

            _lock.Write(() => _events.Add(@event));
            return(true);
        }
Example #5
0
 void Receive()
 {
     while (Connector.IsConnected)
     {
         try
         {
             // 受信データの解析処理
             IServerEvent serverEvent = parser.ReadAndParse(this);
             serverEventManager.AddEvent(serverEvent);
         }
         catch (Exception ex)
         {
             // 例外の内容に応じた処理を行う
             Debug.Log(ex.Message);
         }
     }
 }
        public static IServerEvent IdentifyEvent(string rawData, out string[] eventArgs)
        {
            eventArgs = null;
            IServerEvent result = null;

            foreach (var registeredEvent in RegisteredEvents)
            {
                if (!registeredEvent.TryParseServerEvent(rawData, out eventArgs))
                {
                    continue;
                }

                result = registeredEvent;
                break;
            }

            return(result);
        }
 public bool Write(IServerEvent @event)
 {
     return WriteData(@event.Data, @event.Id, @event.Event, @event.Retry);
 }
Example #8
0
 public bool Write(IServerEvent @event)
 {
     return(WriteData(@event.Data, @event.Id, @event.Event, @event.Retry));
 }