Package net.tomp2p.futures

Examples of net.tomp2p.futures.FutureChannelCreator


   * Send a Message from one Peer to another Peer internally. This avoids the
   * overhead of sendDirect.
   */
  private static void send(final PeerConnection peerConnection, PeerBean peerBean, ConnectionBean connectionBean, ConnectionConfiguration config, final FutureResponse futureResponse) {
    final RequestHandler<FutureResponse> requestHandler = new RequestHandler<FutureResponse>(futureResponse, peerBean, connectionBean, config);
    final FutureChannelCreator fcc = peerConnection.acquire(futureResponse);
    fcc.addListener(new BaseFutureAdapter<FutureChannelCreator>() {
      @Override
      public void operationComplete(FutureChannelCreator future) throws Exception {
        if (future.isSuccess()) {
          requestHandler.sendTCP(peerConnection.channelCreator(), peerConnection);
        } else {
View Full Code Here


    public FutureDone<SyncStat> start() {
        if (peer.peer().isShutdown()) {
            return FUTURE_SHUTDOWN;
        }
        final FutureDone<SyncStat> futureSync = new FutureDone<SyncStat>();
        FutureChannelCreator futureChannelCreator = peer.peer().connectionBean().reservation().create(0, 2);
        Utils.addReleaseListener(futureChannelCreator, futureSync);
        futureChannelCreator.addListener(new BaseFutureAdapter<FutureChannelCreator>() {
            @Override
            public void operationComplete(final FutureChannelCreator future2) throws Exception {
                if (!future2.isSuccess()) {
                    futureSync.failed(future2);
                    LOG.error("checkDirect failed {}", future2.failedReason());
View Full Code Here

         * @param dataMapConvert
         *            The data to store
         */
        public FutureDone<Void> sendDirect(final PeerAddress other, final Number160 locationKey, final Map<Number640, Data> dataMap) {
            final FutureDone<Void> futureDone = new FutureDone<Void>();
          FutureChannelCreator futureChannelCreator = peer.peer().connectionBean().reservation().create(0, 1);
          Utils.addReleaseListener(futureChannelCreator, futureDone);
            futureChannelCreator.addListener(new BaseFutureAdapter<FutureChannelCreator>() {
                @Override
                public void operationComplete(final FutureChannelCreator future) throws Exception {
                    if (future.isSuccess()) {
                        PutBuilder putBuilder = new PutBuilder(peer, locationKey);
                        putBuilder.dataMap(dataMap);
View Full Code Here

        try {
            peer1 = new PeerMaker(new Number160(rnd)).setWorkerThreads(1).setPorts(4001).setEnableTask(true)
                    .makeAndListen();
            peer2 = new PeerMaker(new Number160(rnd)).setWorkerThreads(1).setPorts(4002).setEnableTask(true)
                    .makeAndListen();
            FutureChannelCreator futureChannelCreator = peer1.getConnectionBean().getConnectionReservation().reserve(1);
            futureChannelCreator.awaitUninterruptibly();
            Number160 taskId = new Number160(11);
            Map<Number160, Data> dataMap = new HashMap<Number160, Data>();
            dataMap.put(new Number160(22), new Data("testme"));
            FutureResponse futureResponse = peer1.getTaskRPC().sendTask(peer1.getPeerAddress(),
                    futureChannelCreator.getChannelCreator(), taskId, dataMap, new MyWorker1(), null, false, false);
            Utils.addReleaseListenerAll(futureResponse, peer1.getConnectionBean().getConnectionReservation(),
                    futureChannelCreator.getChannelCreator());
            futureResponse.awaitUninterruptibly();
            Assert.assertEquals(true, futureResponse.isSuccess());
            Thread.sleep(1000);
        } finally {
            if (peer1 != null) {
View Full Code Here

        try {
            peer1 = new PeerMaker(new Number160(rnd)).setWorkerThreads(1).setPorts(4001).setEnableTask(true)
                    .makeAndListen();
            peer2 = new PeerMaker(new Number160(rnd)).setWorkerThreads(1).setPorts(4002).setEnableTask(true)
                    .makeAndListen();
            FutureChannelCreator futureChannelCreator = peer1.getConnectionBean().getConnectionReservation().reserve(5);
            futureChannelCreator.awaitUninterruptibly();
            Number160 taskId1 = new Number160(11);
            Number160 taskId2 = new Number160(12);
            Number160 taskId3 = new Number160(13);
            Map<Number160, Data> dataMap = new HashMap<Number160, Data>();
            dataMap.put(new Number160(22), new Data("testme"));
            FutureResponse futureResponse1 = peer1.getTaskRPC().sendTask(peer1.getPeerAddress(),
                    futureChannelCreator.getChannelCreator(), taskId1, dataMap, new MyWorker2(), null, false, false);
            futureResponse1.awaitUninterruptibly();
            FutureResponse futureResponse2 = peer1.getTaskRPC().sendTask(peer1.getPeerAddress(),
                    futureChannelCreator.getChannelCreator(), taskId2, dataMap, new MyWorker2(), null, false, false);
            futureResponse2.awaitUninterruptibly();
            FutureResponse futureResponse3 = peer1.getTaskRPC().sendTask(peer1.getPeerAddress(),
                    futureChannelCreator.getChannelCreator(), taskId3, dataMap, new MyWorker2(), null, false, false);
            futureResponse3.awaitUninterruptibly();
            Assert.assertEquals(true, futureResponse1.isSuccess());
            Assert.assertEquals(true, futureResponse2.isSuccess());
            Assert.assertEquals(true, futureResponse3.isSuccess());
            Collection<Number160> taskIDs = new ArrayList<Number160>();
            taskIDs.add(taskId1);
            taskIDs.add(taskId2);
            taskIDs.add(taskId3);
            FutureResponse futureResponse4 = peer1.getTaskRPC().taskStatus(peer1.getPeerAddress(),
                    futureChannelCreator.getChannelCreator(), taskIDs, false);
            futureResponse4.awaitUninterruptibly();
            Assert.assertEquals(3, futureResponse4.getResponse().getDataMap().size());
            Map<Number160, Data> map = futureResponse4.getResponse().getDataMap();
            TaskStatus status1 = (TaskStatus) map.get(taskId1).getObject();
            TaskStatus status2 = (TaskStatus) map.get(taskId2).getObject();
            TaskStatus status3 = (TaskStatus) map.get(taskId3).getObject();
            Assert.assertEquals(TaskStatus.Status.STARTED, status1.getStatus());
            Assert.assertEquals(TaskStatus.Status.QUEUE, status2.getStatus());
            Assert.assertEquals(0, status2.getQueuePosition());
            Assert.assertEquals(TaskStatus.Status.QUEUE, status3.getStatus());
            Assert.assertEquals(1, status3.getQueuePosition());
            Thread.sleep(1000);
            FutureResponse futureResponse5 = peer1.getTaskRPC().taskStatus(peer1.getPeerAddress(),
                    futureChannelCreator.getChannelCreator(), taskIDs, false);
            Utils.addReleaseListenerAll(futureResponse5, peer1.getConnectionBean().getConnectionReservation(),
                    futureChannelCreator.getChannelCreator());
            futureResponse5.awaitUninterruptibly();
            Assert.assertEquals(3, futureResponse5.getResponse().getDataMap().size());
            map = futureResponse5.getResponse().getDataMap();
            status1 = (TaskStatus) map.get(taskId1).getObject();
            status2 = (TaskStatus) map.get(taskId2).getObject();
View Full Code Here

        try {
            peer1 = new PeerMaker(new Number160(rnd)).setWorkerThreads(1).setPorts(4001).setEnableTask(true)
                    .makeAndListen();
            peer2 = new PeerMaker(new Number160(rnd)).setWorkerThreads(1).setPorts(4002).setEnableTask(true)
                    .makeAndListen();
            FutureChannelCreator futureChannelCreator = peer1.getConnectionBean().getConnectionReservation().reserve(1);
            futureChannelCreator.awaitUninterruptibly();
            Number160 taskId = new Number160(11);
            Map<Number160, Data> dataMap = new HashMap<Number160, Data>();
            dataMap.put(new Number160(22), new Data("testme"));
            FutureAsyncTask futureAsyncTask = peer1.getAsyncTask().submit(peer2.getPeerAddress(),
                    futureChannelCreator.getChannelCreator(), taskId, dataMap, new MyWorker3(), false, false);
            Utils.addReleaseListenerAll(futureAsyncTask, peer1.getConnectionBean().getConnectionReservation(),
                    futureChannelCreator.getChannelCreator());
            futureAsyncTask.awaitUninterruptibly();
            Assert.assertEquals(true, futureAsyncTask.isSuccess());
            Assert.assertEquals("yup", futureAsyncTask.getDataMap().get(Number160.ONE).getObject());
        } catch (Throwable t) {
            t.printStackTrace();
View Full Code Here

        try {
            peer1 = new PeerMaker(new Number160(rnd)).setWorkerThreads(1).setPorts(4001).setEnableTask(true)
                    .makeAndListen();
            peer2 = new PeerMaker(new Number160(rnd)).setWorkerThreads(1).setPorts(4002).setEnableTask(true)
                    .makeAndListen();
            FutureChannelCreator futureChannelCreator = peer1.getConnectionBean().getConnectionReservation().reserve(1);
            futureChannelCreator.awaitUninterruptibly();
            Number160 taskId = new Number160(11);
            Map<Number160, Data> dataMap = new HashMap<Number160, Data>();
            dataMap.put(new Number160(22), new Data("testme"));
            FutureAsyncTask futureAsyncTask = peer1.getAsyncTask().submit(peer2.getPeerAddress(),
                    futureChannelCreator.getChannelCreator(), taskId, dataMap, new MyWorker3(), false, false);
            Utils.addReleaseListenerAll(futureAsyncTask, peer1.getConnectionBean().getConnectionReservation(),
                    futureChannelCreator.getChannelCreator());
            peer2.halt();
            futureAsyncTask.awaitUninterruptibly();
            Assert.assertEquals(false, futureAsyncTask.isSuccess());
        } finally {
            if (peer1 != null) {
View Full Code Here

            sender.bootstrap().peerAddress(recv1.peerAddress()).start().awaitUninterruptibly();
            Assert.assertEquals(1, sender.peerBean().peerMap().all().size());
            Assert.assertEquals(1, recv1.peerBean().peerMap().allOverflow().size());
            // graceful shutdown
           
            FutureChannelCreator fcc = recv1.connectionBean().reservation().create(1, 0);
            fcc.awaitUninterruptibly();
            cc = fcc.channelCreator();
           
            ShutdownBuilder builder = new ShutdownBuilder(sender);
           
            sender.quitRPC().quit(recv1.peerAddress(), builder, cc);
            sender.shutdown().await();
View Full Code Here

        try {
            PeerAddress pa = new PeerAddress(Number160.ZERO, Inet4Address.getByName(IP), PORT, PORT);
            sender = new PeerBuilder(new Number160("0x9876")).ports(PORT).enableMaintenance(false)
                    .start();
            PingRPC handshake = new PingRPC(sender.peerBean(), sender.connectionBean());
            FutureChannelCreator fcc = sender.connectionBean().reservation().create(0, 1);
            fcc.awaitUninterruptibly();
            cc = fcc.channelCreator();
            FutureResponse fr = handshake.pingTCP(pa, cc, new DefaultConnectionConfiguration());
            fr.awaitUninterruptibly();
            Assert.assertEquals(true, fr.isSuccess());
            Thread.sleep(WAIT);
        } finally {
View Full Code Here

        try {
            PeerAddress pa = new PeerAddress(Number160.ZERO, Inet4Address.getByName(IP), PORT, PORT);
            sender = new PeerBuilder(new Number160("0x9876")).ports(PORT).enableMaintenance(false)
                    .start();
            PingRPC handshake = new PingRPC(sender.peerBean(), sender.connectionBean());
            FutureChannelCreator fcc = sender.connectionBean().reservation().create(0, 1);
            fcc.awaitUninterruptibly();
            cc = fcc.channelCreator();
            FutureResponse fr = handshake.pingTCPDiscover(pa, cc, new DefaultConnectionConfiguration());
            fr.awaitUninterruptibly();
            Assert.assertEquals(true, fr.isSuccess());
            Thread.sleep(WAIT);
        } finally {
View Full Code Here

TOP

Related Classes of net.tomp2p.futures.FutureChannelCreator

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.