/// <summary> /// Registers a listener for the specified message code. /// Messages without an explicit receiver are broadcasted to all its registered listeners. /// </summary> /// <param name="listener">the listener to add</param> /// <param name="message">the message code</param> public void AddListener(ITelegraph listener, int message) { IList <ITelegraph> listeners; if (!this.messageListeners.TryGetValue(message, out listeners)) { listeners = new List <ITelegraph>(); this.messageListeners.Add(message, listeners); } listeners.Add(listener); // Dispatch messages from registered providers IList <ITelegramProvider> providers; if (this.messageProviders.TryGetValue(message, out providers)) { for (int i = 0, n = providers.Count; i < n; i++) { ITelegramProvider provider = providers[i]; object info = provider.ProvideMessageInfo(message, listener); if (info != null) { ITelegraph sender = info as ITelegraph; this.DispatchMessage(message, 0, sender, listener, info); } } } }
/// <summary> /// Registers a provider for a selection of message types /// </summary> /// <param name="provider">the provider to add</param> /// <param name="messages">the message codes</param> public void AddProvider(ITelegramProvider provider, params int[] messages) { foreach (int message in messages) { this.AddProvider(provider, message); } }
/// <summary> /// Registers a provider for the specified message code /// </summary> /// <param name="provider">the message code</param> /// <param name="message">the provider to add</param> public void AddProvider(ITelegramProvider provider, int message) { IList <ITelegramProvider> providers; if (!this.messageProviders.TryGetValue(message, out providers)) { providers = new List <ITelegramProvider>(); this.messageProviders.Add(message, providers); } providers.Add(provider); }
public bool Login(string yourNumber) { _provider = TelegramFactory.GetProvider(); return(_provider.StartLogin(yourNumber).Sync()); }