Java Thread Future checkTimeThresholds(long expectedMin, long expectedMax, long expectedOverhead, long start, Map> responses)

Here you can find the source of checkTimeThresholds(long expectedMin, long expectedMax, long expectedOverhead, long start, Map> responses)

Description

check Time Thresholds

License

Apache License

Declaration

public static void checkTimeThresholds(long expectedMin, long expectedMax, long expectedOverhead, long start,
            Map<String, Future<Long>> responses) 

Method Source Code

//package com.java2s;
/**/*from   w ww . ja  va 2 s .com*/
 *
 * Copyright (C) 2010 Cloud Conscious, LLC. <info@cloudconscious.com>
 *
 * ====================================================================
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * ====================================================================
 */

import java.util.Collections;
import java.util.Map;

import java.util.concurrent.ExecutionException;

import java.util.concurrent.Future;
import com.google.common.base.Function;
import com.google.common.collect.Iterables;
import com.google.common.collect.Sets;

public class Main {
    public static void checkTimeThresholds(long expectedMin, long expectedMax, long expectedOverhead, long start,
            Map<String, Future<Long>> responses) {
        long time = getMaxIn(responses) - start;
        assert time >= expectedMax && time < expectedMax + expectedOverhead : String
                .format("expectedMax  %d, max %d", expectedMax, time);

        time = getMinIn(responses) - start;
        assert time >= expectedMin && time < expectedMin + expectedOverhead : String
                .format("expectedMin  %d, min %d", expectedMin, time);

        time = getMaxIn(responses) - start;
        assert time >= expectedMax && time < expectedMax + expectedOverhead : String
                .format("expectedMax  %d, max %d", expectedMax, time);
    }

    public static long getMaxIn(Map<String, Future<Long>> responses) {
        Iterable<Long> collection = Iterables.transform(responses.values(), new Function<Future<Long>, Long>() {

            @Override
            public Long apply(Future<Long> from) {
                try {
                    return from.get();
                } catch (InterruptedException e) {
                } catch (ExecutionException e) {
                }
                return null;
            }

        });
        long time = Collections.max(Sets.newHashSet(collection));
        return time;
    }

    public static long getMinIn(Map<String, Future<Long>> responses) {
        Iterable<Long> collection = Iterables.transform(responses.values(), new Function<Future<Long>, Long>() {

            @Override
            public Long apply(Future<Long> from) {
                try {
                    return from.get();
                } catch (InterruptedException e) {
                } catch (ExecutionException e) {
                }
                return null;
            }

        });
        long time = Collections.min(Sets.newHashSet(collection));
        return time;
    }
}

Related

  1. cancel(final Future future)
  2. cancel(Future toCancel)
  3. cancel(List> futures)
  4. cancelNullableFutures(boolean mayInterruptIfRunning, Iterable> futures)
  5. cancelScheduledFuture(ScheduledFuture scheduledFuture)
  6. commit(Object tx)
  7. convertFuture(Future future)
  8. createFuture()
  9. exceptionallyCompletedFuture( final Throwable e)