|
JXTA | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectnet.jxta.impl.endpoint.tcp.TcpTransport
public class TcpTransport
This class implements the TCP Message Transport.
MessageTransport
,
MessagePropagater
,
MessageReceiver
,
MessageSender
,
EndpointService
,
JXTA Protocols Specification : Standard JXTA Transport BindingsField Summary | |
---|---|
(package private) static int |
connectionTimeOut
Connection timeout use the same system property defined by URLconnection, otherwise default to 10 seconds. |
(package private) EndpointService |
endpoint
|
(package private) Executor |
executor
|
(package private) PeerGroup |
group
|
(package private) static int |
LingerDelay
The amount of time the socket "lingers" after we close it locally. |
protected static int |
MAX_WRITE_SELECTORS
The maximum number of write selectors we will maintain in our cache per transport instance. |
(package private) static int |
MaxAcceptCnxBacklog
|
(package private) Selector |
messengerSelector
|
(package private) ThreadGroup |
myThreadGroup
This is the thread group into which we will place all of the threads we create. |
(package private) static int |
RecvBufferSize
The TCP receive buffer size |
(package private) static int |
SendBufferSize
The TCP send buffer size. |
(package private) InetAddress |
usingInterface
|
Fields inherited from interface net.jxta.platform.Module |
---|
START_AGAIN_PROGRESS, START_AGAIN_STALLED, START_DISABLED, START_OK |
Constructor Summary | |
---|---|
TcpTransport()
Construct a new TcpTransport instance |
Method Summary | |
---|---|
boolean |
allowsRouting()
Returns true if the Message Transport can be used by the EndpointRouter. |
boolean |
equals(Object target)
|
long |
getBytesReceived()
Gets the number of 'bytesReceived'. |
long |
getBytesSent()
Gets the number of 'bytesSent'. |
long |
getConnectionsAccepted()
Gets the number of 'connectionsAccepted'. |
EndpointService |
getEndpointService()
Returns the endpoint service with which this MessageTransport is registered. |
long |
getMessagesReceived()
Gets the number of 'messagesReceived'. |
long |
getMessagesSent()
Gets the number of 'messagesSent'. |
Messenger |
getMessenger(EndpointAddress dst,
Object hintIgnored)
Return a Messenger for sending messages to the specified
destination EndpointAddress . |
Messenger |
getMessenger(EndpointAddress dst,
Object hintIgnored,
boolean selfDestruct)
|
String |
getProtocolName()
Returns a String containing the name of the protocol used by this MessageTransport. |
EndpointAddress |
getPublicAddress()
Returns the EndpointAddress which will be used as the source
address for all messages sent by this message sender. |
Iterator<EndpointAddress> |
getPublicAddresses()
Returns an Iterator of all of the EndpointAddresses by which this
MessageReceiver is reachable. |
(package private) int |
getRestrictionPort()
Getter for property 'restrictionPort'. |
(package private) Selector |
getSelector()
Get a write selector from the cache. |
(package private) IncomingUnicastServer |
getServer()
Getter for property 'server'. |
(package private) TransportBindingMeter |
getUnicastTransportBindingMeter(PeerID peerID,
EndpointAddress destinationAddress)
|
int |
hashCode()
|
void |
incrementBytesReceived(long bytes)
increment the number of bytes received |
void |
incrementBytesSent(long bytes)
increment the number of bytes sent |
void |
incrementConnectionsAccepted()
increment the number of connectionsAccepted sent by 1 |
void |
incrementMessagesReceived()
increment the number of messages received by 1 |
void |
incrementMessagesSent()
increment the number of messages sent by 1 |
void |
init(PeerGroup group,
ID assignedID,
Advertisement impl)
Initialize the module, passing it its peer group and advertisement. |
boolean |
isConnectionOriented()
Returns true if the Message Transport is connection oriented
(like TCP/IP). |
(package private) void |
messengerReadyEvent(Messenger newMessenger,
EndpointAddress connAddr)
|
boolean |
ping(EndpointAddress addr)
Returns true if the specified destination address is reachable
via this Message Transport otherwise returns false . |
(package private) void |
register(SocketChannel channel,
TcpMessenger messenger)
Registers the channel with the Read selector and attaches the messenger to the channel |
(package private) void |
returnSelector(Selector selector)
Return the Selector to the cache |
int |
startApp(String[] arg)
Complete any remaining initialization of the module. |
void |
stopApp()
Stop a module. |
Object |
transportControl(Object operation,
Object Value)
Pass a transport control object to a message transport. |
(package private) void |
unregister(SocketChannel channel)
Unregisters the channel with the Read selector |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
static final int SendBufferSize
static final int RecvBufferSize
static final int LingerDelay
static int connectionTimeOut
static final int MaxAcceptCnxBacklog
InetAddress usingInterface
PeerGroup group
EndpointService endpoint
Executor executor
Selector messengerSelector
ThreadGroup myThreadGroup
protected static final int MAX_WRITE_SELECTORS
Constructor Detail |
---|
public TcpTransport()
Method Detail |
---|
public long getConnectionsAccepted()
public void incrementConnectionsAccepted()
public void incrementMessagesSent()
public void incrementMessagesReceived()
public void incrementBytesSent(long bytes)
bytes
- the number of bytes to be addedpublic void incrementBytesReceived(long bytes)
bytes
- the number of bytes to be addedpublic long getMessagesSent()
public long getMessagesReceived()
public long getBytesSent()
public long getBytesReceived()
public boolean equals(Object target)
equals
in class Object
public int hashCode()
hashCode
in class Object
public void init(PeerGroup group, ID assignedID, Advertisement impl) throws PeerGroupException
init
in interface Module
group
- The PeerGroup from which this Module can obtain services.
If this module is a Service, this is also the PeerGroup of which this
module is a service.assignedID
- Identity of Module within group.
modules can use it as a the root of their namespace to create
names that are unique within the group but predictable by the
same module on another peer. This is normally the ModuleClassID
which is also the name under which the module is known by other
modules. For a group it is the PeerGroupID itself.
The parameters of a service, in the Peer configuration, are indexed
by the assignedID of that service, and a Service must publish its
run-time parameters in the Peer Advertisement under its assigned ID.impl
- The implementation advertisement for this
Module. It is permissible to pass null if no implementation
advertisement is available. This may happen if the
implementation was selected by explicit class name rather than
by following an implementation advertisement. Modules are not
required to support that style of loading, but if they do, then
their documentation should mention it.
PeerGroupException
- This module failed to initialize.public int startApp(String[] arg)
startApp()
is completed. That is
also the opportunity to supply arbitrary arguments (mostly to
applications).
If this module is a PeerGroup
service, it may be invoked
several times depending on its return value.
startApp
in interface Module
arg
- An array of Strings forming the parameters for this
Module.
Module.START_OK
, Module.START_AGAIN_PROGRESS
,
Module.START_AGAIN_STALLED
, which indicates partial or complete
success, or any other value (negative values are
recommended for future compatibility), which indicates failure.public void stopApp()
init()
completes and should not assume that startApp()
has been
called or completed.
The Module cannot be forced to comply, but in the future
we might be able to deny it access to anything after some timeout.
stopApp
in interface Module
public String getProtocolName()
EndpointAddress
.
getProtocolName
in interface MessageTransport
public EndpointAddress getPublicAddress()
EndpointAddress
which will be used as the source
address for all messages sent by this message sender. This is the
"preferred" address to which replies should be sent. This address is not
necessarily the best or only address by which the peer may be reached.
The public address may also be for a different message transport.
getPublicAddress
in interface MessageSender
public EndpointService getEndpointService()
getEndpointService
in interface MessageTransport
public Object transportControl(Object operation, Object Value)
transportControl
in interface MessageTransport
operation
- Object that specifies the type of control operation
to be performedValue
- Object that specifies a value object associated
with the control operation
public Iterator<EndpointAddress> getPublicAddresses()
EndpointAddresses
by which this
MessageReceiver is reachable. The list is in order of
"preference" with the most "preferred" EndpointAddress being at the
beginning of the list.
getPublicAddresses
in interface MessageReceiver
public boolean isConnectionOriented()
true
if the Message Transport is connection oriented
(like TCP/IP). Indicates that the Message Transport can provide
efficient transport of a series of messages to the same destination.
isConnectionOriented
in interface MessageSender
true
if the Message Transport is connection oriented.public boolean allowsRouting()
getReachableEndpointAddresses
.
allowsRouting
in interface MessageSender
public Messenger getMessenger(EndpointAddress dst, Object hintIgnored)
net.jxta.endpoint.MessageSender
Messenger
for sending messages to the specified
destination EndpointAddress
.
getMessenger
in interface MessageSender
dst
- The destination address for which a messenger is requested.hintIgnored
- An optional hint for the transport to use when creating the
messenger. The format of the hint is specific to each Message Transport
and may be null
if no hint is provided.
null
if the destination is not reachable.public Messenger getMessenger(EndpointAddress dst, Object hintIgnored, boolean selfDestruct)
public boolean ping(EndpointAddress addr)
true
if the specified destination address is reachable
via this Message Transport otherwise returns false
.
This implementation tries to open a connection, and after tests the
result.
ping
in interface MessageSender
addr
- Address to ping
true
if the specified destination address is reachable
via this Message Transport otherwise returns false
.int getRestrictionPort()
TransportBindingMeter getUnicastTransportBindingMeter(PeerID peerID, EndpointAddress destinationAddress)
void messengerReadyEvent(Messenger newMessenger, EndpointAddress connAddr)
IncomingUnicastServer getServer()
Selector getSelector() throws InterruptedException
InterruptedException
- If interrupted while waiting for a selector
to become available.void returnSelector(Selector selector)
Selector
to the cache
selector
- the selector to put back into the poolvoid register(SocketChannel channel, TcpMessenger messenger)
channel
- the socket channel.messenger
- the messenger to attach to the channel.void unregister(SocketChannel channel)
channel
- the socket channel.
|
JXSE | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |