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.infostore
Class PeerInfoStoreImpl<Handle,Identifier>

    java.lang.Object
      org.mpisws.p2p.transport.peerreview.infostore.PeerInfoStoreImpl<Handle,Identifier>

All Implemented Interfaces:
  PeerInfoStore<Handle,Identifier>, PeerReviewConstants, StatusConstants

    public class PeerInfoStoreImpl<Handle,Identifier>

extends java.lang.Object
implements PeerInfoStore<Handle,Identifier>

In this class, the PeerReview library keeps information about its peers. Specifically, it stores the last checked authenticator plus any challenges, responses or proofs that are known about the peer.

Field Summary
`protected Environment` | `environment`
`protected Logger` | `logger`

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_MAKE_PROGRESS, 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
`PeerInfoStoreImpl(IdentityTransport<Handle,Identifier> transport, IdStrTranslator<Identifier> stringTranslator, AuthenticatorSerializer authSerializer, EvidenceSerializer evidenceSerializer, Environment env)`

Method Summary
`void` | `addEvidence(Identifier originator, Identifier subject, long timestamp, Evidence evidence)`
`void` | `addEvidence(Identifier originator, Identifier subject, long timestamp, Evidence evidence, Handle interestedParty)`
`void` | `addResponse(Identifier originator, Identifier subject, long timestamp, Evidence response)` Record a response to a challenge
`PeerInfoRecord<Handle,Identifier>` | `find(Identifier id)`
`PeerInfoRecord<Handle,Identifier>` | `find(Identifier id, boolean create)`
`EvidenceRecord<Handle,Identifier>` | `findEvidence(Identifier originator, Identifier subject, long timestamp)`
`EvidenceRecord<Handle,Identifier>` | `findEvidence(Identifier originator, Identifier subject, long timestamp, boolean create)`
`Evidence` | `getEvidence(Identifier originator, Identifier subject, long timestamp)` Get the actual bytes of a piece of evidence
`protected java.io.File` | `getFile(Identifier subject, Identifier originator, long timestamp, java.lang.String suffix)`
`java.lang.String` | `getHistoryName(Identifier subject)`
`Authenticator` | `getLastCheckedAuth(Identifier id)`
`int` | `getStatus(Identifier id)`
`static boolean` | `isProof(Evidence e)`
`void` | `markEvidenceAvailable(Identifier originator, Identifier subject, long timestamp, boolean isProof, Handle interestedParty)` This is called when new evidence becomes available, or (during startup) for all evidence files on disk.
`void` | `markResponseAvailable(Identifier originator, Identifier subject, long timestamp)` This is called when another node answers one of our challenges.
`void` | `notifyStatusChanged(Identifier subject, int newStatus)`
`void` | `setLastCheckedAuth(Identifier id, Authenticator auth)`
`void` | `setStatusChangeListener(StatusChangeListener<Identifier> listener)`
`boolean` | `setStorageDirectory(java.io.File directory)`
`EvidenceRecord<Handle,Identifier>` | `statFirstUnansweredChallenge(Identifier subject)` Look up the first unanswered challenge to a given node
`EvidenceRecord<Handle,Identifier>` | `statProof(Identifier subject)`

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

Field Detail

### environment

    protected Environment environment

### logger

    protected Logger logger

Constructor Detail

### PeerInfoStoreImpl

    public PeerInfoStoreImpl(IdentityTransport<Handle,Identifier> transport,
                             IdStrTranslator<Identifier> stringTranslator,
                             AuthenticatorSerializer authSerializer,
                             EvidenceSerializer evidenceSerializer,
                             Environment env)

Method Detail

### isProof

    public static boolean isProof(Evidence e)

### setStatusChangeListener

    public void setStatusChangeListener(StatusChangeListener<Identifier> listener)

  Specified by:
    `setStatusChangeListener` in interface `PeerInfoStore<Handle,Identifier>`

### findEvidence

    public EvidenceRecord<Handle,Identifier> findEvidence(Identifier originator,
                                                          Identifier subject,
                                                          long timestamp)

  Specified by:
    `findEvidence` in interface `PeerInfoStore<Handle,Identifier>`

### findEvidence

    public EvidenceRecord<Handle,Identifier> findEvidence(Identifier originator,
                                                          Identifier subject,
                                                          long timestamp,
                                                          boolean create)

  Specified by:
    `findEvidence` in interface `PeerInfoStore<Handle,Identifier>`

### markEvidenceAvailable

    public void markEvidenceAvailable(Identifier originator,
                                      Identifier subject,
                                      long timestamp,
                                      boolean isProof,
                                      Handle interestedParty)

  This is called when new evidence becomes available, or (during startup) for all evidence files on disk. We only keep some metadata in memory; the actual evidence is stored in a separate file on disk.

### markResponseAvailable

    public void markResponseAvailable(Identifier originator,
                                      Identifier subject,
                                      long timestamp)

  This is called when another node answers one of our challenges. Again, we only update the metadata in memory; the actual response is kept in a file on disk.

### addEvidence

    public void addEvidence(Identifier originator,
                            Identifier subject,
                            long timestamp,
                            Evidence evidence)
                     throws java.io.IOException

  Specified by:
    `addEvidence` in interface `PeerInfoStore<Handle,Identifier>`
  Throws:
    `java.io.IOException`

### addEvidence

    public void addEvidence(Identifier originator,
                            Identifier subject,
                            long timestamp,
                            Evidence evidence,
                            Handle interestedParty)
                     throws java.io.IOException

  Specified by:
    `addEvidence` in interface `PeerInfoStore<Handle,Identifier>`
  Throws:
    `java.io.IOException`

### getFile

    protected java.io.File getFile(Identifier subject,
                                   Identifier originator,
                                   long timestamp,
                                   java.lang.String suffix)

### getStatus

    public int getStatus(Identifier id)

  Specified by:
    `getStatus` in interface `PeerInfoStore<Handle,Identifier>`

### setStorageDirectory

    public boolean setStorageDirectory(java.io.File directory)
                                throws java.io.IOException

  Specified by:
    `setStorageDirectory` in interface `PeerInfoStore<Handle,Identifier>`
  Throws:
    `java.io.IOException`

### find

    public PeerInfoRecord<Handle,Identifier> find(Identifier id)

### find

    public PeerInfoRecord<Handle,Identifier> find(Identifier id,
                                                  boolean create)

### getLastCheckedAuth

    public Authenticator getLastCheckedAuth(Identifier id)

  Specified by:
    `getLastCheckedAuth` in interface `PeerInfoStore<Handle,Identifier>`

### setLastCheckedAuth

    public void setLastCheckedAuth(Identifier id,
                                   Authenticator auth)

  Specified by:
    `setLastCheckedAuth` in interface `PeerInfoStore<Handle,Identifier>`

### getEvidence

    public Evidence getEvidence(Identifier originator,
                                Identifier subject,
                                long timestamp)
                         throws java.io.IOException

  Get the actual bytes of a piece of evidence

  Specified by:
    `getEvidence` in interface `PeerInfoStore<Handle,Identifier>`
  Throws:
    `java.io.IOException`

### addResponse

    public void addResponse(Identifier originator,
                            Identifier subject,
                            long timestamp,
                            Evidence response)
                     throws java.io.IOException

  Record a response to a challenge

  Specified by:
    `addResponse` in interface `PeerInfoStore<Handle,Identifier>`
  Throws:
    `java.io.IOException`

### getHistoryName

    public java.lang.String getHistoryName(Identifier subject)

  Specified by:
    `getHistoryName` in interface `PeerInfoStore<Handle,Identifier>`

### notifyStatusChanged

    public void notifyStatusChanged(Identifier subject,
                                    int newStatus)

  Specified by:
    `notifyStatusChanged` in interface `PeerInfoStore<Handle,Identifier>`

### statFirstUnansweredChallenge

    public EvidenceRecord<Handle,Identifier> statFirstUnansweredChallenge(Identifier subject)

  Look up the first unanswered challenge to a given node

  Specified by:
    `statFirstUnansweredChallenge` in interface `PeerInfoStore<Handle,Identifier>`

### statProof

    public EvidenceRecord<Handle,Identifier> statProof(Identifier subject)

  Specified by:
    `statProof` in interface `PeerInfoStore<Handle,Identifier>`

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.