Package net.tomp2p.peers

Examples of net.tomp2p.peers.Number640


  public FutureGet getUnblocked(IParameters parameters) {
    logger.debug("Get. {}", parameters.toString());
    return getPeer()
        .get(parameters.getLKey())
        .from(new Number640(parameters.getLKey(), parameters.getDKey(), parameters.getCKey(),
            Number160.ZERO))
        .to(new Number640(parameters.getLKey(), parameters.getDKey(), parameters.getCKey(),
            Number160.MAX_VALUE)).descending().returnNr(1).start();
  }
View Full Code Here


  public FutureRemove removeUnblocked(IParameters parameters) {
    logger.debug("Remove. {}", parameters.toString());
    return getPeer()
        .remove(parameters.getLKey())
        .from(new Number640(parameters.getLKey(), parameters.getDKey(), parameters.getCKey(),
            Number160.ZERO))
        .to(new Number640(parameters.getLKey(), parameters.getDKey(), parameters.getCKey(),
            Number160.MAX_VALUE)).keyPair(parameters.getProtectionKeys()).start();
  }
View Full Code Here

  public FutureDigest getDigestUnblocked(IParameters parameters) {
    logger.debug("Get digest. {}", parameters.toString());
    return getPeer()
        .digest(parameters.getLKey())
        .from(new Number640(parameters.getLKey(), parameters.getDKey(), parameters.getCKey(),
            Number160.ZERO))
        .to(new Number640(parameters.getLKey(), parameters.getDKey(), parameters.getCKey(),
            Number160.MAX_VALUE)).start();

  }
View Full Code Here

  @Test
  public void testRemoveProcessStepRollBack() throws NoPeerConnectionException,
      InvalidProcessStateException {
    String locationKey = network.get(0).getNodeId();
    String contentKey = NetworkTestUtil.randomString();
    Number640 key = new Number640(Number160.createHash(locationKey), Number160.ZERO,
        Number160.createHash(contentKey), Number160.ZERO);
    H2HTestData testData = new H2HTestData(NetworkTestUtil.randomString());

    // manipulate the nodes, remove will not work
    network.get(0).getConnection().getPeer().getPeerBean().storage(new FakeGetTestStorage(key));
View Full Code Here

        .keyPair(key1).start();
    futurePut1.awaitUninterruptibly();
    assertTrue(futurePut1.isSuccess());

    // try to remove without content protection keys using from/to
    FutureRemove futureRemove1 = p1.remove(lKey).from(new Number640(lKey, dKey, cKey, Number160.ZERO))
        .to(new Number640(lKey, dKey, cKey, Number160.MAX_VALUE)).start();
    futureRemove1.awaitUninterruptibly();
    assertFalse(futureRemove1.isSuccess());

    // verify failed remove
    FutureGet futureGet2 = p2.get(lKey).setDomainKey(dKey).setContentKey(cKey).setVersionKey(vKey)
        .start();
    futureGet2.awaitUninterruptibly();
    assertTrue(futureGet2.isSuccess());
    // should have been not modified
    assertEquals(testData1, (String) futureGet2.getData().object());
    assertEquals(key1.getPublic(), futureGet2.getData().publicKey());

    // remove with wrong content protection keys 2 using from/to
    FutureRemove futureRemove2a = p1.remove(lKey).from(new Number640(lKey, dKey, cKey, Number160.ZERO))
        .to(new Number640(lKey, dKey, cKey, Number160.MAX_VALUE)).keyPair(key2).start();
    futureRemove2a.awaitUninterruptibly();
    assertFalse(futureRemove2a.isSuccess());

    // verify failed remove
    FutureGet futureGet3 = p2.get(lKey).setDomainKey(dKey).setContentKey(cKey).setVersionKey(vKey)
        .start();
    futureGet3.awaitUninterruptibly();
    assertTrue(futureGet3.isSuccess());
    // should have been not modified
    assertEquals(testData1, (String) futureGet3.getData().object());
    assertEquals(key1.getPublic(), futureGet3.getData().publicKey());

    // remove with correct content protection keys 1 using from/to
    FutureRemove futureRemove4 = p1.remove(lKey).from(new Number640(lKey, dKey, cKey, Number160.ZERO))
        .to(new Number640(lKey, dKey, cKey, Number160.MAX_VALUE)).keyPair(key1).start();
    futureRemove4.awaitUninterruptibly();
    assertTrue(futureRemove4.isSuccess());

    // verify remove
    FutureGet futureGet4 = p2.get(lKey).setDomainKey(dKey).setContentKey(cKey).setVersionKey(vKey)
View Full Code Here

        .keyPair(key).start();
    futurePut2.awaitUninterruptibly();
    assertTrue(futurePut2.isSuccess());

    // remove with correct content protection keys using from/to
    FutureRemove futureRemove = p1.remove(lKey).from(new Number640(lKey, dKey, cKey, Number160.ZERO))
        .to(new Number640(lKey, dKey, cKey, Number160.MAX_VALUE)).keyPair(key).start();
    futureRemove.awaitUninterruptibly();
    assertTrue(futureRemove.isSuccess());

    // verify remove of version 1
    FutureGet futureGet4a = p2.get(lKey).setContentKey(cKey).setVersionKey(vKey1).start();
View Full Code Here

   *         otherwise <code>false</code>
   */
  protected boolean checkIfMyVerisonWins(NavigableMap<Number640, Number160> keyDigest,
      PeerAddress peerAddress) {
    /* Check if based on entry exists */
    if (!keyDigest.containsKey(new Number640(parameters.getLKey(), parameters.getDKey(), parameters
        .getCKey(), parameters.getData().getBasedOnKey()))) {
      logger.warn("Put verification: Peer '{}' does not contain based on version. '{}'",
          peerAddress, parameters.toString());
      // something is definitely wrong with this peer
      return true;
    } else {
      // figure out the next version based on same version
      Number640 entryBasingOnSameParent = getSuccessor(keyDigest);
      if (entryBasingOnSameParent == null) {
        if (keyDigest.firstKey().getVersionKey().equals(parameters.getData().getBasedOnKey())) {
          logger.error("Put verification: Peer '{}' has no successor version. '{}'",
              peerAddress, parameters.toString());
          // this peer doesn't contain any successor version, with this peer is something wrong
          return true;
        } else {
          logger.error("Put verification: Peer '{}' has a corrupt version history. '{}'", peerAddress,
              parameters.toString());
          return true;
        }
      } else {
        int compare = entryBasingOnSameParent.getVersionKey().compareTo(parameters.getVersionKey());
        if (compare == 0) {
          logger.error("Put verification: Peer '{}' has same version. '{}'",
              peerAddress, parameters.toString());
          return true;
        } else if (compare < 0) {
View Full Code Here

   * @param keyDigest
   *            a digest containing the parent version (based on)
   * @return the parent of the new version
   */
  private Number640 getSuccessor(NavigableMap<Number640, Number160> keyDigest) {
    Number640 entryBasingOnSameParent = null;
    for (Number640 key : keyDigest.keySet()) {
      if (keyDigest.get(key).equals(parameters.getData().getBasedOnKey())) {
        entryBasingOnSameParent = key;
        break;
      }
View Full Code Here

  private void cleanupVersions(Number640 key, PublicKey publicKey) {
    NavigableMap<Number640, Number160> history = getHistoryOnStorage(key);

    // long now = System.currentTimeMillis();
    while (history.size() > H2HConstants.MAX_VERSIONS_HISTORY) {
      Number640 toRemove = history.firstKey();
      // if (toRemove.getVersionKey().timestamp() + H2HConstants.MIN_VERSION_AGE_BEFORE_REMOVAL_MS >
      // now) {
      // // stop removal because oldest version is too 'young'
      // break;
      // } else {
View Full Code Here

    }
  }

  private NavigableMap<Number640, Number160> getHistoryOnStorage(Number640 key) {
    return super.digest(
        new Number640(key.getLocationKey(), key.getDomainKey(), key.getContentKey(), Number160.ZERO),
        new Number640(key.getLocationKey(), key.getDomainKey(), key.getContentKey(),
            Number160.MAX_VALUE), -1, true).getDigests();
  }
View Full Code Here

TOP

Related Classes of net.tomp2p.peers.Number640

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.