static void Main(string[] args) { int[,] matr1 = { { 1, 2, 3 }, { 1, 2, 3 }, { 1, 2, 3 } }; SquareMatrix<int> matrix1 = new SquareMatrix<int>(matr1); int[,] matr2 = { { 1, 0, 0 }, { 0, 2, 0 }, { 0, 0, 3 } }; DiagonalMatrix<int> matrix2 = new DiagonalMatrix<int>(matr2); int[,] matr3 = { { 1, 5, 3 }, { 5, 2, 7 }, { 3, 7, 3 } }; SymmetricMatrix<int> matrix3 = new SymmetricMatrix<int>(matr3); var squar = new Listeners<int>(); squar.Register(matrix1); squar.Register(matrix2); squar.Register(matrix3); matrix1[1, 2] = 3; matrix2[2, 2] = 3; matrix3[1, 0] = 3; SquareMatrix<int> output = matrix1.Sum(matrix2, (x, y) => x + y); SquareMatrix<int> output2 = matrix1.Sum(matrix2); Console.WriteLine(); }
private void OnReset(FileStream stream, out int numberOfLinesRead, out long lastPosition) { lastPosition = 0; if (stream != null) { stream.Position = 0; } numberOfLinesRead = 0; _properties.SetValue(LogFileProperties.StartTimestamp, null); _properties.SetValue(LogFileProperties.EndTimestamp, null); _maxCharactersPerLine = 0; _entries.Clear(); Listeners.Reset(); }
/// <summary> /// Invokes all listeners /// </summary> private void InvokeAllListeners() { for (int index = Listeners.Count - 1; index >= 0; index--) { if (Listeners[index] == null) { Listeners.RemoveAt(index); continue; } if (_debug) { Debug.Log($"Listener <b>{Listeners[index]}</b> was called."); } Listeners[index].OnEventInvoked(); } }
private void NotifyListeners(IEnumerable <LogFileSection> changes) { foreach (var section in changes) { if (section.IsInvalidate) { Listeners.Invalidate((int)section.Index, section.Count); } else if (section.IsReset) { Listeners.Reset(); } else { Listeners.OnRead((int)(section.Index + section.Count)); } } }
private void ListenerDoEvent(ViewportEvent e, Action <IViewportEventListener, ViewportEvent> action) { foreach (var listener in Listeners.Where(x => x.IsActive()).OrderBy(x => x.OrderHint)) { try { action(listener, e); } catch (Exception ex) { OnListenerException(ex); } if (e.Handled) { break; } } }
private void NotifyListeners(IEnumerable <LogSourceModification> changes) { foreach (var section in changes) { if (section.IsRemoved(out var removedSection)) { Listeners.Remove((int)removedSection.Index, removedSection.Count); } else if (section.IsReset()) { Listeners.Reset(); } else if (section.IsAppended(out var appendedSection)) { Listeners.OnRead((int)(appendedSection.Index + appendedSection.Count)); } } }
private Boolean setupListeners() { AuthentificationListener auth = new AuthentificationListener(); ChannelListener channelsListener = new ChannelListener(); if (!Listeners.TryAdd(typeof(LoginPacket), auth)) { return(false); } if (!Listeners.TryAdd(typeof(WelcomePacket), auth)) { return(false); } if (!Listeners.TryAdd(typeof(RegisterPacket), auth)) { return(false); } if (!Listeners.TryAdd(typeof(LoginTokenPacket), auth)) { return(false); } if (!Listeners.TryAdd(typeof(GetChannelPacket), channelsListener)) { return(false); } if (!Listeners.TryAdd(typeof(NewMessagePacket), channelsListener)) { return(false); } if (!Listeners.TryAdd(typeof(RenameChannelPacket), channelsListener)) { return(false); } if (!Listeners.TryAdd(typeof(CreateChannelPacket), channelsListener)) { return(false); } if (!Listeners.TryAdd(typeof(DeleteChannelPacket), channelsListener)) { return(false); } return(true); }
public void Leave(string connectionId) { lock (Loginstate) { var index = Feeders.IndexOf(connectionId); if (index != -1) { Feeders.Remove(connectionId); } else { index = Listeners.IndexOf(connectionId); if (index != -1) { Listeners.Remove(connectionId); } } } }
private void AddListener(IEventListener listener, Type eventType) { var dlist = new List <IEventListener>(); if (Listeners.TryGetValue(eventType, out dlist)) { if (!dlist.Contains(listener)) { dlist.Add(listener); } } else { dlist = new List <IEventListener> { listener }; Listeners.TryAdd(eventType, dlist); } }
/// <summary> /// Removes the listener from the specified priority level. /// </summary> /// <param name="priority">Priority that the listener was registered under.</param> /// <param name="callback">Function that was registered as a listener.</param> public static void RemoveListener(int priority, EventCallback callback) { if (callback == null) { throw new ArgumentException(nameof(callback), $"Trying to remove a callback with null value from event type '{GenericTypeName}'."); } // Check there is a list of listeners for this priority if (Listeners.TryGetValue(priority, out List <EventCallback> listeners)) { listeners.Remove(callback); // Remove this priority if there are no more listeners if (listeners == null || listeners.Count == 0) { Listeners.RemoveAt(priority); } } }
/// <summary> /// Adds a listener for this event type. /// </summary> /// <param name="priority">Priority of the listener. A lower value means the callback will be called earlier.</param> /// <param name="callback">Function to call when the event is fired.</param> public static void RegisterListener(int priority, EventCallback callback) { if (callback == null) { throw new ArgumentException(nameof(callback), $"Callback for event '{GenericTypeName}' cannot be null."); } // Check there is a list of listeners for this priority. If there isn't create one if (Listeners.TryGetValue(priority, out List <EventCallback> listeners)) { listeners.Add(callback); } else { Listeners.Add(priority, new List <EventCallback> { callback }); } }
public override bool Start() { if (!base.Start()) { return(false); } ILog log = AppServer.Logger; for (var i = 0; i < ListenerInfos.Length; i++) { var listener = CreateListener(ListenerInfos[i]); listener.Error += new ErrorHandler(listener_Error); listener.NewClientAccepted += new NewClientAcceptHandler(AcceptNewClient); if (listener.Start()) { Listeners.Add(listener); if (log.IsDebugEnabled) { log.DebugFormat("Listener ({0}) was started", listener.EndPoint); } } else //If one listener failed to start, stop started listeners { if (log.IsDebugEnabled) { log.DebugFormat("Listener ({0}) failed to start", listener.EndPoint); } for (var j = 0; j < Listeners.Count; j++) { Listeners[j].Stop(); } Listeners.Clear(); return(false); } } return(true); }
/// <summary> /// Изменяет размер уровня до заданных ширины и высоты. /// </summary> /// <param name="width">Ширина</param> /// <param name="height">Высота</param> public void Resize(int width, int height) { List <Block> newBlocks = new List <Block>(); for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { Block block = null; if (x < Width && y < Height) { block = Blocks[y * Width + x]; } newBlocks.Add(block); } } Width = width; Height = height; Blocks = new ObservableCollection <Block>(newBlocks); // Возможно, стоит сделать более серьезные проверки, но мне люто хочется спать. // Сейчас выпиливаются объекты, левый верхний угол которых лежит за пределами уровня, но учитывая // различные поправки к координатам, этот способ далеко не идеален. if (Areas != null) { Areas = new ObservableCollection <Area>( Areas.ToList().FindAll(area => area.X + area.Width < width && area.Y + area.Height < height)); } if (Listeners != null) { Listeners = new ObservableCollection <Listener>( Listeners.ToList().FindAll(listener => listener.X < width && listener.Y < height)); } if (Entities != null) { Entities = new ObservableCollection <Entity>( Entities.ToList().FindAll(entity => entity.X < width && entity.Y < height)); } OnLevelResize(); }
/// <summary> /// 持续监听处理 /// </summary> public static void Update() { if (MsgList.Count <= 0) { return; } //解析数据 var msgStr = MsgList.Dequeue(); //获得消息队列的首个元素并出队 var data = msgStr.Split('|'); var msgName = data[0]; var msgArgs = data[1]; //回调监听 if (Listeners.ContainsKey(msgName)) { Listeners[msgName](msgArgs); } }
/// <summary> /// Subscribe to size changes of the browser window using the provided options /// </summary> /// <param name="callback">The method (callbacK) that is invoke as soon as the size of the window has changed</param> /// <param name="options"></param> /// <returns>The subscription id. This id is needed for unscribe</returns> public async Task <Guid> Subscribe(Action <BrowserWindowSize> callback, ResizeOptions options) { if (callback is null) { throw new ArgumentNullException(nameof(callback)); } options ??= _options; if (DotNetRef == null) { DotNetRef = DotNetObjectReference.Create(this); } var existingOptionId = Listeners.Where(x => x.Value.Option == options).Select(x => x.Key).FirstOrDefault(); if (existingOptionId == default) { var subscriptionInfo = new ResizeServiceSubscriptionInfo(options); var subscriptionId = subscriptionInfo.AddSubscription(callback); var listenerId = Guid.NewGuid(); Listeners.Add(listenerId, subscriptionInfo); try { await JsRuntime.InvokeVoidAsync($"mudResizeListenerFactory.listenForResize", DotNetRef, options, listenerId); } catch (TaskCanceledException) { // no worries here } return(subscriptionId); } else { var entry = Listeners[existingOptionId]; var subscriptionId = entry.AddSubscription(callback); return(subscriptionId); } }
public virtual bool Start() { IsStopped = false; ILog log = AppServer.Logger; for (var i = 0; i < ListenerInfos.Length; i++) { var listener = CreateListener(ListenerInfos[i]); listener.Error += new ErrorHandler(OnListenerError); listener.Stopped += new EventHandler(OnListenerStopped); listener.NewClientAccepted += new NewClientAcceptHandler(OnNewClientAccepted); if (listener.Start(AppServer.Config)) { Listeners.Add(listener); if (log.IsDebugEnabled) { log.DebugFormat("Listener ({0}) was started", listener.EndPoint); } } else //If one listener failed to start, stop started listeners { if (log.IsDebugEnabled) { log.DebugFormat("Listener ({0}) failed to start", listener.EndPoint); } for (var j = 0; j < Listeners.Count; j++) { Listeners[j].Stop(); } Listeners.Clear(); return(false); } } IsRunning = true; return(true); }
private void InitCollectionView(List <ListenerInfo> listeners) { _originalListenerList = listeners; HasSystemListeners = listeners.Any(q => q.ListenerSource.IsSystemListener); ListenersFilterView = (CollectionView)CollectionViewSource.GetDefaultView(listeners); Listeners.Clear(); using (_filterProgressScope = Progress.Start(listeners.Count, LongRunningState.No)) { using (ListenersFilterView.DeferRefresh()) { ListenersFilterView.Filter = OnListenersViewFilter; ListenersFilterView.SortDescriptions.Add( new SortDescription("Name", ListSortDirection.Ascending)); } } StatusInfoViewModel.LastUpdateTimestamp = DateTime.Now; }
public bool AddSnippet(object sender, AbstractSnippet snippet) { // Prevents duplicate sources if (Snippets.Contains(snippet)) { return(false); } Snippets.Add(snippet); // Update settings to include newly added snippet var snippetsOfType = Snippets.Where(s => s.GetType() == snippet.GetType()); AppSettings.PutAndSave(GetKey(snippet), snippetsOfType); // Notify listeners that a new snippet was added Listeners.ForEach(listener => listener.SnippetAdded(sender, this, snippet)); return(true); }
public void MyTearDown() { try { var status = TestContext.CurrentContext.Result.Outcome.Status; if (status == TestStatus.Failed) { var listener = new Listeners(); var report = TestContext.CurrentContext.Result; listener.OnTestEvent(TestContext.CurrentContext.Test.Name); } Base.StopServer(); GlobalVar.AndroidDriver.Close(); } catch (Exception e) { //GlobalVar.AndroidDriver.Quit(); Assert.Fail(e.Message); } }
protected override void Dispose(bool disposing) { if (Context != null && !Context.IsDisposed) { foreach (var dis in Listeners.OfType <IDisposable>()) { try { dis.Dispose(); } catch { // Don't care } } } Listeners.Clear(); RenderContext.Dispose(); UpdateTimer.Dispose(); _stopwatch.Stop(); base.Dispose(disposing); }
/// <summary> /// Remove all interfaces attached the global listener gameobject. /// If no interface is found, remove is ignored. /// </summary> /// <param name="gameObjectToRemove">The gameobject which listens globally.</param> public void Remove(GameObject gameObjectToRemove) { if (gameObjectToRemove == null) { return; } // todo: macht wenig sinn alles zu löschen //RemoveEmptyListeners(); IStylusInputHandler[] inputHandlers = gameObjectToRemove.GetComponents <IStylusInputHandler>(); if (inputHandlers == null) { return; } DeregisterInputHandlers(inputHandlers); Listeners.Remove(gameObjectToRemove); }
public void AddListener(GameEnums type, Callback cb, string tag) { tag = tag.ToLower(); Listeners listeners = sandboxes[tag]; if (listeners == null) { listeners = sandboxes[tag] = new Listeners(); } CallbackList callbacks = listeners[type]; if (callbacks == null) { callbacks = listeners[type] = new CallbackList(); } callbacks.Add(cb); }
// PRIVATE METHODS void RegisterImpl(string channel, IListener listener) { if (string.IsNullOrEmpty(channel) == true) { return; } if (m_Channels.ContainsKey(channel) == false) { m_Channels[channel] = new Listeners(); } Listeners listeners = m_Channels[channel]; if (listeners.Contains(listener) == true) { return; } listeners.Add(listener); }
public void ListenLoop() { while (Running) { BlockingCollection <ITunnel> .TakeFromAny(Listeners.Select(l => l.Queue).ToArray(), out ITunnel tunnel); Log.Info("Accepted tunnel {0}", tunnel.ToString()); ClientInstance instance = new ClientInstance(tunnel, CertificateAuthority, Certificate, Signature); instance.Tun = Tun; if (!instance.Init()) { continue; } instance.Link.BufferedWrite = false; UnenumeratedClients.Add(instance); } }
static void Main(string[] args) { Listeners.Add(new System.Diagnostics.TextWriterTraceListener(Console.Out)); var packageDir = new DirectoryInfo(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Packages")); if (packageDir.Exists) { try { ProcessEdge(packageDir); } catch (Exception e) { WriteLine(e.Message); } } else { WriteLine("Unable to locate package directory. Are you running a modern version of Windows?"); } }
public virtual void Stop() { IsStopped = true; for (var i = 0; i < Listeners.Count; i++) { var listener = Listeners[i]; listener.Stop(); } Listeners.Clear(); // Clean the attached server resources if (m_ServerResources != null) { Parallel.ForEach(m_ServerResources, (r) => r.Rollback()); } IsRunning = false; }
private void ProcessPendingSections(out bool workDone) { workDone = false; while (_pendingSections.TryDequeue(out var pair)) { // We may still have pending sections from a log file we've just removed as listener. // If that's the case, then throw away that section and go look for the next... if (!Equals(pair.Key, _finalLogSource)) { continue; } var modification = pair.Value; if (modification.IsReset()) { Listeners.Reset(); _count = 0; _maxCharactersInLine = 0; } else if (modification.IsRemoved(out var removedSection)) { Listeners.Remove((int)removedSection.Index, removedSection.Count); _count = (int)removedSection.Index; // TODO: What about max width? } else if (modification.IsAppended(out var appendedSection)) { Listeners.OnRead(appendedSection.LastIndex); _count = (int)(appendedSection.Index + appendedSection.Count); UpdateMaxWidth(appendedSection, pair.Key); } workDone = true; } if (!workDone) { Listeners.OnRead(_count); } }
public void OnActivate() { Console = Get <TestConsole>().FirstOrDefault(); Console?.AddEntry(Category.Info).WriteLine("Hello World!"); Listeners.Add <Button>(ButtonEvents.Action, (b) => ClearConsole(), "Clear"); Listeners.Add <Button>(ButtonEvents.Action, (b) => Host(), "Host"); Listeners.Add <Button>(ButtonEvents.Action, (b) => Join(), "Join"); Listeners.Add <Button>(ButtonEvents.Action, (b) => Quit(), "Quit"); Listeners.Add <Button>(ButtonEvents.Action, (b) => Send(), "Send"); _client.DataRecieved += _client_DataRecieved; _server.DataRecieved += _server_DataRecieved; _client.Joined += _client_Joined; _client.Disconnect += _client_Disconnected; _server.Joined += _server_Joined; _server.Disconnect += _server_Disconnected; }
public async Task Shutdown() { Emit("ShuttingDown", true); _isReady = false; // Cleanup script file watcher if (_watchSubscription != null) { _watchSubscription.Dispose(); } _scriptRunner.Cleanup(); Listeners.Clear(); foreach (var adapter in _adapters.Values) { await adapter.Close(); } if (_brain != null) { await _brain.Close(); } Emit("ShutdownComplete", true); }
public string Serialize() { var rawLevelData = new RawLevelData(); rawLevelData.size = new RawLevelData.Size { width = Width, height = Height }; rawLevelData.spawnInfo = new RawLevelData.RawSpawnInfo { position = new RawLevelData.Coords { x = SpawnPosition.X, y = SpawnPosition.Y }, type = SpawnBig ? "big" : "small" }; rawLevelData.areas = Areas.Select(area => Area.ToRaw(area)).ToList(); rawLevelData.listeners = Listeners.Select(listener => Listener.ToRaw(listener)).ToList(); rawLevelData.entities = Entities.Select(entity => Entity.ToRaw(entity)).ToList(); rawLevelData.blocks = new List <IList <int> >(); for (int i = 0; i < Height; i++) { var blockList = new List <int>(); for (int j = 0; j < Width; j++) { blockList.Add(Blocks[i * Width + j].BlockId); } rawLevelData.blocks.Add(blockList); } return(JsonConvert.SerializeObject(rawLevelData, Formatting.None, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore })); }
public void Stop() { if (IsStopped) { return; } lock (SyncRoot) { if (IsStopped) { return; } IsStopped = true; for (var i = 0; i < Listeners.Count; i++) { var listener = Listeners[i]; listener.Stop(); } Listeners.Clear(); SendingQueuePool = null; IsRunning = false; foreach (var item in m_SocketPool) { item.SocketEventArgs.Dispose(); } m_SocketPool = null; m_ReceiveBufferManager = null; IsRunning = false; } }
/// <summary> /// Load Natives From URL /// </summary> /// <param name="f">this form </param> /// <param name="onNative">public class Form1 : Form, GTAVDB.Listeners.OnNativeListener</param> /// <param name="link">Provide Link to load natives</param> public static void LoadNatives(Form f, Listeners.OnNativeListener onNative,string link) { natives.Clear(); Thread t = new Thread(new ThreadStart(() => { try { isFinished = false; String backup = f.Text; f.Invoke(new Action(() => { f.Text = "Loading Natives..."; })); WebClient wc = new WebClient(); string file = wc.DownloadString(link); string[] s_native = file.Split(new string[] { "," }, StringSplitOptions.None); foreach (string native in s_native) { string[] hash = native.Split(new string[] { "=" }, StringSplitOptions.None); if (hash.Length > 1) { string name = hash[0].Trim(); UInt32 offset = Convert.ToUInt32(hash[1].Trim(), 16); if (!natives.ContainsKey(name)) { natives.Add(name, offset); } } } f.Invoke(new Action(() => { onNative.OnNativesLoaded("Loaded"); f.Text = "Natives Loaded"; new Thread(new ThreadStart(() => { Thread.Sleep(3000); f.Invoke(new Action(() => { f.Text = backup; isFinished = true; })); })).Start(); })); }catch(Exception ex){ f.Invoke(new Action(() => { onNative.OnNativesFailed("Failed To Load Natives"); })); } })); t.Start(); }
public static void LoadRPC(Form f, Listeners.OnNativeListener onNative) { using (OpenFileDialog ofd = new OpenFileDialog()) { ofd.Title = "Load RPC BASE From File"; DialogResult dr = ofd.ShowDialog(); if (dr == DialogResult.OK) { rpc.Clear(); Thread t = new Thread(new ThreadStart(() => { try { isFinished = false; String backup = f.Text; f.Invoke(new Action(() => { f.Text = "Loading RPC BASE..."; })); string file = System.IO.File.ReadAllText(ofd.FileName); string[] s_native = file.Split(new string[] { Environment.NewLine }, StringSplitOptions.None); foreach (string native in s_native) { string[] hash = native.Split(new string[] { "=" }, StringSplitOptions.None); if (hash.Length > 1) { string name = hash[0].Trim(); UInt32 offset = Convert.ToUInt32(hash[1].Trim(), 16); if (!rpc.ContainsKey(name)) { rpc.Add(name, offset); } } } isFinished = true; f.Invoke(new Action(() => { onNative.OnNativesLoaded("RPC BASE Loaded!"); f.Text = "RPC BASE Loaded"; new Thread(new ThreadStart(() => { Thread.Sleep(3000); f.Invoke(new Action(() => { f.Text = backup; })); })).Start(); })); } catch (Exception ex) { f.Invoke(new Action(() => { onNative.OnNativesFailed("Failed To Load RPC BASE"); })); } })); t.Start(); } else { } } }