Class TerminalHost

java.lang.Object
com.iizix.term.server.TerminalHost
All Implemented Interfaces:
HostSessionListener, HostSessionOwner

public class TerminalHost extends Object implements HostSessionOwner
The terminal host implementation running a terminal of 3270, 5020 or EE type.
Author:
Christopher Mindus
  • Constructor Details

    • TerminalHost

      public TerminalHost(TerminalProps terminalProps, AppSessionGyro appGyro)
      The constructor.
      Parameters:
      terminalProps - The terminal properties.
      appGyro - The application session gyro.
  • Method Details

    • dispose

      public void dispose()
      Dispose.
    • addListener

      public boolean addListener(ITerminalStateListener listener)
      Adds a new listeners. Calling this method multiple times with the same listener will have no effect (but to return false).
      Parameters:
      listener - The listener to add.
      Returns:
      true if the listener was added, false otherwise.
      Throws:
      NullPointerException - If the listener is null.
    • removeListener

      public boolean removeListener(ITerminalStateListener listener)
      Removes a listener.
      Parameters:
      listener - The listener to remove.
      Returns:
      true if listener is successfully removed, false otherwise.
    • createHostSession

      public HostSession createHostSession() throws IOException
      Creates a HostSession if not already created.
      Returns:
      Thew new or existing host session, never null.
      Throws:
      IOException - For failures when creating SSL engine.
    • getHostSession

      public HostSession getHostSession()
      Gets the host session instance.
      Returns:
      The host session, null if none is created.
    • getMatchingScreens

      public ScreenProp[] getMatchingScreens()
      Gets the matching screens.
      Returns:
      Matching screens array, never null.
    • onScreenChanged

      public void onScreenChanged(ScreenProp screen, boolean isRemoved)
      Method to refresh the matching screens when one has been changed.
      Parameters:
      screen - The changed screen or null for all.
      isRemoved - Flag for removed.
    • onHostDataStreamProcessing

      public int onHostDataStreamProcessing(HostSessionPeer peer, boolean isEntering)
      Called when the datastream enters or exits processing. This enables the owner to "group" multiple notification events together.
      Specified by:
      onHostDataStreamProcessing in interface HostSessionOwner
      Parameters:
      peer - The peer.
      isEntering - Flag for entering or exiting.
      Returns:
      Bit flags 0x01 = characters changed, 0x02=fields changed.
    • onHostPrintPage

      public void onHostPrintPage(HostSessionPeer peer)
      Called when a host printer needs printing of a new page.
      Specified by:
      onHostPrintPage in interface HostSessionOwner
      Parameters:
      peer - The peer.
    • printSession

      public boolean printSession(HostSessionPeer peer)
      Called when the host (mainframe) has issued a Print Session (Print Local Copy).
      Specified by:
      printSession in interface HostSessionOwner
      Parameters:
      peer - The peer.
      Returns:
      true for success, false for cancel.
    • getWorker

      public Worker getWorker() throws IOException
      Gets the worker of the session.
      Specified by:
      getWorker in interface HostSessionOwner
      Returns:
      The worker.
      Throws:
      IOException - For error when getting the worker.
    • getSessionInfo

      public SessionInfo getSessionInfo()
      Gets the SessionInfo.
      Specified by:
      getSessionInfo in interface HostSessionOwner
      Returns:
      The session info, never null.
    • onScreenChange

      public void onScreenChange(HostSessionPeer peer, int beginPos, int endPos)
      Notifies the session of a screen change.
      Specified by:
      onScreenChange in interface HostSessionListener
    • onFieldChange

      public void onFieldChange(HostSessionPeer peer)
      Notifies the session that fields have changed.
      Specified by:
      onFieldChange in interface HostSessionListener
    • onScreenSizeChange

      public void onScreenSizeChange(HostSessionPeer peer, int cx, int cy)
      Notifies the session that the screen size has changed.
      Specified by:
      onScreenSizeChange in interface HostSessionListener
    • onCursorPositionChange

      public void onCursorPositionChange(HostSessionPeer peer, int x, int y)
      Notifies the session that the cursor position has changed.
      Specified by:
      onCursorPositionChange in interface HostSessionListener
    • onConnectChange

      public void onConnectChange(HostSessionPeer peer, boolean connected)
      Notifies the session of a connect state change.
      Specified by:
      onConnectChange in interface HostSessionListener
    • onStateChange

      public void onStateChange(HostSessionPeer peer)
      Notifies the session of a state change (such as insert mode, lock state, error state).
      Specified by:
      onStateChange in interface HostSessionListener
    • onSessionFailure

      public void onSessionFailure(HostSessionPeer peer, Throwable exception)
      Called when a session has had a failure.
      Specified by:
      onSessionFailure in interface HostSessionListener
    • onHostDataStreamProcessing

      public void onHostDataStreamProcessing(HostSessionPeer peer, boolean isEntering, int updates)
      Data stream processing notification method.
      Specified by:
      onHostDataStreamProcessing in interface HostSessionListener
      Parameters:
      peer - The peer.
      isEntering - The state of processing (true=before, false=after).
      updates - What has been updated on screen (bit flag: 0x01=characters, 0x02=fields).
    • soundAlarm

      public void soundAlarm(HostSessionPeer peer)
      Sound alarm on the client.
      Specified by:
      soundAlarm in interface HostSessionListener
    • isConnectEnabled

      public boolean isConnectEnabled()
      Checks if session is connectable.
      Returns:
      true if connectable.
    • isSuspendEnabled

      public boolean isSuspendEnabled()
      Checks if session can be suspended.
      Returns:
      true if suspendable.
    • isResumeEnabled

      public boolean isResumeEnabled()
      Checks if session can be resumed.
      Returns:
      true if resumeable.
    • isDisconnectEnabled

      public boolean isDisconnectEnabled()
      Checks if session is disconnectable.
      Returns:
      true if disconnectable.