Example #1
0
        private string Read()
        {
            if (!Connected)
            {
                return(null);
            }
            DateTime startedReadingTime = DateTime.Now;
            var      sb = new StringBuilder();

            do
            {
                if (ParseTelnet(sb))
                {
                    break;
                }
                if (startedReadingTime.Add(timeoutTime) < DateTime.Now)
                {
                    timeouted = true;
                    Stop();
                    return(string.Empty);
                }
            } while(Connected);

            string str = sb.ToString();

            if (str.IndexOf("notify") == 0)
            {
                EventHandled?.Invoke(this, str);
            }

            return(sb.ToString().TrimEnd());
        }
Example #2
0
        protected virtual void Dispose(Boolean disposing)
        {
            if (System.Threading.Interlocked.Exchange(ref disposed, 1) == 1)
            {
                return;
            }

            Unsubscribe();

            if (disposing)
            {
                foreach (var eh in EventHandled.GetInvocationList())
                {
                    EventHandled -= (EventHandler <BusEventArgs <TEvent> >)eh;
                }
                foreach (var eh in EventReceived.GetInvocationList())
                {
                    EventReceived -= (EventHandler <BusEventArgs <TEvent> >)eh;
                }
            }
        }
Example #3
0
        /// <summary>
        /// Releases unmanaged and - optionally - managed resources
        /// </summary>
        /// <param name="disposing"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
        private void Dispose(Boolean disposing)
        {
            if (Interlocked.Exchange(ref disposed, 1) == 1)
            {
                return;
            }

            if (disposing)
            {
                Unsubscribe();

                foreach (Delegate d in EventHandled.GetInvocationList())
                {
                    EventHandled -= (EventHandler <BusEventArgs <TEvent> >)d;
                }
                foreach (Delegate d in EventReceived.GetInvocationList())
                {
                    EventReceived -= (EventHandler <BusEventArgs <TEvent> >)d;
                }
            }
        }