net.i2p.router.networkdb.kademlia

## Class StoreState

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

-      class StoreState
      extends Object

- - ### Constructor Summary

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

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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`