/*
* Copyright 2016 The Simple File Server Authors
*
* 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.
*/
package org.sfs;
import io.netty.channel.EventLoopGroup;
import io.vertx.core.AsyncResult;
import io.vertx.core.Context;
import io.vertx.core.DeploymentOptions;
import io.vertx.core.Future;
import io.vertx.core.Handler;
import io.vertx.core.TimeoutStream;
import io.vertx.core.Verticle;
import io.vertx.core.Vertx;
import io.vertx.core.WorkerExecutor;
import io.vertx.core.datagram.DatagramSocket;
import io.vertx.core.datagram.DatagramSocketOptions;
import io.vertx.core.dns.DnsClient;
import io.vertx.core.eventbus.EventBus;
import io.vertx.core.file.FileSystem;
import io.vertx.core.http.HttpClient;
import io.vertx.core.http.HttpClientOptions;
import io.vertx.core.http.HttpServer;
import io.vertx.core.http.HttpServerOptions;
import io.vertx.core.logging.Logger;
import io.vertx.core.logging.LoggerFactory;
import io.vertx.core.net.NetClient;
import io.vertx.core.net.NetClientOptions;
import io.vertx.core.net.NetServer;
import io.vertx.core.net.NetServerOptions;
import io.vertx.core.shareddata.SharedData;
import io.vertx.core.spi.VerticleFactory;
import org.sfs.rx.Defer;
import rx.Observable;
import rx.Subscriber;
import rx.functions.Func0;
import java.util.Set;
import java.util.concurrent.ExecutorService;
public class SfsVertxImpl implements SfsVertx {
private static Logger LOGGER = LoggerFactory.getLogger(SfsVertxImpl.class);
private final Vertx vertx;
private final ExecutorService backgroundPool;
private final ExecutorService ioPool;
public SfsVertxImpl(Vertx vertx, ExecutorService backgroundPool, ExecutorService ioPool) {
this.vertx = vertx;
this.backgroundPool = backgroundPool;
this.ioPool = ioPool;
}
@Override
public ExecutorService getIoPool() {
return ioPool;
}
@Override
public ExecutorService getBackgroundPool() {
return backgroundPool;
}
@Override
public boolean cancelTimer(long id) {
return vertx.cancelTimer(id);
}
@Override
public Context getOrCreateContext() {
return vertx.getOrCreateContext();
}
@Override
public NetServer createNetServer(NetServerOptions options) {
return vertx.createNetServer(options);
}
@Override
public NetServer createNetServer() {
return vertx.createNetServer();
}
@Override
public NetClient createNetClient(NetClientOptions options) {
return vertx.createNetClient(options);
}
@Override
public NetClient createNetClient() {
return vertx.createNetClient();
}
@Override
public HttpServer createHttpServer(HttpServerOptions options) {
return vertx.createHttpServer(options);
}
@Override
public HttpServer createHttpServer() {
return vertx.createHttpServer();
}
@Override
public HttpClient createHttpClient(HttpClientOptions options) {
return vertx.createHttpClient(options);
}
@Override
public HttpClient createHttpClient() {
return vertx.createHttpClient();
}
@Override
public DatagramSocket createDatagramSocket(DatagramSocketOptions options) {
return vertx.createDatagramSocket(options);
}
@Override
public DatagramSocket createDatagramSocket() {
return vertx.createDatagramSocket();
}
@Override
public FileSystem fileSystem() {
return vertx.fileSystem();
}
@Override
public EventBus eventBus() {
return vertx.eventBus();
}
@Override
public DnsClient createDnsClient(int port, String host) {
return vertx.createDnsClient(port, host);
}
@Override
public SharedData sharedData() {
return vertx.sharedData();
}
@Override
public long setTimer(long delay, Handler<Long> handler) {
return vertx.setTimer(delay, handler);
}
@Override
public TimeoutStream timerStream(long delay) {
return vertx.timerStream(delay);
}
@Override
public long setPeriodic(long delay, Handler<Long> handler) {
return vertx.setPeriodic(delay, handler);
}
@Override
public TimeoutStream periodicStream(long delay) {
return vertx.periodicStream(delay);
}
@Override
public void runOnContext(Handler<Void> action) {
vertx.runOnContext(action);
}
@Override
public void close() {
vertx.close();
}
@Override
public void close(Handler<AsyncResult<Void>> completionHandler) {
vertx.close(completionHandler);
}
@Override
public void deployVerticle(Verticle verticle) {
vertx.deployVerticle(verticle);
}
@Override
public void deployVerticle(Verticle verticle, Handler<AsyncResult<String>> completionHandler) {
vertx.deployVerticle(verticle, completionHandler);
}
@Override
public void deployVerticle(Verticle verticle, DeploymentOptions options) {
vertx.deployVerticle(verticle, options);
}
@Override
public void deployVerticle(Verticle verticle, DeploymentOptions options, Handler<AsyncResult<String>> completionHandler) {
vertx.deployVerticle(verticle, options, completionHandler);
}
@Override
public void deployVerticle(String name) {
vertx.deployVerticle(name);
}
@Override
public void deployVerticle(String name, Handler<AsyncResult<String>> completionHandler) {
vertx.deployVerticle(name, completionHandler);
}
@Override
public void deployVerticle(String name, DeploymentOptions options) {
vertx.deployVerticle(name, options);
}
@Override
public void deployVerticle(String name, DeploymentOptions options, Handler<AsyncResult<String>> completionHandler) {
vertx.deployVerticle(name, options, completionHandler);
}
@Override
public void undeploy(String deploymentID) {
vertx.undeploy(deploymentID);
}
@Override
public void undeploy(String deploymentID, Handler<AsyncResult<Void>> completionHandler) {
vertx.undeploy(deploymentID, completionHandler);
}
@Override
public Set<String> deploymentIDs() {
return vertx.deploymentIDs();
}
@Override
public void registerVerticleFactory(VerticleFactory factory) {
vertx.registerVerticleFactory(factory);
}
@Override
public void unregisterVerticleFactory(VerticleFactory factory) {
vertx.unregisterVerticleFactory(factory);
}
@Override
public Set<VerticleFactory> verticleFactories() {
return vertx.verticleFactories();
}
@Override
public boolean isClustered() {
return vertx.isClustered();
}
@Override
public <T> void executeBlocking(Handler<Future<T>> blockingCodeHandler, boolean ordered, Handler<AsyncResult<T>> asyncResultHandler) {
vertx.executeBlocking(blockingCodeHandler, ordered, asyncResultHandler);
}
@Override
public <T> void executeBlocking(Handler<Future<T>> blockingCodeHandler, Handler<AsyncResult<T>> asyncResultHandler) {
vertx.executeBlocking(blockingCodeHandler, asyncResultHandler);
}
@Override
public EventLoopGroup nettyEventLoopGroup() {
return vertx.nettyEventLoopGroup();
}
@Override
public WorkerExecutor createSharedWorkerExecutor(String name) {
return vertx.createSharedWorkerExecutor(name);
}
@Override
public WorkerExecutor createSharedWorkerExecutor(String name, int poolSize) {
return vertx.createSharedWorkerExecutor(name, poolSize);
}
@Override
public WorkerExecutor createSharedWorkerExecutor(String name, int poolSize, long maxExecuteTime) {
return vertx.createSharedWorkerExecutor(name, poolSize, maxExecuteTime);
}
@Override
public Vertx exceptionHandler(Handler<Throwable> handler) {
return vertx.exceptionHandler(handler);
}
@Override
public Handler<Throwable> exceptionHandler() {
return vertx.exceptionHandler();
}
@Override
public boolean isMetricsEnabled() {
return vertx.isMetricsEnabled();
}
}