protected override void Build_Thread_Frames()
        {
            base.Build_Thread_Frames();

            if ( m_CurrentNetworkFrame == null )
            {
                m_CurrentNetworkFrame = new COutboundNetworkFrame();
            }

            if ( m_CurrentUIFrame == null )
            {
                m_CurrentUIFrame = new CUIOutputFrame();
            }
        }
        protected override void Flush_Data_Frames( long current_time )
        {
            base.Flush_Data_Frames( current_time );

            if ( !m_CurrentNetworkFrame.Empty )
            {
                m_NetworkDataInterface.Send( m_CurrentNetworkFrame );
                m_CurrentNetworkFrame = null;
            }

            if ( !m_CurrentUIFrame.Empty )
            {
                m_UIDataInterface.Send( m_CurrentUIFrame );
                m_CurrentUIFrame = null;
            }
        }
        protected override void Shutdown()
        {
            base.Shutdown();

            m_CurrentNetworkFrame = null;
            m_CurrentUIFrame = null;
        }
 private void Service_Output_Frame( CUIOutputFrame frame )
 {
     foreach ( var notice in frame.Notifications )
     {
         if ( !CGenericHandlerManager.Instance.Try_Handle( notice ) )
         {
             throw new CApplicationException( "Unhandleable input notification" );
         }
     }
 }