jist.swans.trans
Class TransTcp

java.lang.Object
  extended by jist.swans.trans.TransTcp
All Implemented Interfaces:
JistAPI.Proxiable, JistAPI.Timeless, NetInterface.NetHandler, TransInterface, TransInterface.TransTcpInterface

public class TransTcp
extends java.lang.Object
implements TransInterface.TransTcpInterface

Implementation of TCP Transport Layer.

Since:
SWANS1.0
Version:
$Id: TransTcp.java,v 1.49 2004/04/06 16:07:51 barr Exp $
Author:
Kelwin Tamtoro <kt222@cs.cornell.edu>, Rimon Barr <barr+jist@cs.cornell.edu>

Nested Class Summary
static class TransTcp.TcpMessage
          Data structure for TCP Message.
static class TransTcp.TcpOptions
          Implementation for TCP Options.
 
Nested classes/interfaces inherited from interface jist.swans.trans.TransInterface
TransInterface.SocketHandler, TransInterface.TransMessage, TransInterface.TransTcpInterface, TransInterface.TransUdpInterface
 
Field Summary
private static int DROP_PROBABILITY
          probability (in percent) that a message will not be sent
private  java.util.HashMap handlers
          Hashmap to hold references to socket callbacks.
private  NetInterface netEntity
          Entity reference to network layer.
private  TransInterface.TransTcpInterface self
          Entity reference to itself.
 
Constructor Summary
TransTcp()
          Constructor.
 
Method Summary
 void addSocketHandler(int port, TransInterface.SocketHandler socketCallback)
          Register socket handler.
 boolean checkSocketHandler(int port)
          Return whether socket bound to port.
 void delSocketHandler(int port)
          Unregister socket handler.
 TransInterface.TransTcpInterface getProxy()
          Returns an entity reference to this object.
 void receive(Message msg, NetAddress src, MacAddress lastHop, byte macId, NetAddress dst, byte priority, byte ttl)
          Receive a message from network layer.
 void send(Message msg, NetAddress dst, int dstPort, int srcPort, byte priority)
          Send message (from APPLICATON).
 void setNetEntity(NetInterface netEntity)
          Sets the reference to the network layer.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DROP_PROBABILITY

private static final int DROP_PROBABILITY
probability (in percent) that a message will not be sent. (0 --> no packets are dropped; 100 --> no packets are transmitted)

See Also:
Constant Field Values

self

private TransInterface.TransTcpInterface self
Entity reference to itself.


netEntity

private NetInterface netEntity
Entity reference to network layer.


handlers

private java.util.HashMap handlers
Hashmap to hold references to socket callbacks.

Constructor Detail

TransTcp

public TransTcp()
Constructor.

Method Detail

getProxy

public TransInterface.TransTcpInterface getProxy()
Returns an entity reference to this object.

Returns:
entity reference to TransTcp itself

setNetEntity

public void setNetEntity(NetInterface netEntity)
Sets the reference to the network layer.

Parameters:
netEntity - entity reference to network layer

addSocketHandler

public void addSocketHandler(int port,
                             TransInterface.SocketHandler socketCallback)
Register socket handler.

Specified by:
addSocketHandler in interface TransInterface
Parameters:
port - bound socket port
socketCallback - callback handler

delSocketHandler

public void delSocketHandler(int port)
Unregister socket handler.

Specified by:
delSocketHandler in interface TransInterface
Parameters:
port - bound socket port

checkSocketHandler

public boolean checkSocketHandler(int port)
Return whether socket bound to port.

Specified by:
checkSocketHandler in interface TransInterface.TransTcpInterface
Parameters:
port - port to check
Returns:
whether socket bound to port

receive

public void receive(Message msg,
                    NetAddress src,
                    MacAddress lastHop,
                    byte macId,
                    NetAddress dst,
                    byte priority,
                    byte ttl)
Receive a message from network layer.

Specified by:
receive in interface NetInterface.NetHandler
Parameters:
msg - message received
src - source network address
lastHop - source link address
macId - incoming interface
dst - destination network address
priority - packet priority
ttl - packet time-to-live

send

public void send(Message msg,
                 NetAddress dst,
                 int dstPort,
                 int srcPort,
                 byte priority)
Send message (from APPLICATON).

Specified by:
send in interface TransInterface
Parameters:
msg - packet payload (usually from application layer)
dst - packet destination address
dstPort - packet destination port
srcPort - packet source port
priority - packet priority