package io.vertx.core.impl;
import io.vertx.core.*;
import io.vertx.core.net.impl.transport.Transport;
import io.vertx.core.spi.VertxFactory;
public class VertxFactoryImpl implements VertxFactory {
@Override
public Vertx vertx() {
return vertx(new VertxOptions());
}
@Override
public Vertx vertx(VertxOptions options) {
return vertx(options, Transport.transport(options.getPreferNativeTransport()));
}
@Override
public Vertx vertx(VertxOptions options, Transport transport) {
if (options.getEventBusOptions().isClustered()) {
throw new IllegalArgumentException("Please use Vertx.clusteredVertx() to create a clustered Vert.x instance");
}
return VertxImpl.vertx(options, transport);
}
@Override
public void clusteredVertx(VertxOptions options, final Handler<AsyncResult<Vertx>> resultHandler) {
clusteredVertx(options, Transport.transport(options.getPreferNativeTransport()), resultHandler);
}
@Override
public void clusteredVertx(VertxOptions options, Transport transport, Handler<AsyncResult<Vertx>> resultHandler) {
options.getEventBusOptions().setClustered(true);
VertxImpl.clusteredVertx(options, transport, resultHandler);
}
@Override
public Context context() {
return ContextImpl.context();
}
}