package edu.uw.zookeeper.net.intravm;
import java.net.SocketAddress;
import java.util.concurrent.Executor;
import com.google.common.base.Supplier;
public class IntraVmEndpointFactory<I,O> extends AbstractIntraVmEndpointFactory<IntraVmEndpoint<I,O>> {
public static <I,O> IntraVmEndpointFactory<I,O> defaults() {
return create(loopbackAddresses(1), sameThreadExecutors());
}
public static <I,O> IntraVmEndpointFactory<I,O> create(
Supplier<? extends SocketAddress> addresses,
Supplier<? extends Executor> executors) {
return new IntraVmEndpointFactory<I,O>(addresses, executors);
}
public IntraVmEndpointFactory(
Supplier<? extends SocketAddress> addresses,
Supplier<? extends Executor> executors) {
super(addresses, executors);
}
@Override
public IntraVmEndpoint<I,O> get() {
return IntraVmEndpoint.<I,O>newInstance(addresses.get(), executors.get());
}
}