|
Rice Pastry API | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.mpisws.p2p.transport.limitsockets.LimitSocketsTransportLayer<Identifier,MessageType>
public class LimitSocketsTransportLayer<Identifier,MessageType>
Automatically closes sockets based on LRU. Uses the LinkedHashMap to perfrom the LRU policy.
| Field Summary | |
|---|---|
protected java.util.LinkedHashMap<org.mpisws.p2p.transport.limitsockets.LimitSocketsTransportLayer.LSSocket,org.mpisws.p2p.transport.limitsockets.LimitSocketsTransportLayer.LSSocket> |
cache
|
protected TransportLayerCallback<Identifier,MessageType> |
callback
|
protected ErrorHandler<Identifier> |
handler
|
protected Logger |
logger
|
protected Timer |
timer
|
protected TransportLayer<Identifier,MessageType> |
tl
|
| Constructor Summary | |
|---|---|
LimitSocketsTransportLayer(int max_sockets,
TransportLayer<Identifier,MessageType> tl,
ErrorHandler<Identifier> handler,
Environment env)
|
|
| Method Summary | |
|---|---|
void |
acceptMessages(boolean b)
Toggle accepting incoming messages. |
void |
acceptSockets(boolean b)
Toggle accepting new sockets. |
protected void |
closeIfNecessary()
|
void |
destroy()
|
Identifier |
getLocalIdentifier()
The local node. |
protected org.mpisws.p2p.transport.limitsockets.LimitSocketsTransportLayer.LSSocket |
getLSSock(P2PSocket<Identifier> sock)
|
void |
incomingSocket(P2PSocket<Identifier> s)
Notification of a new socket. |
void |
messageReceived(Identifier i,
MessageType m,
java.util.Map<java.lang.String,java.lang.Object> options)
Called when a new message is received. |
SocketRequestHandle<Identifier> |
openSocket(Identifier i,
SocketCallback<Identifier> deliverSocketToMe,
java.util.Map<java.lang.String,java.lang.Object> options)
Open a socket to the Identifier |
MessageRequestHandle<Identifier,MessageType> |
sendMessage(Identifier i,
MessageType m,
MessageCallback<Identifier,MessageType> deliverAckToMe,
java.util.Map<java.lang.String,java.lang.Object> options)
Send the message to the identifier |
void |
setCallback(TransportLayerCallback<Identifier,MessageType> callback)
Set the callback for incoming sockets/messages |
void |
setErrorHandler(ErrorHandler<Identifier> handler)
To be notified of problems not related to an outgoing messaage/socket. |
java.lang.String |
toString()
|
void |
touch(org.mpisws.p2p.transport.limitsockets.LimitSocketsTransportLayer.LSSocket socket)
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
protected TransportLayer<Identifier,MessageType> tl
protected java.util.LinkedHashMap<org.mpisws.p2p.transport.limitsockets.LimitSocketsTransportLayer.LSSocket,org.mpisws.p2p.transport.limitsockets.LimitSocketsTransportLayer.LSSocket> cache
protected Logger logger
protected TransportLayerCallback<Identifier,MessageType> callback
protected Timer timer
protected ErrorHandler<Identifier> handler
| Constructor Detail |
|---|
public LimitSocketsTransportLayer(int max_sockets,
TransportLayer<Identifier,MessageType> tl,
ErrorHandler<Identifier> handler,
Environment env)
| Method Detail |
|---|
public SocketRequestHandle<Identifier> openSocket(Identifier i,
SocketCallback<Identifier> deliverSocketToMe,
java.util.Map<java.lang.String,java.lang.Object> options)
TransportLayer
openSocket in interface TransportLayer<Identifier,MessageType>i - who to open the socket todeliverSocketToMe - the callback when the socket is openedoptions - options on how to open the socket (don't source route, encrypt etc) (may not be respected if layer cannot provide service)
public void incomingSocket(P2PSocket<Identifier> s)
throws java.io.IOException
TransportLayerCallback
incomingSocket in interface TransportLayerCallback<Identifier,MessageType>s - the incoming socket
java.io.IOExceptionprotected org.mpisws.p2p.transport.limitsockets.LimitSocketsTransportLayer.LSSocket getLSSock(P2PSocket<Identifier> sock)
protected void closeIfNecessary()
public void touch(org.mpisws.p2p.transport.limitsockets.LimitSocketsTransportLayer.LSSocket socket)
public java.lang.String toString()
toString in class java.lang.Objectpublic void acceptMessages(boolean b)
TransportLayer
acceptMessages in interface TransportLayer<Identifier,MessageType>public void acceptSockets(boolean b)
TransportLayer
acceptSockets in interface TransportLayer<Identifier,MessageType>public Identifier getLocalIdentifier()
TransportLayer
getLocalIdentifier in interface TransportLayer<Identifier,MessageType>
public MessageRequestHandle<Identifier,MessageType> sendMessage(Identifier i,
MessageType m,
MessageCallback<Identifier,MessageType> deliverAckToMe,
java.util.Map<java.lang.String,java.lang.Object> options)
TransportLayer
sendMessage in interface TransportLayer<Identifier,MessageType>i - the destinationm - the messagedeliverAckToMe - layer dependent notification when the message is sent (can indicate placed on the wire, point-to-point acknowledgment, or end-to-end acknowledgement)options - delivery options (don't source route, encrypt etc) (may not be respected if layer cannot provide service)
public void messageReceived(Identifier i,
MessageType m,
java.util.Map<java.lang.String,java.lang.Object> options)
throws java.io.IOException
TransportLayerCallback
messageReceived in interface TransportLayerCallback<Identifier,MessageType>i - The node it is coming fromm - the messageoptions - describe how the message arrived (udp/tcp, encrypted etc)
java.io.IOException - if there is a problem decoding the messagepublic void setCallback(TransportLayerCallback<Identifier,MessageType> callback)
TransportLayer
setCallback in interface TransportLayer<Identifier,MessageType>callback - the callback for incoming sockets/messagespublic void setErrorHandler(ErrorHandler<Identifier> handler)
TransportLayer
setErrorHandler in interface TransportLayer<Identifier,MessageType>handler - to be notified of problems not related to a specific messaage/socket.public void destroy()
destroy in interface Destructable
|
Rice Pastry API | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||