All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.vertx.kotlin.core.eventbus.EventBusOptions.kt Maven / Gradle / Ivy

There is a newer version: 5.0.0.CR1
Show newest version
/*
 * Copyright 2019 Red Hat, Inc.
 *
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * and Apache License v2.0 which accompanies this distribution.
 *
 * The Eclipse Public License is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * The Apache License v2.0 is available at
 * http://www.opensource.org/licenses/apache2.0.php
 *
 * You may elect to redistribute this code under either of these licenses.
 */
package io.vertx.kotlin.core.eventbus

import io.vertx.core.eventbus.EventBusOptions
import io.netty.handler.logging.ByteBufFormat
import io.vertx.core.http.ClientAuth
import io.vertx.core.net.JdkSSLEngineOptions
import io.vertx.core.net.JksOptions
import io.vertx.core.net.OpenSSLEngineOptions
import io.vertx.core.net.PemKeyCertOptions
import io.vertx.core.net.PemTrustOptions
import io.vertx.core.net.PfxOptions
import java.util.concurrent.TimeUnit

/**
 * A function providing a DSL for building [io.vertx.core.eventbus.EventBusOptions] objects.
 *
 * Options to configure the event bus.
 *
 * @param acceptBacklog  Set the accept back log.
 * @param activityLogDataFormat  Set the value of Netty's logging handler's data format: Netty's pipeline is configured for logging on Netty's logger.
 * @param clientAuth  Set whether client auth is required
 * @param clusterNodeMetadata  Set information about this node when Vert.x is clustered. 

The data may be used by the [io.vertx.core.spi.cluster.NodeSelector] to select a node for a given message. For example, it could be used to implement a partioning strategy.

The default [io.vertx.core.spi.cluster.NodeSelector] does not use the node metadata. * @param clusterPingInterval Set the value of cluster ping interval, in ms. * @param clusterPingReplyInterval Set the value of cluster ping reply interval, in ms. * @param clusterPublicHost Set the public facing hostname to be used for clustering. Sometimes, e.g. when running on certain clouds, the local address the server listens on for clustering is not the same address that other nodes connect to it at, as the OS / cloud infrastructure does some kind of proxying. If this is the case you can specify a public hostname which is different from the hostname the server listens at.

The default value is null which means use the same as the cluster hostname. * @param clusterPublicPort See [io.vertx.core.eventbus.EventBusOptions] for an explanation. * @param connectTimeout Sets the connect timeout * @param crlPaths Add a CRL path * @param crlValues Add a CRL value * @param enabledCipherSuites Add an enabled cipher suite, appended to the ordered suites. * @param enabledSecureTransportProtocols Sets the list of enabled SSL/TLS protocols. * @param host Sets the host. Defaults to null.

When the clustered eventbus starts, it tries to bind to the provided host. If host is null, then it tries to bind to the same host as the underlying cluster manager. As a last resort, an address will be picked among the available network interfaces. * @param idleTimeout Set the idle timeout, default time unit is seconds. Zero means don't timeout. This determines if a connection will timeout and be closed if no data is received nor sent within the timeout. If you want change default time unit, use [io.vertx.core.eventbus.EventBusOptions] * @param idleTimeoutUnit Set the idle timeout unit. If not specified, default is seconds. * @param jdkSslEngineOptions * @param keyStoreOptions Set the key/cert options in jks format, aka Java keystore. * @param logActivity Set to true to enabled network activity logging: Netty's pipeline is configured for logging on Netty's logger. * @param openSslEngineOptions * @param pemKeyCertOptions Set the key/cert store options in pem format. * @param pemTrustOptions Set the trust options in pem format * @param pfxKeyCertOptions Set the key/cert options in pfx format. * @param pfxTrustOptions Set the trust options in pfx format * @param port Sets the port. * @param readIdleTimeout Set the read idle timeout, default time unit is seconds. Zero means don't timeout. This determines if a connection will timeout and be closed if no data is received within the timeout. If you want change default time unit, use [io.vertx.core.eventbus.EventBusOptions] * @param receiveBufferSize Set the TCP receive buffer size * @param reconnectAttempts Sets the value of reconnect attempts. * @param reconnectInterval Set the reconnect interval. * @param reuseAddress Set the value of reuse address * @param reusePort Set the value of reuse port.

This is only supported by native transports. * @param sendBufferSize Set the TCP send buffer size * @param soLinger Set whether SO_linger keep alive is enabled * @param ssl Set whether SSL/TLS is enabled * @param sslEngineOptions Set to use SSL engine implementation to use. * @param sslHandshakeTimeout Set the SSL handshake timeout, default time unit is seconds. * @param sslHandshakeTimeoutUnit Set the SSL handshake timeout unit. If not specified, default is seconds. * @param tcpCork Enable the TCP_CORK option - only with linux native transport. * @param tcpFastOpen Enable the TCP_FASTOPEN option - only with linux native transport. * @param tcpKeepAlive Set whether TCP keep alive is enabled * @param tcpNoDelay Set whether TCP no delay is enabled * @param tcpQuickAck Enable the TCP_QUICKACK option - only with linux native transport. * @param tcpUserTimeout Sets the TCP_USER_TIMEOUT option - only with linux native transport. * @param trafficClass Set the value of traffic class * @param trustAll Set whether all server certificates should be trusted. * @param trustOptions Set the trust options. * @param trustStoreOptions Set the trust options in jks format, aka Java truststore * @param useAlpn Set the ALPN usage. * @param writeIdleTimeout Set the write idle timeout, default time unit is seconds. Zero means don't timeout. This determines if a connection will timeout and be closed if no data is sent within the timeout. If you want change default time unit, use [io.vertx.core.eventbus.EventBusOptions] * *

* NOTE: This function has been automatically generated from the [io.vertx.core.eventbus.EventBusOptions original] using Vert.x codegen. */ fun eventBusOptionsOf( acceptBacklog: Int? = null, activityLogDataFormat: ByteBufFormat? = null, clientAuth: ClientAuth? = null, clusterNodeMetadata: io.vertx.core.json.JsonObject? = null, clusterPingInterval: Long? = null, clusterPingReplyInterval: Long? = null, clusterPublicHost: String? = null, clusterPublicPort: Int? = null, connectTimeout: Int? = null, crlPaths: Iterable? = null, crlValues: Iterable? = null, enabledCipherSuites: Iterable? = null, enabledSecureTransportProtocols: Iterable? = null, host: String? = null, idleTimeout: Int? = null, idleTimeoutUnit: TimeUnit? = null, jdkSslEngineOptions: io.vertx.core.net.JdkSSLEngineOptions? = null, keyStoreOptions: io.vertx.core.net.JksOptions? = null, logActivity: Boolean? = null, openSslEngineOptions: io.vertx.core.net.OpenSSLEngineOptions? = null, pemKeyCertOptions: io.vertx.core.net.PemKeyCertOptions? = null, pemTrustOptions: io.vertx.core.net.PemTrustOptions? = null, pfxKeyCertOptions: io.vertx.core.net.PfxOptions? = null, pfxTrustOptions: io.vertx.core.net.PfxOptions? = null, port: Int? = null, readIdleTimeout: Int? = null, receiveBufferSize: Int? = null, reconnectAttempts: Int? = null, reconnectInterval: Long? = null, reuseAddress: Boolean? = null, reusePort: Boolean? = null, sendBufferSize: Int? = null, soLinger: Int? = null, ssl: Boolean? = null, sslEngineOptions: io.vertx.core.net.SSLEngineOptions? = null, sslHandshakeTimeout: Long? = null, sslHandshakeTimeoutUnit: TimeUnit? = null, tcpCork: Boolean? = null, tcpFastOpen: Boolean? = null, tcpKeepAlive: Boolean? = null, tcpNoDelay: Boolean? = null, tcpQuickAck: Boolean? = null, tcpUserTimeout: Int? = null, trafficClass: Int? = null, trustAll: Boolean? = null, trustOptions: io.vertx.core.net.TrustOptions? = null, trustStoreOptions: io.vertx.core.net.JksOptions? = null, useAlpn: Boolean? = null, writeIdleTimeout: Int? = null): EventBusOptions = io.vertx.core.eventbus.EventBusOptions().apply { if (acceptBacklog != null) { this.setAcceptBacklog(acceptBacklog) } if (activityLogDataFormat != null) { this.setActivityLogDataFormat(activityLogDataFormat) } if (clientAuth != null) { this.setClientAuth(clientAuth) } if (clusterNodeMetadata != null) { this.setClusterNodeMetadata(clusterNodeMetadata) } if (clusterPingInterval != null) { this.setClusterPingInterval(clusterPingInterval) } if (clusterPingReplyInterval != null) { this.setClusterPingReplyInterval(clusterPingReplyInterval) } if (clusterPublicHost != null) { this.setClusterPublicHost(clusterPublicHost) } if (clusterPublicPort != null) { this.setClusterPublicPort(clusterPublicPort) } if (connectTimeout != null) { this.setConnectTimeout(connectTimeout) } if (crlPaths != null) { for (item in crlPaths) { this.addCrlPath(item) } } if (crlValues != null) { for (item in crlValues) { this.addCrlValue(item) } } if (enabledCipherSuites != null) { for (item in enabledCipherSuites) { this.addEnabledCipherSuite(item) } } if (enabledSecureTransportProtocols != null) { this.setEnabledSecureTransportProtocols(enabledSecureTransportProtocols.toSet()) } if (host != null) { this.setHost(host) } if (idleTimeout != null) { this.setIdleTimeout(idleTimeout) } if (idleTimeoutUnit != null) { this.setIdleTimeoutUnit(idleTimeoutUnit) } if (jdkSslEngineOptions != null) { this.setJdkSslEngineOptions(jdkSslEngineOptions) } if (keyStoreOptions != null) { this.setKeyStoreOptions(keyStoreOptions) } if (logActivity != null) { this.setLogActivity(logActivity) } if (openSslEngineOptions != null) { this.setOpenSslEngineOptions(openSslEngineOptions) } if (pemKeyCertOptions != null) { this.setPemKeyCertOptions(pemKeyCertOptions) } if (pemTrustOptions != null) { this.setPemTrustOptions(pemTrustOptions) } if (pfxKeyCertOptions != null) { this.setPfxKeyCertOptions(pfxKeyCertOptions) } if (pfxTrustOptions != null) { this.setPfxTrustOptions(pfxTrustOptions) } if (port != null) { this.setPort(port) } if (readIdleTimeout != null) { this.setReadIdleTimeout(readIdleTimeout) } if (receiveBufferSize != null) { this.setReceiveBufferSize(receiveBufferSize) } if (reconnectAttempts != null) { this.setReconnectAttempts(reconnectAttempts) } if (reconnectInterval != null) { this.setReconnectInterval(reconnectInterval) } if (reuseAddress != null) { this.setReuseAddress(reuseAddress) } if (reusePort != null) { this.setReusePort(reusePort) } if (sendBufferSize != null) { this.setSendBufferSize(sendBufferSize) } if (soLinger != null) { this.setSoLinger(soLinger) } if (ssl != null) { this.setSsl(ssl) } if (sslEngineOptions != null) { this.setSslEngineOptions(sslEngineOptions) } if (sslHandshakeTimeout != null) { this.setSslHandshakeTimeout(sslHandshakeTimeout) } if (sslHandshakeTimeoutUnit != null) { this.setSslHandshakeTimeoutUnit(sslHandshakeTimeoutUnit) } if (tcpCork != null) { this.setTcpCork(tcpCork) } if (tcpFastOpen != null) { this.setTcpFastOpen(tcpFastOpen) } if (tcpKeepAlive != null) { this.setTcpKeepAlive(tcpKeepAlive) } if (tcpNoDelay != null) { this.setTcpNoDelay(tcpNoDelay) } if (tcpQuickAck != null) { this.setTcpQuickAck(tcpQuickAck) } if (tcpUserTimeout != null) { this.setTcpUserTimeout(tcpUserTimeout) } if (trafficClass != null) { this.setTrafficClass(trafficClass) } if (trustAll != null) { this.setTrustAll(trustAll) } if (trustOptions != null) { this.setTrustOptions(trustOptions) } if (trustStoreOptions != null) { this.setTrustStoreOptions(trustStoreOptions) } if (useAlpn != null) { this.setUseAlpn(useAlpn) } if (writeIdleTimeout != null) { this.setWriteIdleTimeout(writeIdleTimeout) } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy