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.peerreview.commitment
Class CommitmentProtocolImpl<Handle extends RawSerializable,Identifier extends RawSerializable>

    java.lang.Object
      org.mpisws.p2p.transport.peerreview.commitment.CommitmentProtocolImpl<Handle,Identifier>

All Implemented Interfaces:
  CommitmentProtocol<Handle,Identifier>, StatusChangeListener<Identifier>, PeerReviewConstants, StatusConstants

    public class CommitmentProtocolImpl<Handle extends RawSerializable,Identifier extends RawSerializable>

extends java.lang.Object
implements CommitmentProtocol<Handle,Identifier>, PeerReviewConstants

Field Summary
`int` | `INITIAL_TIMEOUT_MILLIS`
`int` | `MAX_ENTRIES_PER_MS`
`int` | `MAX_PEERS`
`int` | `MAX_RETRANSMISSIONS`
`int` | `PROGRESS_INTERVAL_MILLIS`
`int` | `RECEIVE_CACHE_SIZE`
`int` | `RETRANSMIT_TIMEOUT_MILLIS`
`int` | `TI_PROGRESS`

Fields inherited from interface org.mpisws.p2p.transport.peerreview.StatusConstants
`STATUS_EXPOSED, STATUS_SUSPECTED, STATUS_TRUSTED`

Fields inherited from interface org.mpisws.p2p.transport.peerreview.PeerReviewConstants
`AUTH_CACHE_INTERVAL, CERT_MISSING, CHAL_AUDIT, CHAL_SEND, DEFAULT_AUDIT_INTERVAL_MILLIS, DEFAULT_AUTH_PUSH_INTERVAL_MILLIS, DEFAULT_CHECKPOINT_INTERVAL_MILLIS, DEFAULT_LOG_DOWNLOAD_TIMEOUT, DEFAULT_TIME_TOLERANCE_MILLIS, EVT_ACK, EVT_CHECKPOINT, EVT_CHOOSE_Q, EVT_CHOOSE_RAND, EVT_INIT, EVT_MAX_RESERVED, EVT_MAX_SOCKET_EVT, EVT_MIN_SOCKET_EVT, EVT_RECV, EVT_SEND, EVT_SENDSIGN, EVT_SIGN, EVT_SOCKET_CAN_READ, EVT_SOCKET_CAN_RW, EVT_SOCKET_CAN_WRITE, EVT_SOCKET_CLOSE, EVT_SOCKET_CLOSED, EVT_SOCKET_EXCEPTION, EVT_SOCKET_OPEN_INCOMING, EVT_SOCKET_OPEN_OUTGOING, EVT_SOCKET_OPENED_OUTGOING, EVT_SOCKET_READ, EVT_SOCKET_SHUTDOWN_OUTPUT, EVT_SOCKET_WRITE, EVT_VRF, EX_TYPE_ClosedChannel, EX_TYPE_IO, EX_TYPE_Unknown, FLAG_FULL_MESSAGES_ALL, FLAG_FULL_MESSAGES_SENDER, FLAG_INCLUDE_CHECKPOINT, INVALID, INVESTIGATION_INTERVAL_MILLIS, MAINTENANCE_INTERVAL_MILLIS, MAX_ACTIVE_AUDITS, MAX_ACTIVE_INVESTIGATIONS, MAX_ENTRIES_BETWEEN_CHECKPOINTS, MAX_STATUS_INFO, MAX_WITNESSED_NODES, MSG_ACCUSATION, MSG_ACK, MSG_AUTHPUSH, MSG_AUTHREQ, MSG_AUTHRESP, MSG_CHALLENGE, MSG_RESPONSE, MSG_USERDATA, MSG_USERDGRAM, NO_CERTIFICATE, PROOF_INCONSISTENT, PROOF_NONCONFORMANT, RESP_AUDIT, RESP_SEND, SIGNATURE_BAD, SIGNATURE_OK, STATE_SEND_AUDIT, STATE_WAIT_FOR_LOG, TI_AUTH_PUSH, TI_CHECKPOINT, TI_MAINTENANCE, TI_MAKE_PROGRESS, TI_MAX_RESERVED, TI_START_AUDITS, TI_STATUS_INFO, VALID`

Constructor Summary
`CommitmentProtocolImpl(PeerReview<Handle,Identifier> peerreview, IdentityTransport<Handle,Identifier> transport, PeerInfoStore<Handle,Identifier> infoStore, AuthenticatorStore<Identifier> authStore, SecureHistory history, long timeToleranceMillis)`

Method Summary
`protected void` | `addToReceiveCache(Identifier id, long senderSeq, long indexInLocalHistory)`
`protected long` | `findAckEntry(Identifier id, long seq)`
`protected long` | `findRecvEntry(Identifier id, long seq)`
`void` | `handleIncomingAck(Handle source, AckMessage<Identifier> ackMessage, java.util.Map<java.lang.String,java.lang.Object> options)`
`void` | `handleIncomingMessage(Handle source, UserDataMessage<Handle> msg, java.util.Map<java.lang.String,java.lang.Object> options)` Handle an incoming USERDATA message
`MessageRequestHandle<Handle,java.nio.ByteBuffer>` | `handleOutgoingMessage(Handle target, java.nio.ByteBuffer message, MessageCallback<Handle,java.nio.ByteBuffer> deliverAckToMe, java.util.Map<java.lang.String,java.lang.Object> options)`
`protected void` | `initReceiveCache()` Load the last events from the history into the cache
`Tuple<AckMessage<Identifier>,java.lang.Boolean>` | `logMessageIfNew(UserDataMessage<Handle> udm)` Checks whether an incoming message is already in the log (which can happen with duplicates).
`protected PeerInfo<Handle>` | `lookupPeer(Handle handle)`
`protected void` | `makeProgress(Identifier idx)` Tries to make progress on the message queue of the specified peer, e.g.
`protected void` | `makeProgressAllPeers()`
`void` | `notifyCertificateAvailable(Identifier id)`
`void` | `notifyStatusChange(Identifier id, int newStatus)`
`void` | `setTimeToleranceMillis(long timeToleranceMillis)`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### MAX_PEERS

    public int MAX_PEERS

### INITIAL_TIMEOUT_MILLIS

    public int INITIAL_TIMEOUT_MILLIS

### RETRANSMIT_TIMEOUT_MILLIS

    public int RETRANSMIT_TIMEOUT_MILLIS

### RECEIVE_CACHE_SIZE

    public int RECEIVE_CACHE_SIZE

### MAX_RETRANSMISSIONS

    public int MAX_RETRANSMISSIONS

### TI_PROGRESS

    public int TI_PROGRESS

### PROGRESS_INTERVAL_MILLIS

    public int PROGRESS_INTERVAL_MILLIS

### MAX_ENTRIES_PER_MS

    public int MAX_ENTRIES_PER_MS

Constructor Detail

### CommitmentProtocolImpl

    public CommitmentProtocolImpl(PeerReview<Handle,Identifier> peerreview,
                                  IdentityTransport<Handle,Identifier> transport,
                                  PeerInfoStore<Handle,Identifier> infoStore,
                                  AuthenticatorStore<Identifier> authStore,
                                  SecureHistory history,
                                  long timeToleranceMillis)
                           throws java.io.IOException

Throws:
  `java.io.IOException`

Method Detail

### initReceiveCache

    protected void initReceiveCache()
                             throws java.io.IOException

  Load the last events from the history into the cache

  Throws:
    `java.io.IOException`

### addToReceiveCache

    protected void addToReceiveCache(Identifier id,
                                     long senderSeq,
                                     long indexInLocalHistory)

### lookupPeer

    protected PeerInfo<Handle> lookupPeer(Handle handle)

### notifyCertificateAvailable

    public void notifyCertificateAvailable(Identifier id)

  Specified by:
    `notifyCertificateAvailable` in interface `CommitmentProtocol<Handle extends RawSerializable,Identifier extends RawSerializable>`

### logMessageIfNew

    public Tuple<AckMessage<Identifier>,java.lang.Boolean> logMessageIfNew(UserDataMessage<Handle> udm)

  Checks whether an incoming message is already in the log (which can happen with duplicates). If not, it adds the message to the log.

  Specified by:
    `logMessageIfNew` in interface `CommitmentProtocol<Handle extends RawSerializable,Identifier extends RawSerializable>`
  Returns:
    The ack message and whether it was already logged.
  Throws:
    `java.security.SignatureException`

### notifyStatusChange

    public void notifyStatusChange(Identifier id,
                                   int newStatus)

  Specified by:
    `notifyStatusChange` in interface `StatusChangeListener<Identifier extends RawSerializable>`

### makeProgressAllPeers

    protected void makeProgressAllPeers()

### makeProgress

    protected void makeProgress(Identifier idx)

  Tries to make progress on the message queue of the specified peer, e.g. after that peer has become TRUSTED, or after it has sent us an acknowledgment

### findRecvEntry

    protected long findRecvEntry(Identifier id,
                                 long seq)

### findAckEntry

    protected long findAckEntry(Identifier id,
                                long seq)

### handleIncomingMessage

    public void handleIncomingMessage(Handle source,
                                      UserDataMessage<Handle> msg,
                                      java.util.Map<java.lang.String,java.lang.Object> options)
                               throws java.io.IOException

  Handle an incoming USERDATA message

  Specified by:
    `handleIncomingMessage` in interface `CommitmentProtocol<Handle extends RawSerializable,Identifier extends RawSerializable>`
  Throws:
    `java.io.IOException`

### handleOutgoingMessage

    public MessageRequestHandle<Handle,java.nio.ByteBuffer> handleOutgoingMessage(Handle target,
                                                                                  java.nio.ByteBuffer message,
                                                                                  MessageCallback<Handle,java.nio.ByteBuffer> deliverAckToMe,
                                                                                  java.util.Map<java.lang.String,java.lang.Object> options)

  Specified by:
    `handleOutgoingMessage` in interface `CommitmentProtocol<Handle extends RawSerializable,Identifier extends RawSerializable>`

### handleIncomingAck

    public void handleIncomingAck(Handle source,
                                  AckMessage<Identifier> ackMessage,
                                  java.util.Map<java.lang.String,java.lang.Object> options)
                           throws java.io.IOException

  Specified by:
    `handleIncomingAck` in interface `CommitmentProtocol<Handle extends RawSerializable,Identifier extends RawSerializable>`
  Throws:
    `java.io.IOException`

### setTimeToleranceMillis

    public void setTimeToleranceMillis(long timeToleranceMillis)

  Specified by:
    `setTimeToleranceMillis` in interface `CommitmentProtocol<Handle extends RawSerializable,Identifier extends RawSerializable>`

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.