Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Rice Pastry API
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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

    java.lang.Object
      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

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Rice Pastry API
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2001-2005 - Rice Pastry.