org.vrspace.util
Class Connection

java.lang.Object
  extended byjava.util.Observable
      extended byorg.vrspace.util.Connection
All Implemented Interfaces:
java.lang.Runnable
Direct Known Subclasses:
BinaryConnection, PipedConnection

public class Connection
extends java.util.Observable
implements java.lang.Runnable

Default network connection to the server.


Field Summary
protected  boolean active
          is it connected
protected  java.lang.String host
           
protected  java.io.InputStream in
           
protected  Queue inQueue
           
protected  java.lang.String login
           
protected  int maxTries
          max number of reconnect tries
protected  java.io.OutputStream out
           
protected  Queue outQueue
           
protected  java.lang.String password
           
protected  int port
           
protected  java.io.BufferedReader reader
           
protected  boolean reconnect
          should it reconnect on error
protected  java.net.Socket socket
           
static char TERMINATOR
          EOF mark
protected  int tries
          current tries, used by login & reconnect
protected  java.io.PrintWriter writer
           
 
Constructor Summary
Connection()
           
Connection(java.net.Socket socket)
           
Connection(java.lang.String host, int port, java.lang.String login, java.lang.String password)
          Creates new Connection to host:port and loggs in as login with password
Connection(java.lang.String hostPort, java.lang.String login, java.lang.String password)
          Creates new Connection to hostPort and loggs in as login with password, assuming that hostPort is "host:port" pair
 
Method Summary
 void addObserver(java.util.Observer o)
          stop caching requests
 void close()
          Closes the connection
 java.lang.String getHostName()
          Returns the host name
 int getHostPort()
          Return the host port
 java.lang.String getLogin()
           
 boolean isActive()
          Connection active?
 void login(java.lang.String host, int port, int proxyPort, java.lang.String login, java.lang.String password)
          Login to host:port as login with password
 void login(java.lang.String host, int port, java.lang.String login, java.lang.String password)
          Login to host:port as login with password
 void login(java.lang.String hostPort, java.lang.String login, java.lang.String password)
          Login to hostPort ("host:port") as login with password
 void quit()
          Waits for this connection to die (get closed by peer)
protected  java.lang.String read()
          Used to read one line from the network, called from run()
protected  void reconnect(java.lang.Exception e)
          Reconnect if connection throwed an exception
 void run()
          Interface java.lang.Runnable - reading from network
 void send(java.lang.String s)
          Sends one line to the server, calls write()
 void setLogin(java.lang.String login)
           
 void setMaxTries(int maxTries)
          Set the maximum number of attempts
protected  void write(java.lang.String s)
          Used to write one line to network, called from send()
 
Methods inherited from class java.util.Observable
clearChanged, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers, setChanged
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

socket

protected java.net.Socket socket

in

protected java.io.InputStream in

out

protected java.io.OutputStream out

reader

protected java.io.BufferedReader reader

writer

protected java.io.PrintWriter writer

TERMINATOR

public static final char TERMINATOR
EOF mark

See Also:
Constant Field Values

host

protected java.lang.String host

port

protected int port

login

protected java.lang.String login

password

protected java.lang.String password

active

protected boolean active
is it connected


reconnect

protected boolean reconnect
should it reconnect on error


tries

protected int tries
current tries, used by login & reconnect


maxTries

protected int maxTries
max number of reconnect tries


inQueue

protected Queue inQueue

outQueue

protected Queue outQueue
Constructor Detail

Connection

public Connection()

Connection

public Connection(java.net.Socket socket)

Connection

public Connection(java.lang.String host,
                  int port,
                  java.lang.String login,
                  java.lang.String password)
           throws ConnectionException
Creates new Connection to host:port and loggs in as login with password

Throws:
ConnectionException - if login fails

Connection

public Connection(java.lang.String hostPort,
                  java.lang.String login,
                  java.lang.String password)
           throws ConnectionException
Creates new Connection to hostPort and loggs in as login with password, assuming that hostPort is "host:port" pair

Throws:
ConnectionException - if login fails
Method Detail

login

public void login(java.lang.String hostPort,
                  java.lang.String login,
                  java.lang.String password)
           throws ConnectionException
Login to hostPort ("host:port") as login with password

Throws:
ConnectionException - if login fails

login

public void login(java.lang.String host,
                  int port,
                  java.lang.String login,
                  java.lang.String password)
           throws ConnectionException
Login to host:port as login with password

Throws:
ConnectionException - if login fails

login

public void login(java.lang.String host,
                  int port,
                  int proxyPort,
                  java.lang.String login,
                  java.lang.String password)
           throws ConnectionException
Login to host:port as login with password

Throws:
ConnectionException - if login fails

addObserver

public void addObserver(java.util.Observer o)
stop caching requests


isActive

public boolean isActive()
Connection active?


reconnect

protected void reconnect(java.lang.Exception e)
Reconnect if connection throwed an exception


run

public void run()
Interface java.lang.Runnable - reading from network

Specified by:
run in interface java.lang.Runnable

read

protected java.lang.String read()
                         throws java.io.IOException,
                                ConnectionException
Used to read one line from the network, called from run()

Throws:
java.io.IOException
ConnectionException

write

protected void write(java.lang.String s)
Used to write one line to network, called from send()


send

public void send(java.lang.String s)
Sends one line to the server, calls write()


getHostName

public java.lang.String getHostName()
Returns the host name


getHostPort

public int getHostPort()
Return the host port


getLogin

public java.lang.String getLogin()

setLogin

public void setLogin(java.lang.String login)

close

public void close()
           throws java.io.IOException
Closes the connection

Throws:
java.io.IOException

quit

public void quit()
Waits for this connection to die (get closed by peer)


setMaxTries

public void setMaxTries(int maxTries)
Set the maximum number of attempts