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); }
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); }
public bool Write(IServerEvent @event) { return(WriteData(@event.Data, @event.Id, @event.Event, @event.Retry)); }