package io.vertx.mysqlclient;
import io.vertx.codegen.annotations.GenIgnore;
import io.vertx.codegen.annotations.VertxGen;
import io.vertx.core.AsyncResult;
import io.vertx.core.Handler;
import io.vertx.core.Vertx;
import io.vertx.core.VertxOptions;
import io.vertx.mysqlclient.impl.MySQLPoolImpl;
import io.vertx.sqlclient.PoolOptions;
import io.vertx.sqlclient.Pool;
import io.vertx.sqlclient.Row;
import io.vertx.sqlclient.RowSet;
import io.vertx.sqlclient.SqlResult;
import io.vertx.sqlclient.Tuple;
import java.util.List;
import java.util.stream.Collector;
import static io.vertx.mysqlclient.MySQLConnectOptions.*;
@VertxGen
public interface MySQLPool extends Pool {
static MySQLPool pool(String connectionUri) {
return pool(connectionUri, new PoolOptions());
}
static MySQLPool pool(String connectionUri, PoolOptions poolOptions) {
return pool(fromUri(connectionUri), poolOptions);
}
static MySQLPool pool(Vertx vertx, String connectionUri, PoolOptions poolOptions) {
return pool(vertx, fromUri(connectionUri), poolOptions);
}
static MySQLPool pool(MySQLConnectOptions connectOptions, PoolOptions poolOptions) {
if (Vertx.currentContext() != null) {
throw new IllegalStateException("Running in a Vertx context => use MySQLPool#pool(Vertx, MySQLConnectOptions, PoolOptions) instead");
}
VertxOptions vertxOptions = new VertxOptions();
Vertx vertx = Vertx.vertx(vertxOptions);
return new MySQLPoolImpl(vertx.getOrCreateContext(), true, connectOptions, poolOptions);
}
static MySQLPool pool(Vertx vertx, MySQLConnectOptions connectOptions, PoolOptions poolOptions) {
return new MySQLPoolImpl(vertx.getOrCreateContext(), false, connectOptions, poolOptions);
}
@Override
MySQLPool preparedQuery(String sql, Handler<AsyncResult<RowSet>> handler);
@GenIgnore
@Override
<R> MySQLPool preparedQuery(String sql, Collector<Row, ?, R> collector, Handler<AsyncResult<SqlResult<R>>> handler);
@Override
MySQLPool query(String sql, Handler<AsyncResult<RowSet>> handler);
@GenIgnore
@Override
<R> MySQLPool query(String sql, Collector<Row, ?, R> collector, Handler<AsyncResult<SqlResult<R>>> handler);
@Override
MySQLPool preparedQuery(String sql, Tuple arguments, Handler<AsyncResult<RowSet>> handler);
@GenIgnore
@Override
<R> MySQLPool preparedQuery(String sql, Tuple arguments, Collector<Row, ?, R> collector, Handler<AsyncResult<SqlResult<R>>> handler);
@Override
MySQLPool preparedBatch(String sql, List<Tuple> batch, Handler<AsyncResult<RowSet>> handler);
@GenIgnore
@Override
<R> MySQLPool preparedBatch(String sql, List<Tuple> batch, Collector<Row, ?, R> collector, Handler<AsyncResult<SqlResult<R>>> handler);
}