Rice Pastry API

org.mpisws.p2p.transport.util
Class SocketWrapperSocket<Identifier,SubIdentifier>

java.lang.Object
  extended by org.mpisws.p2p.transport.util.SocketWrapperSocket<Identifier,SubIdentifier>
Type Parameters:
Identifier -
SubIdentifier -
All Implemented Interfaces:
P2PSocket<Identifier>, P2PSocketReceiver<SubIdentifier>
Direct Known Subclasses:
EncryptedSocket, RecordSocket, SourceRouteManagerP2PSocket

public class SocketWrapperSocket<Identifier,SubIdentifier>
extends java.lang.Object
implements P2PSocket<Identifier>, P2PSocketReceiver<SubIdentifier>

Just maps a socket from one form into another.

Author:
Jeff Hoye

Field Summary
protected  ErrorHandler<Identifier> errorHandler
           
protected  Identifier identifier
           
protected  Logger logger
           
protected  java.util.Map<java.lang.String,java.lang.Object> options
           
protected  P2PSocketReceiver<Identifier> reader
           
protected  P2PSocket<SubIdentifier> socket
           
protected  P2PSocketReceiver<Identifier> writer
           
 
Constructor Summary
SocketWrapperSocket(Identifier identifier, P2PSocket<SubIdentifier> socket, Logger logger, ErrorHandler<Identifier> errorHandler, java.util.Map<java.lang.String,java.lang.Object> options)
           
 
Method Summary
 void close()
          Closes this socket.
 Identifier getIdentifier()
          The identification of the node at the other end of the socket.
 java.util.Map<java.lang.String,java.lang.Object> getOptions()
          Details on the connectivity of the socket (encrypted, source-routed etc)
 long read(java.nio.ByteBuffer dsts)
          Reads a sequence of bytes from this channel into a subsequence of the given buffer.
 void receiveException(P2PSocket<SubIdentifier> socket, java.lang.Exception e)
          Called when there is an error
 void receiveSelectResult(P2PSocket<SubIdentifier> socket, boolean canRead, boolean canWrite)
          Called when a socket is available for read/write
 void register(boolean wantToRead, boolean wantToWrite, P2PSocketReceiver<Identifier> receiver)
          Must be called every time a Read/Write occurs to continue operation.
 void shutdownOutput()
          Disables the output stream for this socket.
 java.lang.String toString()
           
 long write(java.nio.ByteBuffer srcs)
          Writes a sequence of bytes to this channel from a subsequence of the given buffers.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

identifier

protected Identifier identifier

socket

protected P2PSocket<SubIdentifier> socket

logger

protected Logger logger

options

protected java.util.Map<java.lang.String,java.lang.Object> options

reader

protected P2PSocketReceiver<Identifier> reader

writer

protected P2PSocketReceiver<Identifier> writer

errorHandler

protected ErrorHandler<Identifier> errorHandler
Constructor Detail

SocketWrapperSocket

public SocketWrapperSocket(Identifier identifier,
                           P2PSocket<SubIdentifier> socket,
                           Logger logger,
                           ErrorHandler<Identifier> errorHandler,
                           java.util.Map<java.lang.String,java.lang.Object> options)
Method Detail

getIdentifier

public Identifier getIdentifier()
Description copied from interface: P2PSocket
The identification of the node at the other end of the socket.

Specified by:
getIdentifier in interface P2PSocket<Identifier>
Returns:
The identification of the node at the other end of the socket.

close

public void close()
Description copied from interface: P2PSocket
Closes this socket.

Specified by:
close in interface P2PSocket<Identifier>

read

public long read(java.nio.ByteBuffer dsts)
          throws java.io.IOException
Description copied from interface: P2PSocket
Reads a sequence of bytes from this channel into a subsequence of the given buffer.

Specified by:
read in interface P2PSocket<Identifier>
Returns:
Throws:
java.io.IOException

register

public void register(boolean wantToRead,
                     boolean wantToWrite,
                     P2PSocketReceiver<Identifier> receiver)
Description copied from interface: P2PSocket
Must be called every time a Read/Write occurs to continue operation. Can cancel this task by calling with null.

Specified by:
register in interface P2PSocket<Identifier>
Parameters:
wantToRead - if you want to read from this socket
wantToWrite - if you want to write to this socket
receiver - will have receiveSelectResult() called on it note that you must call select() each time receiveSelectResult() is called. This is so your application can properly handle flow control

receiveSelectResult

public void receiveSelectResult(P2PSocket<SubIdentifier> socket,
                                boolean canRead,
                                boolean canWrite)
                         throws java.io.IOException
Description copied from interface: P2PSocketReceiver
Called when a socket is available for read/write

Specified by:
receiveSelectResult in interface P2PSocketReceiver<SubIdentifier>
Throws:
java.io.IOException

receiveException

public void receiveException(P2PSocket<SubIdentifier> socket,
                             java.lang.Exception e)
Description copied from interface: P2PSocketReceiver
Called when there is an error

Specified by:
receiveException in interface P2PSocketReceiver<SubIdentifier>

shutdownOutput

public void shutdownOutput()
Description copied from interface: P2PSocket
Disables the output stream for this socket. Used to properly close down a socket used for bi-directional communication that can be initated by either side.

Specified by:
shutdownOutput in interface P2PSocket<Identifier>

write

public long write(java.nio.ByteBuffer srcs)
           throws java.io.IOException
Description copied from interface: P2PSocket
Writes a sequence of bytes to this channel from a subsequence of the given buffers.

Specified by:
write in interface P2PSocket<Identifier>
Throws:
java.io.IOException

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

getOptions

public java.util.Map<java.lang.String,java.lang.Object> getOptions()
Description copied from interface: P2PSocket
Details on the connectivity of the socket (encrypted, source-routed etc)

Specified by:
getOptions in interface P2PSocket<Identifier>
Returns:
a read-only list of options on this socket

Rice Pastry API

Copyright © 2001-2005 - Rice Pastry.


Imprint-Dataprotection