|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--solar.service.transport.TcpTransport
The TCP transport layer, converting ADU to bytes before sending.
Field Summary | |
protected AduFactory |
_aduFactory
The factory to parse received byte array into ADU. |
protected java.util.Hashtable |
_flows
The table of live connections. |
protected java.lang.String |
_hostname
Particular interface to bind to. |
protected Address |
_laddr
The local address for TCP. |
protected java.util.List |
_listeners
The list of TCP listeners. |
protected static org.apache.log4j.Logger |
_log
Logging facility. |
protected int |
_port
The listening server port. |
protected java.lang.Thread |
_server
The server thread accepting new connection. |
protected java.net.ServerSocket |
_ssock
The listening server socket. |
Constructor Summary | |
TcpTransport()
Constructs a new TCP transport, which listens on an available port. |
|
TcpTransport(int port)
Constructs a new TCP transport, which listens on a specified port. |
|
TcpTransport(java.lang.String hostname,
int port)
|
Method Summary | |
protected void |
addConnection(SocketAddress peer,
TcpConnection conn)
Add a new connection to peer address. |
void |
addTransportListener(TransportListener listener)
Add a transport listener. |
protected void |
clearConnections()
Remove all the connections. |
Address |
getAddressByKey(java.lang.String key)
Return a peer address by specified key. |
AduFactory |
getAduFactory()
Return the factory producing Adu from byte array. |
protected TcpConnection |
getConnection(SocketAddress peer)
Get the connection for specified peer address. |
Address |
getLocalAddress()
Return the local address of this transport layer. |
org.apache.log4j.Logger |
getLogger()
Return the logger of this transport. |
int |
getPort()
Return the port number listened by this transport. |
protected TcpConnection |
makeTcpConnection(java.net.Socket socket,
SocketAddress peer)
Create a TcpConenction based on the socket and peer address. |
void |
notifyConnectionClosed(SocketAddress peer)
Notify transport listeners about closed connection. |
void |
notifyConnectionOpened(SocketAddress peer)
Notify transport listeners about new connection. |
void |
notifyDataReceived(Adu adu,
Header header)
Notify transport listeners about received data. |
protected TcpConnection |
openConnection(SocketAddress dest)
Open a new connection to a specified address. |
protected void |
removeConnection(SocketAddress peer)
Remove a connection to a peer address. |
void |
removeTransportListener(TransportListener listener)
Remove a transport listener. |
void |
run()
|
void |
send(Adu adu,
Address dest)
Send the adu over transport to destination. |
void |
send(Adu adu,
Address dest,
Id multiplex)
Send the adu over transport to destination, with a multipex ID. |
void |
send(byte[] data,
Address dest)
Send an data unit to destination address. |
void |
send(byte[] data,
Address dest,
Id multiplex)
Send an data unit to destination address with a multiplexer. |
void |
setAduFactory(AduFactory factory)
Set the factory that parse the received bytes into data unit. |
private void |
start()
Start the TCP transport. |
void |
stop()
Stop the transport layer. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
protected static org.apache.log4j.Logger _log
protected java.lang.String _hostname
protected int _port
protected java.net.ServerSocket _ssock
protected java.lang.Thread _server
protected java.util.Hashtable _flows
protected java.util.List _listeners
protected Address _laddr
protected AduFactory _aduFactory
Constructor Detail |
public TcpTransport() throws java.lang.Exception
public TcpTransport(int port) throws java.lang.Exception
public TcpTransport(java.lang.String hostname, int port) throws java.lang.Exception
Method Detail |
private void start() throws java.lang.Exception
java.lang.Exception
public void setAduFactory(AduFactory factory)
Transport
setAduFactory
in interface Transport
public Address getLocalAddress()
Transport
getLocalAddress
in interface Transport
public Address getAddressByKey(java.lang.String key) throws TransportException
Transport
getAddressByKey
in interface Transport
TransportException
public void send(byte[] data, Address dest) throws TransportException
Transport
send
in interface Transport
TransportException
public void send(byte[] data, Address dest, Id multiplex) throws TransportException
Transport
send
in interface Transport
TransportException
public void send(Adu adu, Address dest) throws TransportException
Transport
send
in interface Transport
TransportException
public void send(Adu adu, Address dest, Id multiplex) throws TransportException
Transport
send
in interface Transport
TransportException
public void addTransportListener(TransportListener listener)
Transport
addTransportListener
in interface Transport
public void removeTransportListener(TransportListener listener)
Transport
removeTransportListener
in interface Transport
public void stop()
Transport
stop
in interface Transport
protected TcpConnection makeTcpConnection(java.net.Socket socket, SocketAddress peer) throws java.lang.Exception
java.lang.Exception
public int getPort()
public org.apache.log4j.Logger getLogger()
public AduFactory getAduFactory()
public void notifyDataReceived(Adu adu, Header header)
public void notifyConnectionOpened(SocketAddress peer)
public void notifyConnectionClosed(SocketAddress peer)
protected TcpConnection getConnection(SocketAddress peer)
protected void addConnection(SocketAddress peer, TcpConnection conn)
protected void removeConnection(SocketAddress peer)
protected TcpConnection openConnection(SocketAddress dest) throws java.lang.Exception
java.lang.Exception
protected void clearConnections()
public void run()
run
in interface java.lang.Runnable
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |