コード例 #1
0
 public void Dismiss()
 {
     if (!_dismissed)
     {
         _dismissed = true;
         OtherEndpoint.Dismiss();
     }
 }
コード例 #2
0
            public void Forward(WireFrame frame)
            {
                if (_dismissed)
                {
                    return;
                }

                OtherEndpoint.Forward(frame);
            }
コード例 #3
0
                public void Forward(WireFrame frame)
                {
                    if (_dismissed)
                    {
                        return;
                    }

                    ++FrameCounter;

                    if (_recursion || _frameBuffer.Count > 0 || _decide())
                    {
                        _frameBuffer.Enqueue(frame);
                    }
                    else
                    {
                        _recursion = true;
                        OtherEndpoint.Forward(frame);
                        _recursion = false;
                    }
                }
コード例 #4
0
                public bool Flush()
                {
                    if (_frameBuffer.Count > 0)
                    {
                        var frame = _frameBuffer.Dequeue();
                        _recursion = true;
                        try
                        {
                            OtherEndpoint.Forward(frame);
                        }
                        catch (InvalidOperationException)
                        {
                        }
                        _recursion = false;

                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }