Package net.tomp2p.futures

Examples of net.tomp2p.futures.FutureResponse


        }

        DataMap dataMap = synchronizationBuilder.dataMap();
        message.setDataMap(dataMap);

        FutureResponse futureResponse = new FutureResponse(message);
        final RequestHandler<FutureResponse> requestHandler = new RequestHandler<FutureResponse>(
                futureResponse, peerBean(), connectionBean(), synchronizationBuilder);
        LOG.debug("Sync sent {}", message);
        return requestHandler.sendTCP(channelCreator);
    }
View Full Code Here


        if (futurePeerConnection.isSuccess()) {
          // successfully created a connection to the relay peer
          final PeerConnection peerConnection = futurePeerConnection.object();

          // send the message
          FutureResponse response = RelayUtils.send(peerConnection, peer.peerBean(), peer.connectionBean(),
              config, message);
          response.addListener(new BaseFutureAdapter<FutureResponse>() {
            public void operationComplete(FutureResponse future) throws Exception {
              if (future.isSuccess()) {
                // finialize the relay setup
                setupAddRelays(candidate, peerConnection, gcmServerCredentials);
                futureDone.done(peerConnection);
View Full Code Here

   
    // holds the message that will be returned to he requester
    final FutureDone<Message> futureDone = new FutureDone<Message>();

    // Forward a message through the open peer connection to the unreachable peer.
    FutureResponse fr = RelayUtils.send(peerConnection, peerBean(), connectionBean(), config, envelope);
    fr.addListener(new BaseFutureAdapter<FutureResponse>() {
      public void operationComplete(FutureResponse future) throws Exception {
        if (future.isSuccess()) {
          InetSocketAddress senderSocket = message.recipientSocket();
          if (senderSocket == null) {
            senderSocket = unreachablePeerAddress().createSocketTCP();
View Full Code Here

        LOG.error("Cannot wrap the late response into an envelope", e);
        return;
      }
     
      LOG.debug("Sending late response {} in an envelope {}", responseMessage, envelope);
      FutureResponse futureResponse = RelayUtils.connectAndSend(peer, envelope, connectionConfig);
      futureResponse.addListener(new BaseFutureAdapter<FutureResponse>() {
        @Override
        public void operationComplete(FutureResponse future) throws Exception {
          if(future.isSuccess()) {
            LOG.debug("Successfully sent late response to requester");
          } else {
View Full Code Here

    futureChannelCreator.addListener(new BaseFutureAdapter<FutureChannelCreator>() {
      @Override
      public void operationComplete(FutureChannelCreator future) throws Exception {
        if (future.isSuccess()) {
          final ChannelCreator channelCreator = future.channelCreator();
          FutureResponse futureResponse = peerExchangeRPC.peerExchange(remotePeer, key, channelCreator, data,
                  connectionConfiguration);
          futureResponse.addListener(new BaseFutureAdapter<FutureResponse>() {
            @Override
            public void operationComplete(FutureResponse future) throws Exception {
              if (future.isSuccess()) {
                futureDone.done();
              } else {
View Full Code Here

        @Override
        public void operationComplete(final FutureChannelCreator future2) throws Exception {
          if (future2.isSuccess()) {
            SyncBuilder synchronizationBuilder = new SyncBuilder(senderSync, receiverAddress, 5);
            synchronizationBuilder.dataMap(dataMap);
            final FutureResponse futureResponse = senderSync.syncRPC().infoMessage(
                    receiverAddress, synchronizationBuilder, future2.channelCreator());
            futureResponse.addListener(new BaseFutureAdapter<FutureResponse>() {
              @Override
              public void operationComplete(FutureResponse future) throws Exception {
                System.err.println(future.failedReason());
                ref.set(future.responseMessage().type());
                ref2.set(future.responseMessage().dataMap(0));
View Full Code Here

        @Override
        public void operationComplete(final FutureChannelCreator future2) throws Exception {
          if (future2.isSuccess()) {
            SyncBuilder synchronizationBuilder = new SyncBuilder(senderSync, receiverAddress, 5);
            synchronizationBuilder.dataMap(dataMap);
            final FutureResponse futureResponse = senderSync.syncRPC().infoMessage(
                    receiverAddress, synchronizationBuilder, future2.channelCreator());
            futureResponse.addListener(new BaseFutureAdapter<FutureResponse>() {
              @Override
              public void operationComplete(FutureResponse future) throws Exception {
                ref.set(future.responseMessage().dataMap(0));
                Utils.addReleaseListener(future2.channelCreator(), futureResponse);
                latch.countDown();
View Full Code Here

        @Override
        public void operationComplete(final FutureChannelCreator future2) throws Exception {
          if (future2.isSuccess()) {
            SyncBuilder synchronizationBuilder = new SyncBuilder(senderSync, receiverAddress, 5);
            synchronizationBuilder.dataMap(dataMap);
            final FutureResponse futureResponse = senderSync.syncRPC().infoMessage(receiverAddress,
                    synchronizationBuilder, future2.channelCreator());
            futureResponse.addListener(new BaseFutureAdapter<FutureResponse>() {
              @Override
              public void operationComplete(FutureResponse future) throws Exception {
                ref.set(future.responseMessage().dataMap(0));
                Utils.addReleaseListener(future2.channelCreator(), futureResponse);
                latch.countDown();
View Full Code Here

    Message message = dispatchHandler.createMessage(relayAddress(), Commands.RELAY.getNr(), Type.REQUEST_4);
    // close the connection after this message
    message.keepAlive(false);

    FutureResponse response = sendToRelay(message);
    response.addListener(new BaseFutureAdapter<FutureResponse>() {
      @Override
      public void operationComplete(FutureResponse futureResponse) throws Exception {
        if (futureResponse.isSuccess()) {
          // reset the fail counter
          reachRelayFailCounter = 0;
View Full Code Here

    FutureForkJoin<FutureResponse> fp = new FutureForkJoin<FutureResponse>(1, false, futureResponses);
    fp.addListener(new BaseFutureAdapter<FutureForkJoin<FutureResponse>>() {
      @Override
      public void operationComplete(final FutureForkJoin<FutureResponse> future) throws Exception {
        boolean finished = false;
        FutureResponse futureResponse = future.last();
        // success if we could add the tracker, but also if the tracker
        // is full and sent a denied message
        boolean isFull = futureResponse != null && futureResponse.responseMessage() != null
                && futureResponse.responseMessage().type() == Type.DENIED;
        boolean isPartial = futureResponse != null && futureResponse.responseMessage() != null
                && futureResponse.responseMessage().type() == Type.PARTIALLY_OK;
        if (future.isSuccess() || isFull) {
          if (!isFull) {
            successAsked.add(futureResponse.request().recipient());
          }
          TrackerData newDataMap = futureResponse.responseMessage().trackerData(0);
          if (newDataMap != null) {
            Collection<PeerStatistic> newPeers = newDataMap.peerAddresses().keySet();
            mergeDiff(secondaryQueue, newPeers, alreadyAsked, queueToAsk);
            storeResult(peerOnTracker, newDataMap, futureResponse.request().recipient(), knownPeers);
            for(PeerStatistic peerStatatistic:newPeers) {
              secondaryQueue.add(peerStatatistic.peerAddress());
            }
          }
          int successRequests = isFull ? successfulRequests.get() : successfulRequests.incrementAndGet();
          finished = evaluate(peerOnTracker, successRequests, atLeastSuccessfullRequests,
                  atLeastEntriesFromTrackers, isGet);

          LOG.debug("evaluation result: finished={}, {} / {}", finished, peerOnTracker.size(),
                  atLeastEntriesFromTrackers);
          // if peer reported that he can provide more data, we keep
          // the peer in the list
          if (!finished && isPartial) {
            LOG.debug("partial1: {}, secondaryQueue {}", futureResponse.request().recipient(), queueToAsk);
            queueToAsk.add(futureResponse.request().recipient());
          }
          if (!finished && isFull) {
            LOG.debug("tracker reported to be full. Check if finished due to full trackers.");
            finished = trackerFull.incrementAndGet() >= maxTrackerFull;
          }
View Full Code Here

TOP

Related Classes of net.tomp2p.futures.FutureResponse

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.