|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.mpisws.p2p.transport.networkinfo.NetworkInfoTransportLayer
public class NetworkInfoTransportLayer
Can open a TCP connection to a known node, and it will return your IP address. Use getMyIpAddress() header = 0; // bypass header = 1; // return IP Also holds a "serialized id." This is an externally specified piece of information. It can be a NodeHandle, a PublicKey etc, any information that any node should be able to query for and may need to do so w/o having a joined PastryNode.
| Field Summary | |
|---|---|
protected TransportLayerCallback<InetSocketAddress,ByteBuffer> |
callback
|
protected Environment |
environment
|
protected ErrorHandler<InetSocketAddress> |
errorHandler
|
protected static byte |
HEADER_ID_REQUEST_BYTE
|
protected static byte[] |
HEADER_IP_ADDRESS_REQUEST
|
protected static byte |
HEADER_IP_ADDRESS_REQUEST_BYTE
|
protected static byte[] |
HEADER_NODES_REQUEST
|
protected static byte |
HEADER_NODES_REQUEST_BYTE
|
protected static byte[] |
HEADER_PASSTHROUGH
|
protected static byte |
HEADER_PASSTHROUGH_BYTE
|
protected static byte |
HEADER_PROBE_REQUEST_BYTE
|
protected static byte |
HEADER_PROBE_RESPONSE_BYTE
|
protected Logger |
logger
|
protected ProbeStrategy |
probeStrategy
Ask this strategy to probe a requesting node, but from a 3rd party node |
protected TransportLayer<InetSocketAddress,ByteBuffer> |
tl
|
| Constructor Summary | |
|---|---|
NetworkInfoTransportLayer(TransportLayer<InetSocketAddress,ByteBuffer> tl,
Environment env,
ErrorHandler<InetSocketAddress> errorHandler)
|
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected Logger logger
protected Environment environment
protected TransportLayerCallback<InetSocketAddress,ByteBuffer> callback
protected ErrorHandler<InetSocketAddress> errorHandler
protected TransportLayer<InetSocketAddress,ByteBuffer> tl
protected static final byte HEADER_PASSTHROUGH_BYTE
protected static final byte HEADER_IP_ADDRESS_REQUEST_BYTE
protected static final byte HEADER_PROBE_REQUEST_BYTE
protected static final byte HEADER_PROBE_RESPONSE_BYTE
protected static final byte HEADER_NODES_REQUEST_BYTE
protected static final byte HEADER_ID_REQUEST_BYTE
protected static final byte[] HEADER_PASSTHROUGH
protected static final byte[] HEADER_IP_ADDRESS_REQUEST
protected static final byte[] HEADER_NODES_REQUEST
protected ProbeStrategy probeStrategy
| Constructor Detail |
|---|
public NetworkInfoTransportLayer(TransportLayer<InetSocketAddress,ByteBuffer> tl,
Environment env,
ErrorHandler<InetSocketAddress> errorHandler)
| Method Detail |
|---|
public Cancellable getMyInetAddress(InetSocketAddress bootstrap,
Continuation<InetSocketAddress,IOException> c,
Map<String,Object> options)
InetSocketAddressLookup
getMyInetAddress in interface InetSocketAddressLookupbootstrap - who to askc - where the return value is deliveredoptions - can be null
public void setId(byte index,
byte[] value)
public Cancellable getId(InetSocketAddress bootstrap,
byte index,
Continuation<byte[],IOException> c,
Map<String,Object> options)
public Cancellable getExternalNodes(InetSocketAddress bootstrap,
Continuation<Collection<InetSocketAddress>,IOException> c,
Map<String,Object> options)
InetSocketAddressLookup
getExternalNodes in interface InetSocketAddressLookup
public SocketRequestHandle<InetSocketAddress> openSocket(InetSocketAddress i,
SocketCallback<InetSocketAddress> deliverSocketToMe,
Map<String,Object> options)
TransportLayer
openSocket in interface TransportLayer<InetSocketAddress,ByteBuffer>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 SocketRequestHandle<InetSocketAddress> openSocket(InetSocketAddress i,
byte[] header,
SocketCallback<InetSocketAddress> deliverSocketToMe,
Map<String,Object> options)
public void incomingSocket(P2PSocket<InetSocketAddress> s)
throws IOException
TransportLayerCallback
incomingSocket in interface TransportLayerCallback<InetSocketAddress,ByteBuffer>s - the incoming socket
IOException
public void handleIpRequest(P2PSocket<InetSocketAddress> socket)
throws IOException
IOException
public void handleNodesRequest(P2PSocket<InetSocketAddress> socket)
throws IOException
IOException
public void handleIdRequest(P2PSocket<InetSocketAddress> socket)
throws IOException
IOExceptionpublic void handleProbeRequest(P2PSocket<InetSocketAddress> socket)
public void handleProbeResponse(P2PSocket<InetSocketAddress> socket)
public void setCallback(TransportLayerCallback<InetSocketAddress,ByteBuffer> callback)
TransportLayer
setCallback in interface TransportLayer<InetSocketAddress,ByteBuffer>callback - the callback for incoming sockets/messagespublic void setErrorHandler(ErrorHandler<InetSocketAddress> handler)
TransportLayer
setErrorHandler in interface TransportLayer<InetSocketAddress,ByteBuffer>handler - to be notified of problems not related to a specific messaage/socket.public void acceptMessages(boolean b)
TransportLayer
acceptMessages in interface TransportLayer<InetSocketAddress,ByteBuffer>public void acceptSockets(boolean b)
TransportLayer
acceptSockets in interface TransportLayer<InetSocketAddress,ByteBuffer>public InetSocketAddress getLocalIdentifier()
TransportLayer
getLocalIdentifier in interface TransportLayer<InetSocketAddress,ByteBuffer>
public MessageRequestHandle<InetSocketAddress,ByteBuffer> sendMessage(InetSocketAddress i,
ByteBuffer m,
MessageCallback<InetSocketAddress,ByteBuffer> deliverAckToMe,
Map<String,Object> options)
sendMessage in interface TransportLayer<InetSocketAddress,ByteBuffer>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(InetSocketAddress i,
ByteBuffer m,
Map<String,Object> options)
throws IOException
TransportLayerCallback
messageReceived in interface TransportLayerCallback<InetSocketAddress,ByteBuffer>i - The node it is coming fromm - the messageoptions - describe how the message arrived (udp/tcp, encrypted etc)
IOException - if there is a problem decoding the messagepublic void destroy()
destroy in interface Destructablepublic void setProbeStrategy(ProbeStrategy probeStrategy)
public Cancellable verifyConnectivity(MultiInetSocketAddress local,
InetSocketAddress probeAddress,
ConnectivityResult deliverResultToMe,
Map<String,Object> options)
verifyConnectivity in interface InetSocketAddressLookup
public Cancellable probe(InetSocketAddress addr,
long uid,
Continuation<Long,Exception> deliverResponseToMe,
Map<String,Object> options)
probe in interface Proberaddr - the address to probeuid - the uid with the probedeliverResponseToMe - let me know how it goesoptions - tl options
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||