Rice Pastry API

org.mpisws.p2p.transport.peerreview.statement
Class StatementProtocolImpl<Handle extends RawSerializable,Identifier extends RawSerializable>

java.lang.Object
  extended by org.mpisws.p2p.transport.peerreview.statement.StatementProtocolImpl<Handle,Identifier>
All Implemented Interfaces:
PeerReviewConstants, StatementProtocol<Handle,Identifier>, StatusConstants

public class StatementProtocolImpl<Handle extends RawSerializable,Identifier extends RawSerializable>
extends java.lang.Object
implements StatementProtocol<Handle,Identifier>


Field Summary
protected  ChallengeResponseProtocol<Handle,Identifier> challengeProtocol
           
protected  java.util.Map<Identifier,java.util.LinkedList<IncompleteStatementInfo<Handle,Identifier>>> incompleteStatement
           
protected  PeerInfoStore<Handle,Identifier> infoStore
           
protected  Logger logger
           
protected  PeerReview<Handle,Identifier> peerreview
           
protected  boolean progressTimerActive
           
protected  IdentityTransport<Handle,Identifier> transport
           
 
Fields inherited from interface org.mpisws.p2p.transport.peerreview.statement.StatementProtocol
MAX_INCOMPLETE_STATEMENTS, PROGRESS_INTERVAL_MICROS, STATEMENT_COMPLETION_TIMEOUT_MILLIS, TI_MAKE_PROGRESS
 
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, PROGRESS_INTERVAL_MILLIS, 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_MAX_RESERVED, TI_START_AUDITS, TI_STATUS_INFO, VALID
 
Fields inherited from interface org.mpisws.p2p.transport.peerreview.StatusConstants
STATUS_EXPOSED, STATUS_SUSPECTED, STATUS_TRUSTED
 
Constructor Summary
StatementProtocolImpl(PeerReview<Handle,Identifier> peerreview, ChallengeResponseProtocol<Handle,Identifier> challengeProtocol, PeerInfoStore<Handle,Identifier> infoStore, IdentityTransport<Handle,Identifier> transport)
           
 
Method Summary
 void cleanupIncompleteStatements()
          If a message hangs around in our queue for too long, we discard it
 void handleIncomingStatement(Handle source, Statement<Identifier> statement, java.util.Map<java.lang.String,java.lang.Object> options)
          Incoming ACCUSTION and RESPONSE messages come here first.
 void makeProgressOnStatement(IncompleteStatementInfo<Handle,Identifier> idx)
           
 void notifyCertificateAvailable(Identifier id)
          Called if we have received a certificate for a new nodeID.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

protected Logger logger

incompleteStatement

protected java.util.Map<Identifier extends RawSerializable,java.util.LinkedList<IncompleteStatementInfo<Handle extends RawSerializable,Identifier extends RawSerializable>>> incompleteStatement

challengeProtocol

protected ChallengeResponseProtocol<Handle extends RawSerializable,Identifier extends RawSerializable> challengeProtocol

transport

protected IdentityTransport<Handle extends RawSerializable,Identifier extends RawSerializable> transport

peerreview

protected PeerReview<Handle extends RawSerializable,Identifier extends RawSerializable> peerreview

infoStore

protected PeerInfoStore<Handle extends RawSerializable,Identifier extends RawSerializable> infoStore

progressTimerActive

protected boolean progressTimerActive
Constructor Detail

StatementProtocolImpl

public StatementProtocolImpl(PeerReview<Handle,Identifier> peerreview,
                             ChallengeResponseProtocol<Handle,Identifier> challengeProtocol,
                             PeerInfoStore<Handle,Identifier> infoStore,
                             IdentityTransport<Handle,Identifier> transport)
Method Detail

notifyCertificateAvailable

public void notifyCertificateAvailable(Identifier id)
Called if we have received a certificate for a new nodeID. If any messages in our queue were waiting for this certificate, we may be able to forward them now.


cleanupIncompleteStatements

public void cleanupIncompleteStatements()
If a message hangs around in our queue for too long, we discard it


handleIncomingStatement

public void handleIncomingStatement(Handle source,
                                    Statement<Identifier> statement,
                                    java.util.Map<java.lang.String,java.lang.Object> options)
Incoming ACCUSTION and RESPONSE messages come here first. We check whether we have all the necessary nodeID certificates; if not, we request them from the sender.

Specified by:
handleIncomingStatement in interface StatementProtocol<Handle extends RawSerializable,Identifier extends RawSerializable>

makeProgressOnStatement

public void makeProgressOnStatement(IncompleteStatementInfo<Handle,Identifier> idx)

Rice Pastry API

Copyright © 2001-2005 - Rice Pastry.


Imprint-Dataprotection