Example #1
0
        /// <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);
                    }
                }
            }
        }
Example #2
0
 /// <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);
     }
 }
Example #3
0
        /// <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);
        }
Example #4
0
 public bool Login(string yourNumber)
 {
     _provider = TelegramFactory.GetProvider();
     return(_provider.StartLogin(yourNumber).Sync());
 }