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

## net.i2p.router.networkdb.kademlia
Class StoreState

    java.lang.Object
      net.i2p.router.networkdb.kademlia.StoreState

     class StoreState

extends Object

Constructor Summary
`StoreState(RouterContext ctx, Hash key, DatabaseEntry data)`
`StoreState(RouterContext ctx, Hash key, DatabaseEntry data, Set<Hash> toSkip)`

Method Summary
`void` | `addPending(Collection<Hash> pending)`
`void` | `addPending(Hash peer)`
`void` | `addPending(Hash peer, MessageWrapper.WrappedMessage msg)`
`void` | `addSkipped(Hash peer)` we aren't even going to try to contact this peer
`void` | `complete(boolean completed)`
`boolean` | `completed()`
`long` | `confirmed(Hash peer)`
`Set<Hash>` | `getAttempted()`
`int` | `getCompleteCount()`
`DatabaseEntry` | `getData()`
`Set<Hash>` | `getFailed()` public Set getSuccessfulExploratory() { synchronized (_successfulExploratoryPeers) { return (Set)_successfulExploratoryPeers.clone(); } }
`Set<Hash>` | `getPending()`
`MessageWrapper.WrappedMessage` | `getPendingMessage(Hash peer)`
`Set<Hash>` | `getSuccessful()`
`Hash` | `getTarget()`
`long` | `getWhenCompleted()`
`long` | `getWhenStarted()`
`void` | `replyTimeout(Hash peer)` public long confirmedExploratory(Hash peer) { long rv = -1; synchronized (_pendingPeers) { _pendingPeers.remove(peer); Long when = _pendingPeerTimes.remove(peer); if (when != null) rv = _context.clock().now() - when.longValue(); } synchronized (_successfulExploratoryPeers) { _successfulExploratoryPeers.add(peer); } return rv; }
`String` | `toString()`

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

Constructor Detail

### StoreState

    public StoreState(RouterContext ctx,
                      Hash key,
                      DatabaseEntry data)

### StoreState

    public StoreState(RouterContext ctx,
                      Hash key,
                      DatabaseEntry data,
                      Set<Hash> toSkip)

Method Detail

### getTarget

    public Hash getTarget()

### getData

    public DatabaseEntry getData()

### getPending

    public Set<Hash> getPending()

### getAttempted

    public Set<Hash> getAttempted()

### getSuccessful

    public Set<Hash> getSuccessful()

### getFailed

    public Set<Hash> getFailed()

  public Set getSuccessfulExploratory() { synchronized (_successfulExploratoryPeers) { return (Set)_successfulExploratoryPeers.clone(); } }

### completed

    public boolean completed()

### complete

    public void complete(boolean completed)

### getCompleteCount

    public int getCompleteCount()

### getWhenStarted

    public long getWhenStarted()

### getWhenCompleted

    public long getWhenCompleted()

### addPending

    public void addPending(Hash peer,
                           MessageWrapper.WrappedMessage msg)

### getPendingMessage

    public MessageWrapper.WrappedMessage getPendingMessage(Hash peer)

### addPending

    public void addPending(Hash peer)

### addPending

    public void addPending(Collection<Hash> pending)

### addSkipped

    public void addSkipped(Hash peer)

  we aren't even going to try to contact this peer

### confirmed

    public long confirmed(Hash peer)

### replyTimeout

    public void replyTimeout(Hash peer)

  public long confirmedExploratory(Hash peer) { long rv = -1; synchronized (_pendingPeers) { _pendingPeers.remove(peer); Long when = _pendingPeerTimes.remove(peer); if (when != null) rv = _context.clock().now() - when.longValue(); } synchronized (_successfulExploratoryPeers) { _successfulExploratoryPeers.add(peer); } return rv; }

### toString

    public String toString()

  Overrides:
    `toString` in class `Object`

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