org.mpisws.p2p.transport.wire
Class WireTransportLayerImpl
java.lang.Object
org.mpisws.p2p.transport.wire.WireTransportLayerImpl
- All Implemented Interfaces:
- TransportLayer<InetSocketAddress,ByteBuffer>, SocketOpeningTransportLayer<InetSocketAddress>, WireTransportLayer, Destructable
public class WireTransportLayerImpl
- extends Object
- implements WireTransportLayer, SocketOpeningTransportLayer<InetSocketAddress>
|
Method Summary |
void |
acceptMessages(boolean b)
Toggle accepting incoming messages. |
void |
acceptSockets(boolean b)
Toggle accepting new sockets. |
void |
addSocketCountListener(SocketCountListener<InetSocketAddress> listener)
|
void |
addTransportLayerListener(TransportLayerListener<InetSocketAddress> listener)
|
void |
broadcastChannelClosed(InetSocketAddress addr,
Map<String,Object> options)
|
void |
broadcastChannelOpened(InetSocketAddress addr,
Map<String,Object> options,
boolean outgoing)
|
void |
destroy()
|
InetSocketAddress |
getLocalIdentifier()
Notification methods |
protected Iterable<SocketCountListener<InetSocketAddress>> |
getSlisteners()
|
protected Iterable<TransportLayerListener<InetSocketAddress>> |
getTLlisteners()
|
protected void |
incomingSocket(P2PSocket<InetSocketAddress> sm)
|
boolean |
isDestroyed()
|
protected void |
messageReceived(InetSocketAddress address,
ByteBuffer buffer,
Map<String,Object> options)
|
SocketRequestHandle<InetSocketAddress> |
openSocket(InetSocketAddress destination,
SocketCallback<InetSocketAddress> deliverSocketToMe,
Map<String,Object> options)
Open a socket to the Identifier |
void |
removeSocketCountListener(SocketCountListener<InetSocketAddress> listener)
|
void |
removeTransportLayerListener(TransportLayerListener<InetSocketAddress> listener)
|
MessageRequestHandle<InetSocketAddress,ByteBuffer> |
sendMessage(InetSocketAddress destination,
ByteBuffer m,
MessageCallback<InetSocketAddress,ByteBuffer> deliverAckToMe,
Map<String,Object> options)
Send the message to the identifier |
void |
setCallback(TransportLayerCallback<InetSocketAddress,ByteBuffer> callback)
Set the callback for incoming sockets/messages |
void |
setErrorHandler(ErrorHandler<InetSocketAddress> handler)
To be notified of problems not related to an outgoing messaage/socket. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
bindAddress
protected InetSocketAddress bindAddress
udp
protected UDPLayer udp
tcp
protected TCPLayer tcp
logger
protected Logger logger
environment
protected Environment environment
errorHandler
protected ErrorHandler<InetSocketAddress> errorHandler
forceBindAddress
public boolean forceBindAddress
- true for modelnet, who needs to set the bind address even on outgoing sockets
WireTransportLayerImpl
public WireTransportLayerImpl(InetSocketAddress bindAddress,
Environment env,
ErrorHandler<InetSocketAddress> errorHandler)
throws IOException
- Parameters:
bindAddress - the address to bind to, if it fails, it will throw an exceptionenv - will acquire the SelectorManager from the env
- Throws:
IOException
WireTransportLayerImpl
public WireTransportLayerImpl(InetSocketAddress bindAddress,
Environment env,
ErrorHandler<InetSocketAddress> errorHandler,
boolean enableServer)
throws IOException
- Throws:
IOException
WireTransportLayerImpl
public WireTransportLayerImpl(InetSocketAddress bindAddress,
Environment env,
ErrorHandler<InetSocketAddress> errorHandler,
boolean enableTCPServer,
boolean enableUDPServer)
throws IOException
- Throws:
IOException
setCallback
public void setCallback(TransportLayerCallback<InetSocketAddress,ByteBuffer> callback)
- Description copied from interface:
TransportLayer
- Set the callback for incoming sockets/messages
- Specified by:
setCallback in interface TransportLayer<InetSocketAddress,ByteBuffer>
- Parameters:
callback - the callback for incoming sockets/messages
openSocket
public SocketRequestHandle<InetSocketAddress> openSocket(InetSocketAddress destination,
SocketCallback<InetSocketAddress> deliverSocketToMe,
Map<String,Object> options)
- Description copied from interface:
TransportLayer
- Open a socket to the Identifier
- Specified by:
openSocket in interface TransportLayer<InetSocketAddress,ByteBuffer>
- Parameters:
destination - 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)
- Returns:
- an object to cancel opening the socket if it takes to long, or is no longer relevant
sendMessage
public MessageRequestHandle<InetSocketAddress,ByteBuffer> sendMessage(InetSocketAddress destination,
ByteBuffer m,
MessageCallback<InetSocketAddress,ByteBuffer> deliverAckToMe,
Map<String,Object> options)
- Description copied from interface:
TransportLayer
- Send the message to the identifier
- Specified by:
sendMessage in interface TransportLayer<InetSocketAddress,ByteBuffer>
- Parameters:
destination - 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)
- Returns:
- ability to cancel the message if no longer relevant
getLocalIdentifier
public InetSocketAddress getLocalIdentifier()
- Notification methods
- Specified by:
getLocalIdentifier in interface TransportLayer<InetSocketAddress,ByteBuffer>
- Parameters:
destination - msg - i - data - transport_type - WireTransportLayer.TRANSPORT_TYPE_DATAGRAM or WireTransportLayer.TRANSPORT_TYPE_GUARANTEED
- Returns:
- The local node.
destroy
public void destroy()
- Specified by:
destroy in interface Destructable
isDestroyed
public boolean isDestroyed()
setErrorHandler
public void setErrorHandler(ErrorHandler<InetSocketAddress> handler)
- Description copied from interface:
TransportLayer
- To be notified of problems not related to an outgoing messaage/socket. Or to be notified
if a callback isn't provided.
- Specified by:
setErrorHandler in interface TransportLayer<InetSocketAddress,ByteBuffer>
- Parameters:
handler - to be notified of problems not related to a specific messaage/socket.
acceptMessages
public void acceptMessages(boolean b)
- Description copied from interface:
TransportLayer
- Toggle accepting incoming messages. Useful in flow control if overwhelmed by incoming sockets.
Default: true
- Specified by:
acceptMessages in interface TransportLayer<InetSocketAddress,ByteBuffer>
acceptSockets
public void acceptSockets(boolean b)
- Description copied from interface:
TransportLayer
- Toggle accepting new sockets. Useful in flow control if overwhelmed by incoming sockets.
Default: true
- Specified by:
acceptSockets in interface TransportLayer<InetSocketAddress,ByteBuffer>
messageReceived
protected void messageReceived(InetSocketAddress address,
ByteBuffer buffer,
Map<String,Object> options)
throws IOException
- Throws:
IOException
incomingSocket
protected void incomingSocket(P2PSocket<InetSocketAddress> sm)
throws IOException
- Throws:
IOException
addTransportLayerListener
public void addTransportLayerListener(TransportLayerListener<InetSocketAddress> listener)
removeTransportLayerListener
public void removeTransportLayerListener(TransportLayerListener<InetSocketAddress> listener)
getTLlisteners
protected Iterable<TransportLayerListener<InetSocketAddress>> getTLlisteners()
addSocketCountListener
public void addSocketCountListener(SocketCountListener<InetSocketAddress> listener)
- Specified by:
addSocketCountListener in interface SocketOpeningTransportLayer<InetSocketAddress>
removeSocketCountListener
public void removeSocketCountListener(SocketCountListener<InetSocketAddress> listener)
- Specified by:
removeSocketCountListener in interface SocketOpeningTransportLayer<InetSocketAddress>
getSlisteners
protected Iterable<SocketCountListener<InetSocketAddress>> getSlisteners()
broadcastChannelOpened
public void broadcastChannelOpened(InetSocketAddress addr,
Map<String,Object> options,
boolean outgoing)
broadcastChannelClosed
public void broadcastChannelClosed(InetSocketAddress addr,
Map<String,Object> options)
Copyright © 2010. All Rights Reserved.