/*
 * Copyright (C) 2017 Julien Viet
 *
 * 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 io.vertx.sqlclient;

import io.vertx.codegen.annotations.DataObject;
import io.vertx.core.json.JsonObject;

The options for configuring a connection pool.
Author:Julien Viet
/** * The options for configuring a connection pool. * * @author <a href="mailto:julien@julienviet.com">Julien Viet</a> */
@DataObject(generateConverter = true) public class PoolOptions {
The default maximum number of connections a client will pool = 4
/** * The default maximum number of connections a client will pool = 4 */
public static final int DEFAULT_MAX_SIZE = 4;
Default max wait queue size = -1 (unbounded)
/** * Default max wait queue size = -1 (unbounded) */
public static final int DEFAULT_MAX_WAIT_QUEUE_SIZE = -1; private int maxSize = DEFAULT_MAX_SIZE; private int maxWaitQueueSize = DEFAULT_MAX_WAIT_QUEUE_SIZE; public PoolOptions() { } public PoolOptions(JsonObject json) { PoolOptionsConverter.fromJson(json, this); } public PoolOptions(PoolOptions other) { maxSize = other.maxSize; maxWaitQueueSize = other.maxWaitQueueSize; }
Returns: the maximum pool size
/** * @return the maximum pool size */
public int getMaxSize() { return maxSize; }
Set the maximum pool size
Params:
  • maxSize – the maximum pool size
Returns:a reference to this, so the API can be used fluently
/** * Set the maximum pool size * * @param maxSize the maximum pool size * @return a reference to this, so the API can be used fluently */
public PoolOptions setMaxSize(int maxSize) { if (maxSize < 0) { throw new IllegalArgumentException("Max size cannot be negative"); } this.maxSize = maxSize; return this; }
Returns:the maximum wait queue size
/** * @return the maximum wait queue size */
public int getMaxWaitQueueSize() { return maxWaitQueueSize; }
Set the maximum connection request allowed in the wait queue, any requests beyond the max size will result in an failure. If the value is set to a negative number then the queue will be unbounded.
Params:
  • maxWaitQueueSize – the maximum number of waiting requests
Returns:a reference to this, so the API can be used fluently
/** * Set the maximum connection request allowed in the wait queue, any requests beyond the max size will result in * an failure. If the value is set to a negative number then the queue will be unbounded. * * @param maxWaitQueueSize the maximum number of waiting requests * @return a reference to this, so the API can be used fluently */
public PoolOptions setMaxWaitQueueSize(int maxWaitQueueSize) { this.maxWaitQueueSize = maxWaitQueueSize; return this; } public JsonObject toJson() { JsonObject json = new JsonObject(); PoolOptionsConverter.toJson(this, json); return json; } @Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof PoolOptions)) return false; if (!super.equals(o)) return false; PoolOptions that = (PoolOptions) o; if (maxSize != that.maxSize) return false; return true; } @Override public int hashCode() { int result = super.hashCode(); result = 31 * result + maxSize; return result; } }