equip.net
Class ConnectionSapJcp

java.lang.Object
  extended byequip.net.ConnectionSap
      extended byequip.net.ConnectionSapJcp
All Implemented Interfaces:
java.lang.Runnable

public class ConnectionSapJcp
extends ConnectionSap
implements java.lang.Runnable

JCP class implementing ConnectionSap for JCP. This code has been generated using C2J++ C2J++ is based on Chris Laffra's C2J (laffra@watson.ibm.com) Read general disclaimer distributed with C2J++ before using this code For information about C2J++, send mail to Ilya_Tilevich@ibi.com


Nested Class Summary
 
Nested classes inherited from class equip.net.ConnectionSap
ConnectionSap.KeepAliveThreadData
 
Field Summary
(package private)  int advertisedReceiveWindow
           
(package private)  java.util.Vector completedObjectFragments
           
(package private)  float conjestionWindow
           
(package private)  float connectionStrength
           
(package private)  int connectionStrengthHistorySize
           
static boolean debug
           
static boolean debug2
           
static boolean debugCon
           
static boolean debugRate
           
static boolean debugRetrans
           
(package private)  Timer delayedAckTimer
           
(package private)  int duplicateAcks
           
(package private)  boolean fastRetransmit
           
(package private)  boolean firstPartialAck
           
(package private)  int highestSeq
           
(package private)  Timer keepAliveTimer
           
(package private)  int maxFragmentSize
           
(package private)  int maxReceiveWindow
           
(package private)  int maxRetransmissionTimeout
           
(package private)  int maxUnsentFragments
           
(package private)  int minRetransmissionTimeout
           
(package private)  java.util.Vector receivedFragments
           
(package private)  int receiveLastRSeq
           
static double receiveLossRate
           
(package private)  int receiveNextSeq
           
(package private)  java.lang.Thread receiveThread
           
(package private)  int recover
           
(package private)  Timer retransmissionTimer
           
(package private)  RoundTripTimer roundTripTimer
           
(package private)  int sendLastAck
           
(package private)  int sendLastRSeq
           
static double sendLossRate
           
(package private)  int sendNextSeq
           
(package private)  int sendWindow
           
(package private)  int sendWindow1
           
(package private)  int sendWindow2
           
(package private)  int slowStartThreshold
           
(package private)  java.net.DatagramSocket socket
           
(package private)  int state
           
(package private) static int STATE_CLOSE_WAIT
           
(package private) static int STATE_CLOSED
           
(package private) static int STATE_CLOSING
           
(package private) static int STATE_ESTABLISHED
           
(package private) static int STATE_FIN_WAIT_1
           
(package private) static int STATE_FIN_WAIT_2
           
(package private) static int STATE_LAST_ACK
           
(package private) static int STATE_LISTEN
           
(package private) static int STATE_SYN_RCVD
           
(package private) static int STATE_SYN_SENT
           
(package private) static int STATE_TIME_WAIT
           
(package private)  Timer timeoutTimer
           
 int UNACKED
           
(package private)  java.util.Vector unackedFragments
           
 int UNKNOWN
           
 int UNSENT
           
(package private)  java.util.Vector unsentFragments
           
 
Fields inherited from class equip.net.ConnectionSap
connectedFlag, connectionTimeoutFlag, connectionTimeoutMs, DEBUG_TCP, keepAliveThread, keepAliveThreadData, keepAliveTimeMs, lastNewSendTimeMs, lastResponseTimeMs, lastSendTimeMs, localAddress, localPort, lock, nextObjectId, probingIntervalMs, recvBufSize, recvTimeoutMs, remoteAddress, remotePort, sendBufSize, slowResponseFlag, slowResponseTimeMs, status
 
Constructor Summary
ConnectionSapJcp(java.net.DatagramPacket packet)
          ConnectionSapJcp
ConnectionSapJcp(int remoteAddress, short remotePort)
          ConnectionSapJcp
ConnectionSapJcp(int remoteAddress, short remotePort, java.net.DatagramSocket socket)
          ConnectionSapJcp
 
Method Summary
protected  void abort()
          abort
protected  void ack()
          ack
protected  void ackNow()
          ackNow
protected  void addReceivedFragment(JcpFragment f)
          addReceivedFragment
protected  void buildObject(int objectStart, int objectEnd)
          buildObject
 int cancelObject(int object_id)
          cancelObject
 void close(boolean flushFlag)
          close
protected  void closed()
          closed Clean up after abort or close.
protected  void fin()
          fin
 float getConnectionStrength()
          getConnectionStrength
 int getObjectStatus(int object_id)
          getObjectStatus
 int getProtocol()
          getProtocol
protected  int getReceiveWindow()
          getReceiveWindow
 int getUnsentObjects()
          getUnsentObjects
protected  JcpFragment makeFragment(Mbuf data, int flags)
          makeFragment
protected  boolean output()
          output
protected  void outputFragment(JcpFragment f)
          outputFragment
(package private)  void printRateState(java.lang.String where)
           
 void printState(int state)
          printState
(package private)  void printState(java.lang.String where)
          printState
 void printState(java.lang.String where, boolean debug2)
           
protected  void processFragment(JcpFragment f)
          processFragment
 ValueBase readObject()
          readObject
protected  int receiveFragment(JcpFragment f)
          receiveFragment
(package private)  void receivePacket(java.net.DatagramPacket packet)
          receivePacket
protected  void reset()
          reset Send reset dependent on state, then close.
 int resetConnectionTimeoutFlag()
          resetConnectionTimeoutFlag
protected  void retransmit()
          retransmit
protected  void retransmitFragment(JcpFragment f)
          sendDelayedAck protected /** retransmitFragment
 void run()
          receiveThreadFunction
protected  boolean sendAllowed(JcpFragment f)
          sendAllowed
protected  boolean seqGreaterThan(int a, int b)
          seqGreaterThan
protected  boolean seqGreaterThanEqual(int a, int b)
          seqGreaterThanEqual
protected  boolean seqLessThan(int a, int b)
          seqLessThan
protected  boolean seqLessThanEqual(int a, int b)
          seqLessThanEqual
 void setConnectionStrengthHistorySize(int size)
          setConnectionStrengthHistorySize
 void setConnectionTimeout(int timeoutMs)
          setConnectionTimeout
 void setDelayedAckTimeout(int timeoutMs)
          setDelayedAckTimeout
 void setKeepAliveTime(int timeMs)
          setKeepAliveTime
 void setMaximumFragmentSize(int size)
          setMaximumFragmentSize
 void setMaximumRetransmissionTimeout(int timeoutMs)
          setMaximumRetransmissionTimeout
 void setMinimumRetransmissionTimeout(int timeoutMs)
          setMinimumRetransmissionTimeout
 void setRecvBufSize(int size)
          setRecvBufSize
 void setSendBufSize(int size)
          setSendBufSize
 void setTimerGrainularity(int timeoutMs)
          setTimerGrainularity
protected  void syn()
          syn
protected  void synack()
          synack
 int waitUntilConnected()
          waitUntilConnected
 int writeObject(ValueBase object, boolean reliableFlag, int[] object_id)
           
 int writeObject(ValueBase object, boolean reliableFlag, int[] object_id, int priority)
          writeObject
 int writeObjectLocked(ValueBase object, boolean reliableFlag, int[] object_id, int priority)
           
 
Methods inherited from class equip.net.ConnectionSap
close, getConnectedFlag, getConnectionTimeout, getConnectionTimeoutFlag, getKeepAliveTime, getLocalAddress, getLocalPort, getProbingInterval, getRecvBufSize, getRecvTimeout, getRemoteAddress, getRemotePort, getSendBufSize, getSlowResponseFlag, getSlowResponseTime, getStatus, keepAliveThreadFn, noteReceivedObject, setProbingInterval, setRecvTimeout, setSlowResponseTime, writeObject
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

debug

public static boolean debug

debug2

public static boolean debug2

debugCon

public static boolean debugCon

debugRetrans

public static boolean debugRetrans

debugRate

public static boolean debugRate

receiveLossRate

public static double receiveLossRate

sendLossRate

public static double sendLossRate

retransmissionTimer

Timer retransmissionTimer

delayedAckTimer

Timer delayedAckTimer

timeoutTimer

Timer timeoutTimer

keepAliveTimer

Timer keepAliveTimer

roundTripTimer

RoundTripTimer roundTripTimer

duplicateAcks

int duplicateAcks

fastRetransmit

boolean fastRetransmit

slowStartThreshold

int slowStartThreshold

connectionStrength

float connectionStrength

STATE_LISTEN

static final int STATE_LISTEN
See Also:
Constant Field Values

STATE_CLOSED

static final int STATE_CLOSED
See Also:
Constant Field Values

STATE_SYN_SENT

static final int STATE_SYN_SENT
See Also:
Constant Field Values

STATE_SYN_RCVD

static final int STATE_SYN_RCVD
See Also:
Constant Field Values

STATE_ESTABLISHED

static final int STATE_ESTABLISHED
See Also:
Constant Field Values

STATE_FIN_WAIT_1

static final int STATE_FIN_WAIT_1
See Also:
Constant Field Values

STATE_FIN_WAIT_2

static final int STATE_FIN_WAIT_2
See Also:
Constant Field Values

STATE_CLOSE_WAIT

static final int STATE_CLOSE_WAIT
See Also:
Constant Field Values

STATE_CLOSING

static final int STATE_CLOSING
See Also:
Constant Field Values

STATE_LAST_ACK

static final int STATE_LAST_ACK
See Also:
Constant Field Values

STATE_TIME_WAIT

static final int STATE_TIME_WAIT
See Also:
Constant Field Values

socket

java.net.DatagramSocket socket

unsentFragments

java.util.Vector unsentFragments

unackedFragments

java.util.Vector unackedFragments

receivedFragments

java.util.Vector receivedFragments

completedObjectFragments

java.util.Vector completedObjectFragments

receiveThread

java.lang.Thread receiveThread

receiveNextSeq

int receiveNextSeq

receiveLastRSeq

int receiveLastRSeq

maxReceiveWindow

int maxReceiveWindow

sendLastAck

int sendLastAck

sendNextSeq

int sendNextSeq

highestSeq

int highestSeq

recover

int recover

firstPartialAck

boolean firstPartialAck

sendLastRSeq

int sendLastRSeq

sendWindow

int sendWindow

sendWindow1

int sendWindow1

sendWindow2

int sendWindow2

maxUnsentFragments

int maxUnsentFragments

conjestionWindow

float conjestionWindow

state

int state

maxFragmentSize

int maxFragmentSize

minRetransmissionTimeout

int minRetransmissionTimeout

maxRetransmissionTimeout

int maxRetransmissionTimeout

connectionStrengthHistorySize

int connectionStrengthHistorySize

advertisedReceiveWindow

int advertisedReceiveWindow

UNSENT

public final int UNSENT
See Also:
Constant Field Values

UNACKED

public final int UNACKED
See Also:
Constant Field Values

UNKNOWN

public final int UNKNOWN
See Also:
Constant Field Values
Constructor Detail

ConnectionSapJcp

public ConnectionSapJcp(int remoteAddress,
                        short remotePort,
                        java.net.DatagramSocket socket)
ConnectionSapJcp

Parameters:
remoteAddress -
remotePort -
socket -

ConnectionSapJcp

public ConnectionSapJcp(int remoteAddress,
                        short remotePort)
ConnectionSapJcp

Parameters:
remoteAddress -
remotePort -

ConnectionSapJcp

public ConnectionSapJcp(java.net.DatagramPacket packet)
ConnectionSapJcp

Parameters:
packet -
Method Detail

printState

public void printState(int state)
printState


printState

void printState(java.lang.String where)
printState


printState

public void printState(java.lang.String where,
                       boolean debug2)

printRateState

void printRateState(java.lang.String where)

getProtocol

public int getProtocol()
getProtocol

Specified by:
getProtocol in class ConnectionSap
Returns:
SapProtocol

waitUntilConnected

public int waitUntilConnected()
waitUntilConnected

Specified by:
waitUntilConnected in class ConnectionSap
Returns:
int

close

public void close(boolean flushFlag)
close

Specified by:
close in class ConnectionSap
Parameters:
flushFlag -

readObject

public ValueBase readObject()
                     throws java.io.IOException
readObject

Specified by:
readObject in class ConnectionSap
Returns:
int
Throws:
java.io.IOException

getUnsentObjects

public int getUnsentObjects()
getUnsentObjects

Returns:
int

cancelObject

public int cancelObject(int object_id)
cancelObject

Specified by:
cancelObject in class ConnectionSap
Parameters:
object_id -
Returns:
int

getObjectStatus

public int getObjectStatus(int object_id)
getObjectStatus

Parameters:
object_id -
Returns:
int, UNSENT,UNACKED,UNKNOWN

writeObjectLocked

public int writeObjectLocked(ValueBase object,
                             boolean reliableFlag,
                             int[] object_id,
                             int priority)
Specified by:
writeObjectLocked in class ConnectionSap

writeObject

public int writeObject(ValueBase object,
                       boolean reliableFlag,
                       int[] object_id)

writeObject

public int writeObject(ValueBase object,
                       boolean reliableFlag,
                       int[] object_id,
                       int priority)
writeObject

Overrides:
writeObject in class ConnectionSap
Parameters:
object -
reliableFlag -
object_id -
priority -
Returns:
int

setSendBufSize

public void setSendBufSize(int size)
setSendBufSize

Overrides:
setSendBufSize in class ConnectionSap
Parameters:
size -

setRecvBufSize

public void setRecvBufSize(int size)
setRecvBufSize

Overrides:
setRecvBufSize in class ConnectionSap
Parameters:
size -

setKeepAliveTime

public void setKeepAliveTime(int timeMs)
setKeepAliveTime

Overrides:
setKeepAliveTime in class ConnectionSap
Parameters:
timeMs -

setConnectionTimeout

public void setConnectionTimeout(int timeoutMs)
setConnectionTimeout

Overrides:
setConnectionTimeout in class ConnectionSap
Parameters:
timeoutMs -

resetConnectionTimeoutFlag

public int resetConnectionTimeoutFlag()
resetConnectionTimeoutFlag

Overrides:
resetConnectionTimeoutFlag in class ConnectionSap
Returns:
int

setMaximumFragmentSize

public void setMaximumFragmentSize(int size)
setMaximumFragmentSize

Parameters:
size -

setMinimumRetransmissionTimeout

public void setMinimumRetransmissionTimeout(int timeoutMs)
setMinimumRetransmissionTimeout

Parameters:
timeoutMs -

setMaximumRetransmissionTimeout

public void setMaximumRetransmissionTimeout(int timeoutMs)
setMaximumRetransmissionTimeout

Parameters:
timeoutMs -

setConnectionStrengthHistorySize

public void setConnectionStrengthHistorySize(int size)
setConnectionStrengthHistorySize

Parameters:
size -

setDelayedAckTimeout

public void setDelayedAckTimeout(int timeoutMs)
setDelayedAckTimeout

Parameters:
timeoutMs -

setTimerGrainularity

public void setTimerGrainularity(int timeoutMs)
setTimerGrainularity

Parameters:
timeoutMs -

getConnectionStrength

public float getConnectionStrength()
getConnectionStrength

Overrides:
getConnectionStrength in class ConnectionSap
Returns:
float

seqLessThan

protected boolean seqLessThan(int a,
                              int b)
seqLessThan

Parameters:
a -
b -
Returns:
PRBool

seqLessThanEqual

protected boolean seqLessThanEqual(int a,
                                   int b)
seqLessThanEqual

Parameters:
a -
b -
Returns:
PRBool

seqGreaterThan

protected boolean seqGreaterThan(int a,
                                 int b)
seqGreaterThan

Parameters:
a -
b -
Returns:
PRBool

seqGreaterThanEqual

protected boolean seqGreaterThanEqual(int a,
                                      int b)
seqGreaterThanEqual

Parameters:
a -
b -
Returns:
PRBool

run

public void run()
receiveThreadFunction

Specified by:
run in interface java.lang.Runnable
Overrides:
run in class ConnectionSap

makeFragment

protected JcpFragment makeFragment(Mbuf data,
                                   int flags)
makeFragment

Parameters:
data -
flags -
Returns:
JcpFragment*

output

protected boolean output()
output

Returns:
PRBool

outputFragment

protected void outputFragment(JcpFragment f)
outputFragment

Parameters:
f -

receivePacket

void receivePacket(java.net.DatagramPacket packet)
receivePacket

Parameters:
packet - now package scope for ServerSapUdp dup SYN hack

processFragment

protected void processFragment(JcpFragment f)
processFragment

Parameters:
f -

receiveFragment

protected int receiveFragment(JcpFragment f)
receiveFragment

Parameters:
f -
Returns:
int Performs common processing for segment arrivals in SYN-RECEIVED STATE, ESTABLISHED STATE, FIN-WAIT-1 STATE,IN-WAIT-2 STATE, CLOSE-WAIT STATE CLOSING STATE, LAST-ACK STATE and TIME-WAIT STATE as described in RFC 793

syn

protected void syn()
syn


synack

protected void synack()
synack


fin

protected void fin()
fin


ack

protected void ack()
ack


ackNow

protected void ackNow()
ackNow


sendAllowed

protected boolean sendAllowed(JcpFragment f)
sendAllowed

Parameters:
f -
Returns:
PRBool

retransmit

protected void retransmit()
retransmit


retransmitFragment

protected void retransmitFragment(JcpFragment f)
sendDelayedAck protected /** retransmitFragment

Parameters:
f - Retransmits JcpFragment as a result of fast retransmit or retransmission timeout. Updates connection strength measurement, retransmits and cancels round trip timer.

addReceivedFragment

protected void addReceivedFragment(JcpFragment f)
addReceivedFragment

Parameters:
f -

buildObject

protected void buildObject(int objectStart,
                           int objectEnd)
buildObject

Parameters:
objectStart -
objectEnd -

abort

protected void abort()
abort


reset

protected void reset()
reset Send reset dependent on state, then close.


closed

protected void closed()
closed Clean up after abort or close.


getReceiveWindow

protected int getReceiveWindow()
getReceiveWindow

Returns:
PRUint32