Rice Pastry API

org.mpisws.p2p.transport.peerreview.replay
Class VerifierImpl<Handle,Identifier>

java.lang.Object
  extended by org.mpisws.p2p.transport.peerreview.replay.VerifierImpl<Handle,Identifier>
All Implemented Interfaces:
PeerReviewConstants, Verifier<Handle,Identifier>

public class VerifierImpl<Handle,Identifier>
extends java.lang.Object
implements Verifier<Handle,Identifier>


Field Summary
protected  Serializer<Handle> handleSerializer
           
protected  SecureHistory history
           
protected  Serializer<Identifier> idSerializer
           
protected  Handle localHandle
           
protected  Logger logger
           
protected  IdentityTransport<Handle,Identifier> transport
           
 
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, PROGRESS_INTERVAL_MILLIS, PROOF_INCONSISTENT, PROOF_NONCONFORMANT, RESP_AUDIT, RESP_SEND, STATE_SEND_AUDIT, STATE_WAIT_FOR_LOG, STATUS_EXPOSED, STATUS_SUSPECTED, STATUS_TRUSTED, TI_AUTH_PUSH, TI_CHECKPOINT, TI_MAINTENANCE, TI_MAKE_PROGRESS, TI_MAX_RESERVED, TI_START_AUDITS, TI_STATUS_INFO, VALID
 
Constructor Summary
VerifierImpl(RandomSource prng, Serializer<Handle> handleSerializer, Serializer<Identifier> idSerializer, IdentityTransport<Handle,Identifier> transport, SecureHistory history, Handle localHandle, int firstEntryToReplay, java.lang.Object extInfo, Logger logger)
           
 
Method Summary
 void close(int socketId)
           
protected  java.io.IOException deserializeException(InputBuffer nextEvent)
           
protected  void fetchNextEvent()
          Fetch the next log entry, or set the EOF flag
 void generatedSocketException(int socketId, java.io.IOException ioe)
           
 java.lang.Object getExtInfo()
           
 IndexEntry getNextEvent()
           
 long getNextEventTime()
           
protected  void incomingSocket(Handle from, int socketId)
           
 boolean isSuccess()
           
 boolean makeProgress()
          This is called by the Audit protocol to make another replay step; it returns true if further calls are necessary, and false if the replay has finished.
 int openSocket(Handle target)
          Return the new socketId
 SocketRequestHandle<Handle> openSocket(Handle i, SocketCallback<Handle> deliverSocketToMe, java.util.Map<java.lang.String,java.lang.Object> options)
           
 int readSocket(int socketId, java.nio.ByteBuffer dst)
          Return the bytes read.
 void registerEvent(EventCallback callback, short... eventType)
          This binds specific event types to one of the handlers
 void registerEvent(EventCallback callback, short eventType)
           
 MessageRequestHandle<Handle,java.nio.ByteBuffer> sendMessage(Handle target, java.nio.ByteBuffer message, MessageCallback<Handle,java.nio.ByteBuffer> deliverAckToMe, java.util.Map<java.lang.String,java.lang.Object> options)
          Called by the state machine when it wants to send a message
 void setApplication(PeerReviewCallback<Handle,Identifier> app)
           
 void shutdownOutput(int socketId)
           
protected  void socketException(int socketId, java.io.IOException ioe)
           
protected  void socketIO(int socketId, boolean canRead, boolean canWrite)
           
protected  void socketOpened(int socketId)
           
 boolean verifiedOK()
           
 int writeSocket(int socketId, java.nio.ByteBuffer src)
          Return the bytes written.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

localHandle

protected Handle localHandle

history

protected SecureHistory history

logger

protected Logger logger

handleSerializer

protected Serializer<Handle> handleSerializer

idSerializer

protected Serializer<Identifier> idSerializer

transport

protected IdentityTransport<Handle,Identifier> transport
Constructor Detail

VerifierImpl

public VerifierImpl(RandomSource prng,
                    Serializer<Handle> handleSerializer,
                    Serializer<Identifier> idSerializer,
                    IdentityTransport<Handle,Identifier> transport,
                    SecureHistory history,
                    Handle localHandle,
                    int firstEntryToReplay,
                    java.lang.Object extInfo,
                    Logger logger)
             throws java.io.IOException
Throws:
java.io.IOException
Method Detail

getExtInfo

public java.lang.Object getExtInfo()

fetchNextEvent

protected void fetchNextEvent()
Fetch the next log entry, or set the EOF flag


verifiedOK

public boolean verifiedOK()
Specified by:
verifiedOK in interface Verifier<Handle,Identifier>

getNextEvent

public IndexEntry getNextEvent()

setApplication

public void setApplication(PeerReviewCallback<Handle,Identifier> app)
Specified by:
setApplication in interface Verifier<Handle,Identifier>

registerEvent

public void registerEvent(EventCallback callback,
                          short... eventType)
This binds specific event types to one of the handlers


registerEvent

public void registerEvent(EventCallback callback,
                          short eventType)

makeProgress

public boolean makeProgress()
This is called by the Audit protocol to make another replay step; it returns true if further calls are necessary, and false if the replay has finished. The idea is that we can stop calling this if there is more important work to do, e.g. handle foreground requests

Specified by:
makeProgress in interface Verifier<Handle,Identifier>

sendMessage

public MessageRequestHandle<Handle,java.nio.ByteBuffer> sendMessage(Handle target,
                                                                    java.nio.ByteBuffer message,
                                                                    MessageCallback<Handle,java.nio.ByteBuffer> deliverAckToMe,
                                                                    java.util.Map<java.lang.String,java.lang.Object> options)
Called by the state machine when it wants to send a message


getNextEventTime

public long getNextEventTime()

isSuccess

public boolean isSuccess()

deserializeException

protected java.io.IOException deserializeException(InputBuffer nextEvent)
                                            throws java.io.IOException
Throws:
java.io.IOException

openSocket

public SocketRequestHandle<Handle> openSocket(Handle i,
                                              SocketCallback<Handle> deliverSocketToMe,
                                              java.util.Map<java.lang.String,java.lang.Object> options)

socketIO

protected void socketIO(int socketId,
                        boolean canRead,
                        boolean canWrite)
                 throws java.io.IOException
Throws:
java.io.IOException

incomingSocket

protected void incomingSocket(Handle from,
                              int socketId)
                       throws java.io.IOException
Throws:
java.io.IOException

socketOpened

protected void socketOpened(int socketId)
                     throws java.io.IOException
Throws:
java.io.IOException

socketException

protected void socketException(int socketId,
                               java.io.IOException ioe)
                        throws java.io.IOException
Throws:
java.io.IOException

openSocket

public int openSocket(Handle target)
               throws java.io.IOException
Return the new socketId

Parameters:
i -
Returns:
the new socketId, Integer.MIN_VALUE for an error
Throws:
java.io.IOException

readSocket

public int readSocket(int socketId,
                      java.nio.ByteBuffer dst)
               throws java.io.IOException
Return the bytes read.

Parameters:
socketId -
Returns:
number of bytes read
Throws:
java.io.IOException

generatedSocketException

public void generatedSocketException(int socketId,
                                     java.io.IOException ioe)

writeSocket

public int writeSocket(int socketId,
                       java.nio.ByteBuffer src)
                throws java.io.IOException
Return the bytes written.

Parameters:
socketId -
Returns:
number of bytes written
Throws:
java.io.IOException

close

public void close(int socketId)

shutdownOutput

public void shutdownOutput(int socketId)

Rice Pastry API

Copyright © 2001-2005 - Rice Pastry.