clean up threads and timers
[fanfix.git] / src / jexer / backend / Backend.java
index d7ef9119eefbe624ceb325995d6da0b1dff37401..71c2ef01b14f62640e3b35e3e1c537db088d6460 100644 (file)
@@ -1,16 +1,11 @@
 /**
  * Jexer - Java Text User Interface
  *
- * Version: $Id$
- *
- * Author: Kevin Lamonte, <a href="mailto:kevin.lamonte@gmail.com">kevin.lamonte@gmail.com</a>
- *
  * License: LGPLv3 or later
  *
- * Copyright: This module is licensed under the GNU Lesser General
- * Public License Version 3.  Please see the file "COPYING" in this
- * directory for more information about the GNU Lesser General Public
- * License Version 3.
+ * This module is licensed under the GNU Lesser General Public License
+ * Version 3.  Please see the file "COPYING" in this directory for more
+ * information about the GNU Lesser General Public License Version 3.
  *
  *     Copyright (C) 2015  Kevin Lamonte
  *
  * http://www.gnu.org/licenses/, or write to the Free Software
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  * 02110-1301 USA
+ *
+ * @author Kevin Lamonte [kevin.lamonte@gmail.com]
+ * @version 1
  */
 package jexer.backend;
 
 import java.util.List;
+
 import jexer.event.TInputEvent;
 import jexer.io.Screen;
 import jexer.session.SessionInfo;
@@ -45,35 +44,51 @@ import jexer.session.SessionInfo;
 public abstract class Backend {
 
     /**
-     * The session information
+     * The session information.
      */
-    public SessionInfo session;
+    protected SessionInfo sessionInfo;
 
     /**
-     * The screen to draw on
+     * Getter for sessionInfo.
+     *
+     * @return the SessionInfo
      */
-    public Screen screen;
+    public final SessionInfo getSessionInfo() {
+        return sessionInfo;
+    }
+
+    /**
+     * The screen to draw on.
+     */
+    protected Screen screen;
+
+    /**
+     * Getter for screen.
+     *
+     * @return the Screen
+     */
+    public final Screen getScreen() {
+        return screen;
+    }
 
     /**
      * Subclasses must provide an implementation that syncs the logical
      * screen to the physical device.
      */
-    abstract public void flushScreen();
+    public abstract void flushScreen();
 
     /**
      * Subclasses must provide an implementation to get keyboard, mouse, and
      * screen resize events.
      *
-     * @param timeout maximum amount of time to wait for an event
-     * @return events received, or an empty list if the timeout was reached
+     * @param queue list to append new events to
      */
-    abstract public List<TInputEvent> getEvents(int timeout);
+    public abstract void getEvents(List<TInputEvent> queue);
 
     /**
      * Subclasses must provide an implementation that closes sockets,
      * restores console, etc.
      */
-    abstract public void shutdown();
+    public abstract void shutdown();
 
 }
-