/*
 * Copyright (c) 2011-2019 Contributors to the Eclipse Foundation
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License 2.0 which is available at
 * http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
 * which is available at https://www.apache.org/licenses/LICENSE-2.0.
 *
 * SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
 */

package io.vertx.core.dns;

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

Configuration options for Vert.x DNS client.
Author:Julien Viet
/** * Configuration options for Vert.x DNS client. * * @author <a href="mailto:julien@julienviet.com">Julien Viet</a> */
@DataObject(generateConverter = true) public class DnsClientOptions {
The default value for the port = -1 (configured by VertxOptions.getAddressResolverOptions())
/** * The default value for the port = {@code -1} (configured by {@link VertxOptions#getAddressResolverOptions()}) */
public static final int DEFAULT_PORT = -1;
The default value for the host = null (configured by VertxOptions.getAddressResolverOptions())
/** * The default value for the host = {@code null} (configured by {@link VertxOptions#getAddressResolverOptions()}) */
public static final String DEFAULT_HOST = null;
The default value for the query timeout in millis = 5000
/** * The default value for the query timeout in millis = {@code 5000} */
public static final long DEFAULT_QUERY_TIMEOUT = 5000;
The default log enabled = false
/** * The default log enabled = false */
public static final boolean DEFAULT_LOG_ENABLED = false;
The default value for the recursion desired flag (RD) = true
/** * The default value for the recursion desired flag (RD) = {@code true} */
public static final boolean DEFAULT_RECURSION_DESIRED = true; private int port = DEFAULT_PORT; private String host = DEFAULT_HOST; private long queryTimeout = DEFAULT_QUERY_TIMEOUT; private boolean logActivity = DEFAULT_LOG_ENABLED; private boolean recursionDesired = DEFAULT_RECURSION_DESIRED; public DnsClientOptions() { } public DnsClientOptions(JsonObject json) { DnsClientOptionsConverter.fromJson(json, this); } public DnsClientOptions(DnsClientOptions other) { port = other.port; host = other.host; queryTimeout = other.queryTimeout; logActivity = other.logActivity; recursionDesired = other.recursionDesired; }
Get the port to be used by this client in requests.
Returns: the port
/** * Get the port to be used by this client in requests. * * @return the port */
public int getPort() { return port; }
Set the port to be used by this client in requests.
Returns:a reference to this, so the API can be used fluently
/** * Set the port to be used by this client in requests. * * @return a reference to this, so the API can be used fluently */
public DnsClientOptions setPort(int port) { if (port<1 && port!=DEFAULT_PORT) { throw new IllegalArgumentException("DNS client port " + port + " must be > 0 or equal to DEFAULT_PORT"); } this.port = port; return this; }
Get the host name to be used by this client in requests.
Returns: the host name
/** * Get the host name to be used by this client in requests. * * @return the host name */
public String getHost() { return host; }
Set the host name to be used by this client in requests.
Returns:a reference to this, so the API can be used fluently
/** * Set the host name to be used by this client in requests. * * @return a reference to this, so the API can be used fluently */
public DnsClientOptions setHost(String host) { this.host = host; return this; }
Returns:the query timeout in milliseconds
/** * @return the query timeout in milliseconds */
public long getQueryTimeout() { return queryTimeout; }
Set the query timeout in milliseconds, i.e the amount of time after a query is considered to be failed.
Params:
  • queryTimeout – the query timeout in milliseconds
Returns:a reference to this, so the API can be used fluently
/** * Set the query timeout in milliseconds, i.e the amount of time after a query is considered to be failed. * * @param queryTimeout the query timeout in milliseconds * @return a reference to this, so the API can be used fluently */
public DnsClientOptions setQueryTimeout(long queryTimeout) { if (queryTimeout < 1) { throw new IllegalArgumentException("queryTimeout must be > 0"); } this.queryTimeout = queryTimeout; return this; }
Returns:true when network activity logging is enabled
/** * @return {@code true} when network activity logging is enabled */
public boolean getLogActivity() { return logActivity; }
Set to true to enabled network activity logging: Netty's pipeline is configured for logging on Netty's logger.
Params:
  • logActivity – true for logging the network activity
Returns:a reference to this, so the API can be used fluently
/** * Set to true to enabled network activity logging: Netty's pipeline is configured for logging on Netty's logger. * * @param logActivity true for logging the network activity * @return a reference to this, so the API can be used fluently */
public DnsClientOptions setLogActivity(boolean logActivity) { this.logActivity = logActivity; return this; }
Return whether or not recursion is desired
Returns:true when recursion is desired
/** * Return whether or not recursion is desired * * @return {@code true} when recursion is desired */
public boolean isRecursionDesired() { return recursionDesired; }
Set whether or not recursion is desired
Params:
  • recursionDesired – the new value
Returns:a reference to this, so the API can be used fluently
/** * Set whether or not recursion is desired * * @param recursionDesired the new value * @return a reference to this, so the API can be used fluently */
public DnsClientOptions setRecursionDesired(boolean recursionDesired) { this.recursionDesired = recursionDesired; return this; } public JsonObject toJson() { JsonObject json = new JsonObject(); DnsClientOptionsConverter.toJson(this, json); return json; } }