Package net.tomp2p.peers

Examples of net.tomp2p.peers.Number640


    Assert.assertEquals(testData1, (String) futureGet1b.data().object());

    // try to remove without key pair using from/to
    // -----------------------------------------

    FutureRemove futureRemove1a = p1.remove(lKey).from(new Number640(lKey, Number160.ZERO, cKey, Number160.ZERO))
            .to(new Number640(lKey, Number160.ZERO, cKey, Number160.MAX_VALUE)).start();
    futureRemove1a.awaitUninterruptibly();
    Assert.assertFalse(futureRemove1a.isSuccess());

    FutureGet futureGet2a = p1.get(lKey).contentKey(cKey).start();
    futureGet2a.awaitUninterruptibly();
    Assert.assertTrue(futureGet2a.isSuccess());
    // should have been not modified
    Assert.assertEquals(testData1, (String) futureGet2a.data().object());

    FutureRemove futureRemove1b = p2.remove(lKey).from(new Number640(lKey, Number160.ZERO, cKey, Number160.ZERO))
            .to(new Number640(lKey, Number160.ZERO, cKey, Number160.MAX_VALUE)).start();
    futureRemove1b.awaitUninterruptibly();
    Assert.assertFalse(futureRemove1b.isSuccess());

    FutureGet futureGet2b = p2.get(lKey).contentKey(cKey).start();
    futureGet2b.awaitUninterruptibly();
    Assert.assertTrue(futureGet2b.isSuccess());
    // should have been not modified
    Assert.assertEquals(testData1, (String) futureGet2b.data().object());

    // remove with wrong key pair
    // -----------------------------------------------------------

    FutureRemove futureRemove2a = p1.remove(lKey).from(new Number640(lKey, Number160.ZERO, cKey, Number160.ZERO))
            .to(new Number640(lKey, Number160.ZERO, cKey, Number160.MAX_VALUE)).keyPair(key2).start();
    futureRemove2a.awaitUninterruptibly();
    Assert.assertFalse(futureRemove2a.isSuccess());
    FutureGet futureGet3a = p2.get(lKey).contentKey(cKey).start();
    futureGet3a.awaitUninterruptibly();
    Assert.assertTrue(futureGet3a.isSuccess());
    // should have been not modified
    Assert.assertEquals(testData1, (String) futureGet3a.data().object());
    FutureRemove futureRemove2b = p2.remove(lKey).from(new Number640(lKey, Number160.ZERO, cKey, Number160.ZERO))
            .to(new Number640(lKey, Number160.ZERO, cKey, Number160.MAX_VALUE)).keyPair(key2).start();
    futureRemove2b.awaitUninterruptibly();
    Assert.assertFalse(futureRemove2b.isSuccess());

    FutureGet futureGet3b = p2.get(lKey).contentKey(cKey).start();
    futureGet3b.awaitUninterruptibly();
    Assert.assertTrue(futureGet3b.isSuccess());
    // should have been not modified
    Assert.assertEquals(testData1, (String) futureGet3b.data().object());
    // remove with correct key pair
    // -----------------------------------------------------------

    FutureRemove futureRemove4 = p1.remove(lKey).from(new Number640(lKey, Number160.ZERO, cKey, Number160.ZERO))
            .to(new Number640(lKey, Number160.ZERO, cKey, Number160.MAX_VALUE)).keyPair(key1).start();
    futureRemove4.awaitUninterruptibly();
    Assert.assertTrue(futureRemove4.isSuccess());
    FutureGet futureGet4a = p2.get(lKey).contentKey(cKey).start();
    futureGet4a.awaitUninterruptibly();
    Assert.assertFalse(futureGet4a.isSuccess());
View Full Code Here


          Number160 domainKey = new Number160(me2);
          buf.readBytes(me2);
          Number160 contentKey = new Number160(me2);
          buf.readBytes(me2);
          Number160 versionKey = new Number160(me2);
          keyCollection.add(new Number640(locationKey, domainKey, contentKey, versionKey));
        }
        message.keyCollection(keyCollection);
        lastContent = contentTypes.poll();
        keyCollectionSize = -1;
        keyCollection = null;
        break;
      case MAP_KEY640_DATA:
        if (mapSize == -1 && buf.readableBytes() < Utils.INTEGER_BYTE_SIZE) {
          return false;
        }
        if (mapSize == -1) {
          mapSize = buf.readInt();
        }
        if (dataMap == null) {
          dataMap = new DataMap(new HashMap<Number640, Data>(2 * mapSize));
        }
        if (data != null) {
          if (!data.decodeBuffer(buf)) {
            return false;
          }
          if (!data.decodeDone(buf, message.publicKey(0), signatureFactory)) {
            return false;
          }
          data = null;
          key = null;
        }
        for (int i = dataMap.size(); i < mapSize; i++) {
          if (key == null) {
            if (buf.readableBytes() < Number160.BYTE_ARRAY_SIZE + Number160.BYTE_ARRAY_SIZE
                + Number160.BYTE_ARRAY_SIZE + Number160.BYTE_ARRAY_SIZE) {
              return false;
            }
            byte[] me3 = new byte[Number160.BYTE_ARRAY_SIZE];
            buf.readBytes(me3);
            Number160 locationKey = new Number160(me3);
            buf.readBytes(me3);
            Number160 domainKey = new Number160(me3);
            buf.readBytes(me3);
            Number160 contentKey = new Number160(me3);
            buf.readBytes(me3);
            Number160 versionKey = new Number160(me3);
            key = new Number640(locationKey, domainKey, contentKey, versionKey);
          }
          data = Data.decodeHeader(buf, signatureFactory);
          if (data == null) {
            return false;
          }
          dataMap.dataMap().put(key, data);

          if (!data.decodeBuffer(buf)) {
            return false;
          }
          if (!data.decodeDone(buf, message.publicKey(0), signatureFactory)) {
            return false;
          }
          // if we have signed the message, set the public key anyway, but only if we indicated so
          if (message.isSign() && message.publicKey(0) != null && data.hasPublicKey()
              && (data.publicKey() == null || data.publicKey() == PeerBuilder.EMPTY_PUBLIC_KEY)) {
            data.publicKey(message.publicKey(0));
          }
          data = null;
          key = null;
        }

        message.setDataMap(dataMap);
        lastContent = contentTypes.poll();
        mapSize = -1;
        dataMap = null;
        break;
      case MAP_KEY640_KEYS:
        if (keyMap640KeysSize == -1 && buf.readableBytes() < Utils.INTEGER_BYTE_SIZE) {
          return false;
        }
        if (keyMap640KeysSize == -1) {
          keyMap640KeysSize = buf.readInt();
        }
        if (keyMap640Keys == null) {
          keyMap640Keys = new KeyMap640Keys(new TreeMap<Number640, Collection<Number160>>());
        }

        final int meta = Number160.BYTE_ARRAY_SIZE + Number160.BYTE_ARRAY_SIZE
            + Number160.BYTE_ARRAY_SIZE + Number160.BYTE_ARRAY_SIZE;

        for (int i = keyMap640Keys.size(); i < keyMap640KeysSize; i++) {
          if (buf.readableBytes() < meta + Utils.BYTE_BYTE_SIZE) {
            return false;
          }
          size = buf.getUnsignedByte(buf.readerIndex() + meta);
         
          if (buf.readableBytes() < meta + Utils.BYTE_BYTE_SIZE + (size * Number160.BYTE_ARRAY_SIZE )) {
            return false;
          }
          byte[] me3 = new byte[Number160.BYTE_ARRAY_SIZE];
          buf.readBytes(me3);
          Number160 locationKey = new Number160(me3);
          buf.readBytes(me3);
          Number160 domainKey = new Number160(me3);
          buf.readBytes(me3);
          Number160 contentKey = new Number160(me3);
          buf.readBytes(me3);
          Number160 versionKey = new Number160(me3);

          int numBasedOn = buf.readByte();
          Set<Number160> value = new HashSet<Number160>(numBasedOn);
          for (int j = 0; j < numBasedOn; j++) {
            buf.readBytes(me3);
            Number160 basedOnKey = new Number160(me3);
            value.add(basedOnKey);
          }

          keyMap640Keys.put(new Number640(locationKey, domainKey, contentKey, versionKey), value);
        }

        message.keyMap640Keys(keyMap640Keys);
        lastContent = contentTypes.poll();
        keyMap640KeysSize = -1;
        keyMap640Keys = null;
        break;
      case MAP_KEY640_BYTE:
        if (keyMapByteSize == -1 && buf.readableBytes() < Utils.INTEGER_BYTE_SIZE) {
          return false;
        }
        if (keyMapByteSize == -1) {
          keyMapByteSize = buf.readInt();
        }
        if (keyMapByte == null) {
          keyMapByte = new KeyMapByte(new HashMap<Number640, Byte>(2 * keyMapByteSize));
        }

        for (int i = keyMapByte.size(); i < keyMapByteSize; i++) {
          if (buf.readableBytes() < Number160.BYTE_ARRAY_SIZE + Number160.BYTE_ARRAY_SIZE
              + Number160.BYTE_ARRAY_SIZE + Number160.BYTE_ARRAY_SIZE + 1) {
            return false;
          }
          byte[] me3 = new byte[Number160.BYTE_ARRAY_SIZE];
          buf.readBytes(me3);
          Number160 locationKey = new Number160(me3);
          buf.readBytes(me3);
          Number160 domainKey = new Number160(me3);
          buf.readBytes(me3);
          Number160 contentKey = new Number160(me3);
          buf.readBytes(me3);
          Number160 versionKey = new Number160(me3);
          byte value = buf.readByte();
          keyMapByte.put(new Number640(locationKey, domainKey, contentKey, versionKey), value);
        }

        message.keyMapByte(keyMapByte);
        lastContent = contentTypes.poll();
        keyMapByteSize = -1;
View Full Code Here

                retVal.put(entry.getKey(), entry.getValue().hash());
            }

        } else if (dataMapConvert != null) {
            for (Map.Entry<Number160, Data> entry : dataMapConvert.entrySet()) {
                retVal.put(new Number640(locationKey, domainKey, entry.getKey(), versionKey), entry
                        .getValue().hash());
            }
        }
        return retVal;
    }
View Full Code Here

    private static Map<Number640, Data> convert(final DataMap d) {
        final Map<Number640, Data> dataMap3;
        if (d.dataMapConvert != null) {
            dataMap3 = new HashMap<Number640, Data>(d.dataMapConvert.size());
            for (Map.Entry<Number160, Data> entry : d.dataMapConvert.entrySet()) {
                dataMap3.put(new Number640(d.locationKey, d.domainKey, entry.getKey(), d.versionKey),
                        entry.getValue());
            }
        } else {
            dataMap3 = d.dataMap;
        }
View Full Code Here

        queueToAsk.addAll(peerAddresses);
        alreadyAsked.add(peerBean.serverPeerAddress());
        potentialHits.add(peerBean.serverPeerAddress());
        // domainkey can be null if we bootstrap
        if (type == Type.REQUEST_2 && routingBuilder.domainKey() != null && !randomSearch && peerBean.digestStorage() !=null) {
            final Number640 from;
            final Number640 to;
            if (routingBuilder.from()!=null && routingBuilder.to()!=null) {
              from = routingBuilder.from();
              to = routingBuilder.to();
            } else if (routingBuilder.domainKey() == null) {
                from = new Number640(routingBuilder.locationKey(), Number160.ZERO, Number160.ZERO,
                        Number160.ZERO);
                to = new Number640(routingBuilder.locationKey(), Number160.MAX_VALUE, Number160.MAX_VALUE,
                        Number160.MAX_VALUE);
            } else if (routingBuilder.contentKey() == null) {
                from = new Number640(routingBuilder.locationKey(), routingBuilder.domainKey(),
                        Number160.ZERO, Number160.ZERO);
                to = new Number640(routingBuilder.locationKey(), routingBuilder.domainKey(),
                        Number160.MAX_VALUE, Number160.MAX_VALUE);
            } else {
                from = new Number640(routingBuilder.locationKey(), routingBuilder.domainKey(),
                        routingBuilder.contentKey(), Number160.ZERO);
                to = new Number640(routingBuilder.locationKey(), routingBuilder.domainKey(),
                        routingBuilder.contentKey(), Number160.MAX_VALUE);
            }
            DigestInfo digestBean = peerBean.digestStorage().digest(from, to, -1, true);
            if (digestBean.size() > 0) {
                directHits.put(peerBean.serverPeerAddress(), digestBean);
View Full Code Here

    private Collection<Number640> convert(final KeyCollection k) {
        final Collection<Number640> keys3;
        if (k.keysConvert != null) {
            keys3 = new ArrayList<Number640>(k.keysConvert.size());
            for (Number160 n160 : k.keysConvert) {
                keys3.add(new Number640(k.locationKey, k.domainKey, k.versionKey, n160));
            }
        } else {
            keys3 = k.keys;
        }
        return keys3;
View Full Code Here

    testPutVersionFork(new StorageLayer(storageM));
    storageM.close();
  }

  private void testPutVersionFork(StorageLayer storage) throws IOException {
    Number640 key1 = new Number640(locationKey, domainKey, content1, new Number160(0));
    Number640 key2a = new Number640(locationKey, domainKey, content1, new Number160(1));
    Number640 key2b = new Number640(locationKey, domainKey, content1, new Number160(2));
    Data data1 = new Data("test1");
    Data data2a = new Data("test2a").addBasedOn(key1.versionKey());
    Data data2b = new Data("test2b").addBasedOn(key1.versionKey());
    Enum<?> store = storage.put(key1, data1, null, true, false);
    Assert.assertEquals(PutStatus.OK, store);
View Full Code Here

    testPutGetPrepare(new StorageLayer(storageM));
    storageM.close();
  }

  private void testPutGetPrepare(StorageLayer storage) throws IOException {
    Number640 key1 = new Number640(locationKey, domainKey, content1, new Number160(0));
    Number640 key2 = new Number640(locationKey, domainKey, content1, new Number160(1));
    Data data1 = new Data("test1");
    Data data2 = new Data("test2").prepareFlag();
    Enum<?> store = storage.put(key1, data1, null, true, false);
    Assert.assertEquals(PutStatus.OK, store);
    store = storage.put(key2, data2, null, true, false);
View Full Code Here

    testPutGetRangePrepare(new StorageLayer(storageM));
    storageM.close();
  }

  private void testPutGetRangePrepare(StorageLayer storage) throws IOException, ClassNotFoundException {
    Number640 key1 = new Number640(locationKey, domainKey, content1, new Number160(0));
    Number640 key2 = new Number640(locationKey, domainKey, content1, new Number160(1));
    Data data1 = new Data("test1");
    Data data2 = new Data("test2").prepareFlag();
    Enum<?> store = storage.put(key1, data1, null, true, false);
    Assert.assertEquals(PutStatus.OK, store);
    store = storage.put(key2, data2, null, true, false);
    Assert.assertEquals(PutStatus.OK, store);
    NavigableMap<Number640, Data> map = storage.get(new Number640(locationKey, domainKey, content1,
        Number160.ZERO), new Number640(locationKey, domainKey, content1, Number160.MAX_VALUE), -1,
        true);
    Assert.assertEquals(1, map.size());
    Assert.assertEquals(data1, map.firstEntry().getValue());
  }
View Full Code Here

    testPutGetDigestPrepare(new StorageLayer(storageM));
    storageM.close();
  }

  private void testPutGetDigestPrepare(StorageLayer storage) throws IOException, ClassNotFoundException {
    Number640 key1 = new Number640(locationKey, domainKey, content1, new Number160(0));
    Number640 key2 = new Number640(locationKey, domainKey, content1, new Number160(1));
    Data data1 = new Data("test1");
    Data data2 = new Data("test2").prepareFlag();
    Enum<?> store = storage.put(key1, data1, null, true, false);
    Assert.assertEquals(PutStatus.OK, store);
    store = storage.put(key2, data2, null, true, false);
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.